releaselisted
Install: claude install-skill supermodo/skills
# release — versioned releases with git-flow discipline
> **Requires:** the sibling `protocols` skill (shared protocol masters); uses `skills.config.json` when present (`release` section — defaults apply without it). Missing protocols → tell the user to install the full supermodo package.
The message of this skill: **`main` only ever contains released states** (it is
what installers and users consume), so releasing is a deliberate, gated act.
Everything scriptable is scripted; git mutations pass a consent gate that
defaults to an explicit per-release yes (the yes IS the authorization, for
THIS release only) and can be relaxed to auto via `confirmations` in config.
> **Cross-tool note (Claude Code ↔ Codex).** Written in Claude Code idioms.
> Under Codex: run the same script with `node`, ask the questions in chat, and
> execute the same git sequences with your native shell tool.
## Configuration
`skills.config.json` → `release` section (all optional, defaults per
`../protocols/references/config.md`): `mode` (`"light"` default | `"full"`),
`branches.main`/`branches.dev`, `versionFile` + `versionPath` (where the
version lives — `package.json:version`, `.claude-plugin/plugin.json:version`,
…), `changelog`, `tagPrefix`, `mergeStrategy` (`"squash"` default |
`"merge"`), `githubRelease` (publish via `gh` after tagging).
## Step 1 — Preflight (deterministic, read-only)
If `skills.config.json` exists, validate it FIRST (run the config skill's
`config-check.ts` or apply `../proto