Repository navigation
Release script: agent-written summary in the bump PR - #167
Merged
Merged
Conversation
The release script pipes the prompt in scripts/release-summary.md, the version diff and each PR merged since the last tag to claude -p with no tools, and puts its output in the summary section. If claude fails or prints nothing, it warns and falls back to GitHub's generated notes with a note saying so. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Write the version diff section once, have release_summary find the previous tag itself, and drop the prompt's bullet rule, which pulled against the 0.3.0 prose it holds up as the model. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
JacobStephens2
added a commit
that referenced
this pull request
Sep 30, 2026
Brings in the claude-written release summary (#167). The release tests keep both sides' helpers: the CI-run and origin-refs helpers for the refusals, and the fake claude helpers for the summary. The CI refusal test's merge_pr call takes the body argument main added. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
JacobStephens2
added a commit
that referenced
this pull request
Sep 30, 2026
Brings in #167's agent-written release summary. The PR body is now built in open_pr from the bump commit's sha rather than HEAD, since the script no longer runs inside the worktree, so version_diff takes <base> <head>. The fake gh's pr view keeps both --jq support and headRefOid through pr_fields. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The release script now has
claudewrite the bump PR's summary. If the agent fails, it falls back to GitHub's generated notes.scripts/ ├── release.sh +└── release-summary.md # the agent's prompt, with the emphasis rules and the 0.3.0 summary as the model tests/fakes/ ├── claude # + plain print mode: records stdin, prints only the script's output └── gh # + `pr view <number>` and `--jq .<field>`Merge pull request #Nmerge commits in<last tag>..origin/main. The bump PR isn't merged yet when this runs, so it is never among them.Evidence
main, the summary section holds GitHub's generated notes andclaudeis never called.After:
cargo test --test releasepasses all 9 tests, including 4 new ones:cargo test --no-fail-fastpasses. In one earlier run,merge_run'sctrl_c_after_the_merge_…hit its 10-second "agent never started" deadline while the machine was under heavy load. It passed on the re-run, and it doesn't touch the release script.shellcheck scripts/release.shandcargo clippy --all-targets -- -D warningsare clean.Merge Danger
Door: two-way
This only changes the maintainer's release script and its tests. Nothing ships in the binary. The tag push it leads to was already one-way.
Blast Radius: release notes
At worst, a poor agent summary ends up in a bump PR body, and the maintainer can edit it. Releasing now needs
claudeonPATH. Ifclaudeis missing or fails, the script falls back to the generated notes rather than stopping.Unaddressed findings
Standards
gh pr viewcalls per PR (title, then body): a single call would need a jq expression that joins a multi-line body. Separate calls stay simple, and a release has only a few PRs.ghbuilds a second field map for--jq:pr_fieldsdeliberately leaves outtitleandbody, whichpr listdoesn't return, so the--jqpath adds them locally.Spec
--strict-mcp-configbeyond "tools disabled":--tools ''only disables built-in tools, so this flag also keeps MCP tools out, as Cut a release with one command: bump PR, agent-written summary, merge and tag #150 intends ("it can't take actions").ghfailure while reading PRs also means the generated notes would likely fail.claudein this headless session. The whitespace-only check also catches an empty result.<last tag>..mainby construction.Closes #159
🤖 Generated with Claude Code