releaselisted
Install: claude install-skill nguyenhx2/agent-harness-bootstrap
# Release
Performs a release to the standard in [`docs/RELEASING.md`](../../../docs/RELEASING.md). That file is
the rule; this skill is the executable form of it. Read it if anything here is ambiguous.
**A tag with no artifact is not a release.** The single most common failure is shipping a version
nobody can install and nobody can identify once installed. Every step below exists to prevent that.
## Procedure
**1. Decide the version.** Semver, from what actually changed since the last tag:
```bash
git describe --tags --abbrev=0 2>/dev/null || echo "no tags yet"
git log $(git describe --tags --abbrev=0 2>/dev/null)..HEAD --oneline
```
- Breaking change to an asset, a `manifest.json` key, or the scaffolder contract: **MAJOR**.
- New assets, rules, agents, or commands: **MINOR**.
- Fixes, docs, CI: **PATCH**.
Ask the user to confirm the number before proceeding. Do not guess a MAJOR bump on their behalf.
**Then bump the version inside each skill.** Set `version: X.Y.Z` in the frontmatter of every
`SKILL.md` (`harness-bootstrap/SKILL.md`, `spec-builder/SKILL.md`). This is what makes an installed
skill self-identifying even before the packager injects its `VERSION` file, and the preflight in
step 3 fails the release if a `SKILL.md` version does not match the tag.
**2. Write the CHANGELOG section.** Add `## vX.Y.Z` at the top of `CHANGELOG.md`, above the previous
version. Group under **Added / Changed / Fixed / Removed** and use only the headings that apply.
Write it for