Skip to content

fix(cut-release): restore the release-notes owner call, document bundle retrieval - #190

Merged
stozo04 merged 7 commits into
mainfrom
docs/cut-release-notes-and-bundle
Sep 8, 2026
Merged

stozo04 merged 7 commits into
mainfrom
docs/cut-release-notes-and-bundle

Conversation

@stozo04

@stozo04 stozo04 commented Sep 8, 2026 •

Copy link
Copy Markdown
Owner

Two gaps that only showed up by actually running 1.0.52.

I dropped an owner call, and shouldn't have

Owner call 2026-08-28 (issue #158, answer 2) says this skill does draft the Play Console "What's new" text. My pipeline rewrite replaced that with a placeholder file and a comment saying it was "deliberately not auto-written" — an owner call overridden on an agent's own judgment. The reasoning wasn't worthless (a bash script can't write store copy, and auto-generated user-facing claims are a bad idea) but the correct response was to change how the requirement is met, not to delete it.

Restored, with the split that makes it work under the pipeline: the workflow emits the commit log, the agent writes the copy. The owner call is now recorded explicitly, with a line saying an agent doesn't get to drop one because the mechanics around it changed.

The workflow now writes a single notes/commits-<version>.md instead of two files named like finished notes — one of which was a bare commit log and the other empty. Both invited being uploaded as-is. The new file says outright that it isn't release notes and names the two files that are.

Nothing said how to get the bundle

Once the build moved off the owner's machine, app/build/outputs/bundle/release/app-release.aab became a stale local artifact from an earlier hand-build — wrong versionCode, wrong sha, and a live hazard at upload time. Nothing in any doc said so, and it came up immediately during 1.0.52.

New section covering both retrieval paths (gh run download, or the Artifacts section), the 30-day expiry, why the local app/build/ copy is not it, and archiving the .aab into releases/ so the manual fallback still has something to check.

Also

  • The "nothing user-facing changed" case is now written down: check app/src, say so plainly, and never write "bug fixes and performance improvements" for a release containing neither.
  • "Go ahead" is documented as an instruction to proceed, not a statement that the Play upload happened. That distinction cost a round trip on 1.0.52.
  • Two new behavioral rules: never hand over a locally built .aab, never write notes for changes that didn't happen.

All three harness copies are byte-identical at blob 9e06d45.

🤖 Generated with Claude Code

https://claude.ai/code/session_01Miqsf1M14nY5TKiZHzyjNY


Note

Low Risk
Documentation and release-workflow copy only; no app runtime or signing logic changes beyond renaming the notes artifact step.

Overview
Aligns the cut-release skill and release.yml with how releases actually run after CI builds the AAB: the workflow supplies a raw commit log; the agent retrieves the signed bundle and writes both note drafts.

Release notes split: Run 1 no longer emits github-release-notes-* / play-notes-* artifacts that looked like finished copy. It publishes a single notes/commits-<version>.md and states that Play/GitHub notes belong in gitignored docs/local/. The skill restores owner call 2026-08-28 (issue #158): agents must draft Play “What’s new,” with rules for empty app/src diffs and no generic “bug fixes” filler.

Bundle handoff: New skill section documents gh run download, artifact layout, 30-day retention, archiving under releases/, and never uploading from stale app/build/. Workflow summary steps match (download → write notes → Play upload → tag).

Gates and rules: Play-upload stop now distinguishes enthusiasm (“go ahead”, “uploading now”) from confirmed upload. Added behavioral rules against local .aab handoff and dishonest user-facing notes. Same skill text is synced across .claude, .codex, and .cursor.

Reviewed by Cursor Bugbot for commit 5644ac4. Bugbot is set up for automated code reviews on this repo. Configure here.

…ieval

Two gaps found while running 1.0.52.

The 2026-08-28 owner call says this skill DOES draft the Play "What's new"
text. The pipeline rewrite replaced that with a placeholder and a note saying
it was deliberately not auto-written — an owner call overridden on an agent's
own judgment, which is not an agent's call to make. Restored, with the split
that makes it work now: the workflow emits the commit log as raw material, the
agent writes the copy.

Nothing anywhere said how to get the signed bundle once the build moved off
the owner's machine. The runner is ephemeral, so the local app/build/ copy is
stale and uploading it is a live hazard. Documented with both retrieval paths,
the 30-day artifact expiry, and where to archive it.
…ieval (.cursor)

Byte-identical copy of the .claude change.
…ieval (.codex)

Third copy, byte-identical to .claude and .cursor.
The workflow was writing two files named like finished release notes: one a
bare commit log, the other an empty placeholder. Both invited being uploaded
as-is, and the placeholder was standing in for the Play copy the cut-release
skill is required to write (owner call 2026-08-28).

Emit one file, named for what it is, that says outright it is not release
notes and carries the "nothing under app/src changed" finding for the agent
to act on.
markdownlint-cli2 failed on the new "Getting the signed bundle" section: the
block listing the artifact contents had no language, and MD040 requires one.
Every other fence in this file declares one.
Third copy, byte-identical to .claude and .cursor.
@stozo04
stozo04 merged commit ecdc38f into main Sep 8, 2026
3 checks passed
@stozo04
stozo04 deleted the docs/cut-release-notes-and-bundle branch September 8, 2026 14:04

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.

Fix All in Cursor

Bugbot Autofix is ON, but it could not run because the branch was deleted or merged before autofix could start.

Reviewed by Cursor Bugbot for commit 5644ac4. Configure here.

echo "rollout is worth spending on a build users cannot tell apart from the last one."
fi
} > "notes/play-notes-${NAME}.md"
} > "notes/commits-${NAME}.md"

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Tag notes path no longer exists

Medium Severity

The release run now uploads notes/commits-<version>.md only. tag.yml still reads notes/github-release-notes-<version>.md when notes is true, so that option fails after Play upload. Agent drafts in docs/local/ never reach the tag job.

Additional Locations (1)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 5644ac4. Configure here.

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.

1 participant