- title
- Release checklist
- kind
- sop
- triggers
- tools
Standard Operating Procedure: Release
Use with agent-release. Pipeline shape (verify on PR and main, promote, changelog push-back): profile-pipeline.
This kit ships as a git checkout (install.sh / KIT_REF), not npm. Versioned
artifacts are GitHub Releases (vX.Y.Z tags). Changelog generation uses
git-cliff (same stack as ArchLens).
1. Quality gates
- Functional impact map aligned; no silent catalog rewrites
- XFN matrix complete; every apply row green or BLOCKED with owner
- Security + arch-drift findings addressed or explicitly deferred
- Pre-commit / CI green on the release revision
2. Human-facing package
- Conventional PR title (conventional-commits.md); squash-and-merge uses it on the default branch
- Changelog / release notes: user-visible behavior, migrations, flags
- Rollback: previous version / flag off / migration reverse notes
Kit release automation
Pipelines (keep these separate on purpose):
| Pipeline | Workflow | When |
|---|---|---|
| Verify → Promote | .github/workflows/ci.yml | PR / main / workflow_dispatch |
| Pages | .github/workflows/deploy-pages.yml | Docs-site path changes on main |
| CodeQL | .github/workflows/codeql.yml | PR / main / weekly |
| Live EDD | .github/workflows/edd-live.yml | Nightly schedule |
After green Verify on main, the Promote job:
- Detect -
bin/release.sh detectlooks at conventional commits since the lastv*tag.feat→ minor,fix/perf/refactor→ patch,!/BREAKING CHANGE→ majordocs/chore/ci/testalone do not cut a release
- Publish - creates a GitHub Release with version-scoped notes (
bin/release.sh publish): commits since the previous tag only, headed## vX.Y.Z(never[unreleased]) - Sync notes -
bin/release.sh sync-notesrewrites every existingvX.Y.ZGitHub Release body fromprevious-tag..this-tag(idempotent repair) - Changelog - regenerates date-grouped
CHANGELOG.mdviapnpm changelog(bin/changelog-render.mjs) and commitschore(changelog): …when needed. CHANGELOG stays date-grouped; GitHub Release notes stay version-scoped.
Local:
pnpm changelog # regenerate date-grouped CHANGELOG.md
pnpm release:detect # print whether HEAD would release
bash bin/release.sh notes # preview notes since last tag → HEAD
bash bin/release.sh notes '' v1.0.0 # first-release range (beginning → tag)
bash bin/release.sh notes v1.0.0 v1.1.0
bash bin/release.sh sync-notes # repair GitHub Release bodies (needs GH_TOKEN)
Consumers pin installs with KIT_REF=vX.Y.Z (see install.sh).
3. Ops handoff
- Load SLOs mapped to telemetry (or N/A) per
handover_telemetry.md - Docs/runbooks updated when operators or public API changed (agent-docs)
- Report catalog + XFN summary to the user before calling Release COMPLETE