Repository navigation
0.5.6: a test's name, not every string in the file - #66
Merged
Merged
Conversation
Components: bundle 0.5.6, extension 0.5.6, preset 0.5.6. The release carries FR-GATE-220 and the awk rule found writing it, both merged at 2b7e85f, plus one thing found cutting it. The cut. Versions in bundle.yml, extension.yml and preset.yml; the three catalogs' version, download_url and stamps, with sha256 removed, since the digest belongs to a published asset that does not exist until the tag and the digests pull request restores it; the preset README's install URL; and the CHANGELOG heading with the components line. The doc-version check demanded three things rather than none. Five dated 0.5.4 observations in PRD.md aged into six warnings on this cut and are marked as provenance, because each records when something was reproduced rather than what is true now. The community catalog was re-observed, 2026-10-05: all three entries still read 0.5.2, filed 2026-09-23 and landed 2026-09-24, so the next filing carries 0.5.3 through 0.5.6 in one round. And the check had a hole. FR-DOCS-80, found cutting this release and hiding since 0.5.1. A mark covers the block it sits in, which is right for wrapped prose and wrong for a table: a Markdown table is one block, so a reason beside one row exempted every other row of the same table. Two real claims had been passing the release step named "Docs must not lie about the version being cut": ONBOARD.md's pin table said v0.5.5 with a current mark while 0.5.6 was being cut, beside a Spec Kit row carrying stale-ok; and the submission page's own What's done table had said v0.5.1 with a current mark for four releases, beside a row citing a CHANGELOG section with stale-ok. Neither was ever reported. A silent checker is worse than an absent one, because the release trusts it. Each row is now classified by its own mark alone, and both claims are corrected rather than re-marked. Deferred, with the reason written into the pages: the three submission issues, which need each asset's sha256 read from the release page, and ONBOARD's pin table, which moves only when all thirteen blocks are replayed on the published 0.5.6. Verified: specify bundle validate at 1.0.5 well-formed and valid, the suite 211 passing, the self-gate OK (152 registry IDs), and the doc-version check clean against v0.5.6 with zero warnings, which is the same check the Release workflow runs before it builds anything. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Vzf6Sh5RVMKdFqaXKFF2FY
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The release cut for 0.5.6. Components: bundle 0.5.6, extension 0.5.6, preset 0.5.6.
It carries #65 (FR-GATE-220, and the awk rule found writing it), merged by hand at
2b7e85f, plus one thing found cutting it.The cut
bundle.yml(bundle + both components),extensions/specassay-check/extension.yml,presets/specassay/preset.ymlcatalogs/bundles.json,catalogs/extensions.json,catalogs/presets.jsonsha256removedpresets/specassay/README.mdCHANGELOG.mdspecify bundle validateat Spec Kit 1.0.5:✓ specassay is well-formed and valid.What the doc-version check demanded
Three things, not none.
Five dated observations aged into warnings. Cutting 0.5.6 put five
0.5.4observations inPRD.mdtwo releases behind, producing six warnings. Each records when something was reproduced (Reproduced before fixing, 2026-10-02 on 0.5.4, the catalog drift that minted FR-GATE-210, the cold-path ledger reproduction) rather than what is true now, so each is marked<!-- specassay:provenance -->. Left alone they become refusals at 0.5.7.The community catalog, re-observed 2026-10-05 against
raw.githubusercontent.com/github/spec-kit/main/{extensions,presets,bundles}/catalog.community.json: all three entries still read 0.5.2, with 0.5.2 download URLs. That round was filed 2026-09-23 and landed 2026-09-24 (#4717, #4735, #4737). So 0.5.3, 0.5.4, 0.5.5 and 0.5.6 are all unfiled and go in as one round, one issue per component, because the bundle pins its own components.And the check had a hole: FR-DOCS-80.
FR-DOCS-80, found cutting this release and hiding since 0.5.1
A doc-version mark covers the block it sits in. That is right for wrapped prose, where a version on the first line and a mark on the last are one claim. It is wrong for a table, because a Markdown table is a single block: a reason written beside one row exempted every other row of the same table.
Two real claims had been passing the release step named Docs must not lie about the version being cut:
ONBOARD.md:31said v0.5.5 with<!-- specassay:current -->while 0.5.6 was being cut, beside a Spec Kit row carryingstale-ok.docs/submission/README.md's own "What's done" table had said v0.5.1 with<!-- specassay:current -->since 0.5.1, four releases, beside a row citing a CHANGELOG section withstale-ok.Neither was ever reported, by any release. A checker that is silent is worse than one that is absent, because the release trusts it.
Each row is now classified by its own mark alone. Both claims are corrected rather than re-marked: ONBOARD's pin carries the reason it cannot move before the tag, and the submission row names the last release actually published instead of the one being cut.
Two tests, both negative-controlled against
main's checker (the first fails there, the second passes, which is what pinning unchanged behaviour should do):test_AC_DOCS_30_a_table_row_is_its_own_claimtest_AC_DOCS_30_a_row_with_its_own_mark_is_still_acceptedI folded this into the release rather than filing it after, because it is the release's own gate and the fix changes what this cut is allowed to claim. It touches
scripts/check-doc-versions.py, which is this repository's tooling and is not shipped in the bundle.Deferred, with the reason written into the pages
The three submission issues. Each form asks for the asset's sha256, read from the release page rather than computed locally, so they can only be prepared once the assets exist.
docs/submission/README.mdnow names every field the forms want and where each comes from, and the digests PR that follows the tag fills the three values from the published assets.ONBOARD's pin table. It reads v0.5.5 and moves only when all thirteen blocks are replayed on the published 0.5.6, which cannot run before the tag. The same was true at 0.5.5, where replaying from block 1 caught a bad capture the page itself had been right about.
Verified before the tag
specify bundle validateat 1.0.5: well-formed and validOK (152 registry IDs)python3 scripts/check-doc-versions.py --version v0.5.6: 0 warnings, which is the same check the Release workflow runs before it builds anything🤖 Generated with Claude Code
https://claude.ai/code/session_01Vzf6Sh5RVMKdFqaXKFF2FY
Generated by Claude Code