releaselisted
Install: claude install-skill qupunto/wss
# Cutting a release
**This skill writes nothing.** It is the only one that may *decide* to tag, but
the tag itself is written by `git-writer`, the changelog by `changelog-writer`,
and the milestone mark by `--wss-plan`. Who owns what is
[`wss/workflow/WSS.OWNERSHIP.md`](../../wss/workflow/WSS.OWNERSHIP.md).
**Project facts come from `.claude/WSS.WORKFLOW.json`**: `WSS.record.releases`,
`WSS.record.changelog`, `WSS.record.stocktake`, `WSS.branch.publish`, and `WSS.agents.release` —
the agent that prepares the material. Without a manifest, fall back to
`WSS.CHANGELOG.md`, `WSS.RELEASES.md` and the current branch, and say so.
**`WSS.record.releases` is the only planning record this skill reads, and that is
load-bearing.** `WSS.record.roadmap` splits by lane and holds goals; it carries no
version and no completion mark, so there is nothing in it for a release to act
on — [`WSS.RECORD-CONTRACT.md`](../../wss/workflow/WSS.RECORD-CONTRACT.md) holds that rule.
A project may run any number of lane roadmaps and still have exactly one release
checkpoint. Reading a roadmap here would undo that.
Where a `.claude/WSS.LANE` selector names a lane, `WSS.lanes.named.<lane>.records.todo`
overrides `WSS.record.todo` — [`WSS.LANE-CONTRACT.md`](../../wss/workflow/WSS.LANE-CONTRACT.md)'s
resolution rule; the changelog and the release list never split.
## The `--wss-release` shorthand
Invoking without confirmation is safe: everything up to the push is local and
reversible, and the push has its