Repository navigation
release skill 4d: document the ledger's title, layout and required sections #5343
Description
Problem
Release skill step 4d (.claude/skills/release/SKILL.md, "The ledger") lists what a release ledger must contain: the masthead, verdict, gate cells, packaging table, what will publish, one table per theme, and findings. It says nothing about how the ledger is titled or laid out, or about building on the previous one. The v2.0.0, v2.1.0 and v2.2.0 ledgers share one design only because each was copied from the last by hand. The only record of that is a CSS comment in the page ("Same system as the v2.0.0 ledger"), and a session that doesn't know about it builds a different page.
The last two ledgers also carry sections step 4d doesn't ask for, which were the useful ones:
- SDKs and Toolchain lines in the masthead: the MCP SDK versions locked, and the Node, uv, Inspector, Playwright, Docker and Claude Code versions used.
- Preparation PRs: the audit (or its report, when no fix was forced), Version Packages and Prepare Python Release, each with what was checked.
- Tool schemas against the previous release: each TypeScript server's
tools/list(input and output schemas, annotations, descriptions) against the versions the previous release published, in both eras. - LLM client: one headless Claude Code run (
--strict-mcp-config) calling one tool on each of the seven release-candidate builds. - Also shipping: advisory fixes: fixes that shipped through an advisory and not a milestone issue.
Proposal
Amend step 4d so that it:
- Titles the page
Servers vX.Y.Z Release Ledger, for both the<title>and the<h1>. - Starts from the previous release's ledger, which is linked from the latest published Release's notes ("Release ledger: …"). It reuses that page's stylesheet and section structure, changing content only. The skill links to the previous Release rather than naming an artifact URL, so it never holds a link that goes stale.
- Lists the five sections above as required, alongside the existing ones.
- Names the issue-table columns: Issue · Title · What was driven · Observed · Status. Each Issue cell is tagged
client,web UIorprobe, and each Status is a pill (PASS, or a named exception). - Covers a second merge PR. When a fix lands after the first merge PR (v2.2.0 needed Release v2.2.0: merge v2/main into main (certifi lock) #5342 after Release v2.2.0: merge v2/main into main #5338 for the
certifilockfile), the masthead names both merge PRs, and the page says which checks ran on which head and what differs between the two trees.
Done when
.claude/skills/release/SKILL.md step 4d says all of the above, and npm run verify:skills passes. The release skill is name-only (disable-model-invocation: true), so no eval cases change.
Activity