harness-releasing-versionslisted
Install: claude install-skill orobsonn/claude-harness
# Releasing versions
Detect the release regime before doing anything. Apply the portable delivery
contract at `.codex/skills/harness-delivery/references/delivery-contract.md`
and the safety contract at `.codex/skills/harness-rules/references/governance-contract.md`.
## 0. Detect the regime
```bash
ROOT=$(git rev-parse --show-toplevel) || exit 1
RP=""
[ -f "$ROOT/release-please-config.json" ] && RP="config"
[ -z "$RP" ] && [ -f "$ROOT/.release-please-manifest.json" ] && RP="manifest"
[ -z "$RP" ] && grep -rq "release-please-action" "$ROOT/.github/workflows/" 2>/dev/null && RP="workflow"
echo "${RP:-manual}"
```
- `config`, `manifest`, or `workflow`: use **release-please**.
- `manual`: use only the fenced manual fallback below.
## Release-please
The action owns `CHANGELOG.md`, package version, tag, and GitHub Release. Land
Conventional Commits through a PR; this repository does not publish to npm.
- NUNCA editar `CHANGELOG.md` manualmente <!-- release-please:prohibition -->
- NUNCA rodar `npm version` <!-- release-please:prohibition -->
- NUNCA criar tag ou GitHub Release manualmente <!-- release-please:prohibition -->
- NUNCA commitar uma release direto em `main`; toda mudança humana vai por PR.
```bash
gh pr list --search 'author:app/github-actions "chore(main): release"'
gh release view --json tagName,publishedAt
```
## 2. Force a version with `Release-As: X.Y.Z`
`Release-As: X.Y.Z` belongs in the body of the squash commit that lands on `main`. A major `Release-As: