release-trackinglisted
Install: claude install-skill xsefirosus/sefi-agents
# Release tracking
Maintain one evidence-backed release ledger at `state/release-ledger.md`. Treat every
publication surface as independent: a bumped `plugin.json`, a local git tag, or a drafted
GitHub release does NOT prove the other surfaces changed. Ported from
`Demonbane18/astral-orchestrator`'s `track-astral-releases` skill and its
`release-ledger.py` (MIT): same evidence-priority order, the same "common false proof"
column, and the same strict "say `partially released`, not `released`, until every surface
matches" gate.
All factual output follows the anti-hallucination skill: cite the exact command output or
`file:line` you read, or mark the surface `unobserved`. Never infer one surface from
another, and never guess a surface you did not observe this session.
## The six surfaces
Read [release-surfaces.md](references/release-surfaces.md) before checking or recording
any surface. Each surface is reconciled against the target version resolved from
`plugins/sefi-core/.claude-plugin/plugin.json` -- never from prose.
| # | Surface | Where it lives | Sufficient evidence | Common false proof |
|---|---|---|---|---|
| a | `plugin.json` version | `plugins/sefi-core/.claude-plugin/plugin.json` `version` | The `version` string read at `file:line` | A README count or CHANGELOG heading alone |
| b | `marketplace.json` version | root `.claude-plugin/marketplace.json` -- BOTH `metadata.version` AND `plugins[0].version` (two occurrences) | Both occurrences read at `file:line` | Upd