SKILL.md
Create release
Prepare a release whose tag contains its changelog, then publish through exactly one evidence-backed path when publication is authorized.
Authorization
- Prepare: determine the version, update changelog/version declarations,
validate, and open the release PR. Requests to prepare, bump, or generate notes authorize only this stage.
- Publish: after the PR merges, create or trigger the tag/release through the
repository's established publisher. Requests to cut, tag, publish, or run /create-release authorize this stage too.
- When ambiguous, perform Prepare only.
Invariants
- The changelog and version bump land before the tag, through a squash-merged PR.
- Use the repository's configured tools and current documentation. Regenerate
generated changelogs rather than hand-editing them.
- Use an explicit version or recommend one from unreleased conventional commits
and wait for the user's decision.
- Run the declared release-relevant gate and report only observed results.
- Never amend, force-push, force-update a tag, skip hooks, or publish through
more than one path.
Prepare
- Resolve the authorization stage, remote default branch, clean working tree,
changelog/version tooling, last release, remote tags, workflows, and release documentation.
- Stop if there are no releasable commits.
- Validate a supplied version, or recommend and confirm the next version from
unreleased commits.
- Create a release branch from the fresh remote base.
- Generate the changelog section and update every authoritative version
declaration using project tooling. Do not invent a manifest bump when the project derives its version from tags.
- Run the release-relevant project gate, commit
chore(release): <version>,
and open a draft release PR through /create-pr. Include the changelog section and observed validation. Stop here for Prepare-only requests.
Publish
- Use
delivery-waitto await and verify the squash merge for the exact PR
head; never tag the open PR branch.
- Refresh the merged base, then re-read the actual workflow YAML and release
documentation. Identify separate owners for tag creation, GitHub release creation, artifact signing, and registry publishing.
- Select exactly one route:
- workflow owns tag and release: trigger or monitor it only; - agent owns tag, workflow owns release: push the verified tag once, then monitor; - workflow owns tag, agent owns release: verify its tag, then create one GitHub release; - agent owns both: only when no workflow owns either action, push the verified tag once and create one release.
- Stop when ownership is ambiguous or documentation and workflow disagree.
- Execute only the selected route and verify the final tag target, release,
workflow result, artifacts, and registry state that the route owns. Use the helper's wait workflow-terminal, wait tag-target, and wait release-assets operations for those GitHub transitions; do not monitor unchanged state through model turns.
Lead with the release outcome, PR/release URL, selected publisher, and current evidence. Never describe an unobserved state as complete.