Companion to github-ops, the
release flows in cli-tools.md, and public-posts
(the broader sibling — preview text before sending it to any third-party
surface, not just the release page).
Never run gh release create without explicit user approval. Push the
commit + tag if the user has authorised the publish flow, but stop at the
release step and surface the diff for review.
This applies to:
gh release creategh release edit --draft=false (publishing a previously drafted release)A GitHub release is a one-way visibility commitment. Once published:
uv tool install <pkg>@<tag> / pip install <pkg>==<version> resolves
to the published artefactsPushing a commit + tag is also visible, but it's a much smaller signal than a release page. The user can review the pushed state on GitHub before creating the release.
The user has explicitly corrected this drift (rookery v0.3.0, 2026-04-28):
"no human review before github release"
— meaning a human review step is required before the release is published.
When invoking the github-ops update mode (or any equivalent flow):
git commit + git tag (these stay local until step 4)git push origin <branch> + git push origin <tag> — OK to do
without separate confirmation when the user has authorised the publishhttps://github.com/<org>/<repo>/compare/<prev>...<tag>https://github.com/<org>/<repo>/tree/<tag>gh release createWhen you stop at step 5, give the user:
gh release create command you'd run, with the --notes contentExample:
v0.3.0 commit + tag pushed. Ready to create the GitHub release.
Diff: https://github.com/0xDarkMatter/rookery/compare/v0.2.0...v0.3.0
Tree: https://github.com/0xDarkMatter/rookery/tree/v0.3.0
Proposed release command:
gh release create v0.3.0 \
--repo 0xDarkMatter/rookery \
--title "v0.3.0 — Parcel reporting refactor" \
--notes-file /tmp/v030-notes.md
Want me to run it, or do you want to review on GitHub first?
If the user has already explicitly said "create the release" / "publish v0.X.Y" / "ship it" in the same turn that authorises the push, you can skip the separate confirmation step. The rule is about implicit authorisation — the user saying "use github-ops update mode" is not the same as saying "publish the release page".
If unsure, ask. The cost of asking is low; the cost of an unwanted release is real.
~/.claude/skills/github-ops/SKILL.md — release flow modes~/.claude/skills/push-gate/scripts/preflight.sh — pre-push secret scan~/.claude/rules/cli-tools.md — gh CLI usage patterns