Skip to content

docs: validate store release notes before submission - #1791

Merged
piotr-iohk merged 3 commits into
masterfrom
docs/store-notes-guidelines
Nov 5, 2026
Merged

piotr-iohk merged 3 commits into
masterfrom
docs/store-notes-guidelines

Conversation

@piotr-iohk

@piotr-iohk piotr-iohk commented Nov 5, 2026 •

Copy link
Copy Markdown
Collaborator

Twin: synonymdev/bitkit-ios#1224
Dependency: synonymdev/bitkit#4

/release currently drafts and translates store notes without a store-policy preflight, and its retry path can duplicate GitHub sections or leave a reused Drive document stale. Require the shared store-note method during drafting and again before each authorized Google Play submission/resubmission.

Description

  • Validate the English draft and every translation, prefer platform-neutral wording, and record the method revision/policy check date.
  • Require readback of every saved store locale against the approved text before submission; generation alone leaves console verification pending.
  • Replace an existing GitHub Store Release Notes section once, preserving the changelog, and reconcile/update reused Drive notes in place.

Design

N/A — no UI changes.

Preview

N/A — agent documentation only.

QA Notes

Setup

N/A — documentation only. The shared guide dependency must merge first so the default-branch link resolves.

Journeys

N/A — no user-visible runtime behavior change.

Manual Tests

N/A — no device testing required.

Automated Checks

  • ran git diff --check.
  • ran Markdown fence/local-reference checks and verified both commands route drafting and submission to the shared guide.

Evidence

Current official Apple/Google policy references were checked on 2026-11-05. Independent review of the shared guide and both consumers, including relocation to synonymdev/bitkit, found no actionable findings. Documentation checks passed again after relocation; the release QA method remains in E2E.

The review follow-up pins guide retrieval through gh/GitHub MCP and treats fetched policy content as reference data without action authority. Documentation/parity checks and independent review passed. On final head ca41dac59f19e98e9af119763e00136416eafffd, CI passed, including all 256 Compose tests with zero failures/skips and the required build aggregate. Greptile and Talos cleared this head with no findings; pwltr approved it and confirmed the earlier Low finding is resolved. E2E/migration skips are the documented docs/release-branch filters, not runtime coverage.

Gaps

Merge the shared guide dependency before this PR. Runtime builds/tests are not applicable; no store, release branch or published tag was changed by this PR.

Models used

  • Planning/scoping: gpt-6.1-sol (reasoning: high)
  • Implementation: gpt-6.1-sol (reasoning: high)
  • Review: gpt-6.1-sol (reasoning: high)
  • Review rounds: 3

@greptile-apps

greptile-apps Bot commented Nov 5, 2026 •

Copy link
Copy Markdown
Contributor

RetriggerView in GreptileConfidence Score: 5/5

[Medium impact] The PR appears safe to merge; no actionable issues were found.

Summary

This PR adds shared store-note checks to /release.

  • Store notes are checked before each Google Play submission.
  • GitHub release notes and reused Google Docs stay in sync.

Reviews (3) · Last reviewed commit: "docs: distinguish policy references from..." · Reviewed by Greptile

@jvsena42 jvsena42 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Docs-only change to the release command, reviewed against the twin. I found no issues.

  • Both twins add the same store-note check steps. They differ only where the stores do: App Store notes drop Android/competing-store references; Google Play notes do not take on Apple's rule.
  • Updating the draft body now replaces the ## Store Release Notes section instead of prepending to it, so re-running the step no longer duplicates the section.
  • The Drive reuse path now updates the doc in place and marks the sync pending when it can't, instead of only printing a warning.
  • The shared guide link 404s until synonymdev/bitkit-e2e-tests#294 merges. The PR declares that as a dependency, so I will not merge this before #294.

Device gate: N/A, documentation only.

Reviewer model: claude-opus-5-5
Reasoning effort: Unknown (not exposed in session metadata)

@talosmachina talosmachina left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No findings. Routes /release step 6 and the Play submission step through the shared store-note checks, replaces the GitHub Store Release Notes section instead of prepending a new one on every retry, and reconciles a reused Drive doc in place. Reviewed f495d46, full tier (one file, +9 -21, read whole).

What I checked, and 3 candidates I ruled out

Read in full: .agents/commands/release.md at the head, plus docs/store-release-notes.md from synonymdev/bitkit-e2e-tests#294
CI: lint, build-and-test and ui-tests still running. None of them reads .agents/

Ruled out

  • Dangling link: the guide URL points at bitkit-e2e-tests main, which is that repo's default branch. It resolves once #294 merges, and the body already orders that dependency.
  • Losing the old Drive fallback: the removed export-and-warn path is still covered. When in-place editing is unavailable, Drive sync is marked pending with a manual follow-up, and the doc is never reported as matching.
  • New WebFetch / WebSearch tools: the new step needs them to read the live policy pages. They are read-only.

Merge confidence: 5/5, agent docs only, consistent with the shared guide and the iOS twin.

Reviewer model: claude-opus-5-5
Reasoning effort: Not exposed (the run metadata available to this reviewer does not report it)

@github-actions

github-actions Bot commented Nov 5, 2026 •

Copy link
Copy Markdown
Contributor

Regtest APK

Built from ca41dac (run).

Download bitkit-dev-debug universal APK (expires in 30 days).

@piotr-iohk

Copy link
Copy Markdown
Collaborator Author

@greptileai Please review the current head fbe716b1912bfadaabf35e5835330cf8403c180f. The shared store-note guide now lives in synonymdev/bitkit#4, replacing the closed E2E #294 proposal. Only the store-note links/source revision wording moved; release sanity guidance stays in E2E. The dependency and merge order are updated in the PR description. Documentation checks and independent relocation review passed.

@talosmachina talosmachina left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Re-review of fbe716b after f495d46. 0 earlier findings. No new findings. The only change is fbe716b: both shared store-note guide links in .agents/commands/release.md (step 6 and the Play submission next step) now point at synonymdev/bitkit#4 instead of the closed bitkit-e2e-tests#294. Full tier, file read whole at the head.

What I checked, and 3 candidates I ruled out

Read: git diff f495d46 fbe716b, .agents/commands/release.md at the head, and docs/store-release-notes.md at synonymdev/bitkit#4 head 2d5f68c
CI: lint, detekt and build-and-test are green. compose-ui / ui-tests is still running, and none of them reads .agents/

Ruled out

  • Stale references to the old location: grepped the head for bitkit-e2e-tests and store-release-notes. Every store-note link now targets synonymdev/bitkit master, which is that repo's default branch. The bitkit-e2e-tests references that remain are the release-sanity skill, the release QA method and /archive-release, and #4 does not move those.
  • Guide and consumers disagree on where to load from: the command now says "one resolved bitkit default-branch revision", and docs/store-release-notes.md at #4's head (2d5f68c) gives the same instruction.
  • Dangling link: the link 404s until synonymdev/bitkit#4 merges. The body names #4 as the dependency and sets the merge order.

Merge confidence: 5/5, agent docs only, consistent with the relocated guide and the iOS twin.

@piotr-iohk
piotr-iohk requested review from a team, jvsena42 and pwltr and removed request for a team November 5, 2026 18:59

@pwltr pwltr left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed fbe716b against 8980a1e.

Looks good. Store notes are checked against the shared guide before translation, the draft's Store Release Notes section is replaced instead of prepended so re-runs do not duplicate it, and submission waits for a console readback. One Low finding:

Low: allowed_tools now adds WebFetch and WebSearch to an agent that also has Bash and GitHub release/PR write tools, and step 6 reads external policy pages in that session. Consider loading the shared guide through gh or the GitHub MCP at the resolved revision, and stating that fetched or searched content is reference material only, never instructions.

Review details

Claude Opus 5.5, effort high

@jvsena42 jvsena42 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Re-approving at the new head. The only change since my approval moves the shared guide links from bitkit-e2e-tests/blob/main to synonymdev/bitkit/blob/master/docs/store-release-notes.md, and the Dependency line now reads synonymdev/bitkit#4.

  • master is that repo's default branch, and #4 adds exactly docs/store-release-notes.md, so the links will resolve once #4 merges.
  • Every link in the twin was updated, and no stale bitkit-e2e-tests guide link is left.
  • I will not merge this before synonymdev/bitkit#4.

Reviewer model: claude-opus-5-5
Reasoning effort: Unknown (not exposed in session metadata)

@piotr-iohk

Copy link
Copy Markdown
Collaborator Author

Addressed the source-handling finding in the Android follow-up and the iOS twin. Both commands resolve the shared repository’s default branch to a SHA and read the guide at that exact revision through gh or GitHub MCP. The selected guide remains the shared method; fetched/searched policy pages and linked content are reference data with no command, credential, scope or write authority.

Whitespace, Markdown/local-reference and cross-platform parity checks passed. Independent review found no actionable issues. Both commits are signed and GitHub Verified; fresh bot reviews and CI are pending.

@piotr-iohk

Copy link
Copy Markdown
Collaborator Author

@greptileai Please review current head ca41dac59f19e98e9af119763e00136416eafffd. The review follow-up pins guide retrieval through gh/GitHub MCP and treats external policy pages as reference data without command, credential, scope or write authority. Documentation and parity checks plus independent review passed.

@talosmachina talosmachina left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Re-review of ca41dac after fbe716b. 0 earlier findings. No new findings. ca41dac changes step 6 of .agents/commands/release.md in two ways. It pins guide retrieval: resolve synonymdev/bitkit's default branch to one SHA through gh or the GitHub MCP, then read docs/store-release-notes.md at that SHA. It also adds a paragraph that treats fetched policy pages as reference data, never instructions. Full tier, file read whole at the head.

What I checked, and 3 candidates I ruled out

Read: git diff fbe716b ca41dac, .agents/commands/release.md at ca41dac
CI: build-and-test, detect-changes and Greptile are green. compose-ui / ui-tests is still pending, and none of them reads .agents/

Ruled out

  • The tools the new retrieval needs are not allowed: allowed_tools already lists Bash (for gh) and mcp__github__get_file_contents, which reads a file at a ref.
  • The pre-submission step loads the guide another way: the Play submission bullet under Next steps links the same guide and says "complete the shared store release-note checks". It sets no separate retrieval method, so the step 6 rule (one resolved SHA, revision recorded in .ai/store-notes-check-{newVersionName}.md) is the one that applies.
  • Dangling link: synonymdev/bitkit#4 is still open (head 2d5f68c), so the master link 404s until it merges. The body names #4 as the dependency and sets the merge order.

Merge confidence: 5/5, agent docs only, and a test would not apply to the change.

Reviewer model: claude-opus-5-5
Reasoning effort: Not exposed (the run metadata available to this reviewer does not report it)

@pwltr pwltr left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed ca41dac against 8980a1e.

The guide is now read through gh or the GitHub MCP at one resolved commit, and fetched or searched policy content is treated as untrusted reference data, which resolves my earlier Low finding. No new findings.

Review details

Claude Opus 5.5, effort high

@jvsena42 jvsena42 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Re-approving at the new head. The new commit pins the guide read to one resolved commit SHA. It also tells the agent to treat fetched policy pages as untrusted reference data, never as instructions, which is a sensible guard for a step that uses WebFetch. The twins match. I'm still holding the merge until synonymdev/bitkit#4 merges.

Reviewer model: claude-opus-5-5
Reasoning effort: Unknown (not exposed in session metadata)

@piotr-iohk
piotr-iohk merged commit 2b78a83 into master Nov 5, 2026
18 checks passed
@piotr-iohk
piotr-iohk deleted the docs/store-notes-guidelines branch November 5, 2026 20:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants