spec: 010 the acceptance pass — AC1 to AC9 walked, and spec 010 closed - #111
Merged
Conversation
56 of 56 tasks. Every criterion checked at 2c8e456 rather than inferred from a green build, and where a criterion could be checked two ways it was. AC3 is the one worth naming: instead of asserting the block resolves, --redirects was re-run against the pre-Phase-2 SUMMARY.md. It emits 74 moved paths, and every one is in .gitbook.yaml with the same target — zero moved-but-not-redirected. The three extra keys are dated: D0's probe key (6611c98) and Phase 5's two intermediate Azure paths (60503c7), which is exactly what §2's third finding said PR 5 would owe. AC7 is complete rather than partial: 26 split rows, 26 distinct sources, all still on disk under their original filenames, and 32 pages created — derived by set difference against the commit that closed 011, 110 to 142, not by counting a table. AC8 by set comparison: the keep set and the split-source set are disjoint. It confirms §2's third finding again — 16 rows name 16 pages, not the fifteen the approved documents say. Standing obligation 7 enumerated both ways: 142 rows, 142 pages, and 142/142 on each of the two parities no tool checks. Three things the pass found that were not on its list. The 404 shell has drifted again, 189,511 to 223,618 bytes, while the classes still separate and the location-header discriminator has never moved. A redirect's status is not stable across requests — the first is 307, the second 200 from the edge — and `.md` returns "Page Not Found" for a path that redirects perfectly, which is the mirror of the tool Phase 5 recommended: probe cold, once, and read the location header. And one filename containing spaces defeated three ad-hoc measurements in a single session while every repository tool handled it correctly. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
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.
Spec 010, Phase 11, Tasks 11.4 and 11.5 — the last two. Spec documents only; nothing published changes. 56 of 56 tasks.
Every criterion measured at
2c8e456while writing the section, and where a criterion could be checked two ways, it was.SUMMARY.mdlinks 142 pages against 142 on disk; live--verify142/142/142 agreeREADME.md, brought into scope by Task 11.9--check-redirects0 failures, 77 entries, 7,858 bytes, printable ASCII, in CI since Phase 2urlmap.pypredicts, with controls both ways--check-shape0 — 142 pages, 12 sections, deepest 4 of 4, widest 10 of 124001b0a(110 → 142)keepset is disjoint from the 26 split sourcesAC3 is the one worth naming
Rather than assert the block resolves,
--redirectswas re-run against the pre-Phase-2SUMMARY.md(1bae048^). It emits 74 moved paths, and every one is in.gitbook.yamlwith the same target — zero moved-but-not-redirected. That checks completeness, which "the block parses" never did.The three extra keys are dated rather than waved through: D0's probe key (
6611c98) and Phase 5's two intermediate Azure paths (60503c7) — exactly what §2's third finding predicted PR 5 would owe.Standing obligation 7, enumerated both ways
pagetypes.tsv: 142 rows, 142 pages, nothing in one that is not in the other. Banner type againstverdict142/142; banner version againstapplies142/142. No tool checks either, which is why it is walked — it is the check that would have failed silently had any phase forgotten its row.Three things the pass found that were not on its list
location:header.307; second200, a 227,547-byte shell carrying the destination's<title>. The reader lands correctly either way, but a probe run twice gives two answers and only the first is the mechanism. Andcurl <old-path>.mdreturns# Page Not Foundfor a path that redirects perfectly — the mirror of the tool Phase 5 recommended. Probe cold, once, and read thelocation:header.contents/Requests, Commands and Events.mdbroke agit ls-tree | split()count and a\S+scan of.gitbook.yamltwice — 74 read as 73 and 77 as 76, on both sides of a comparison that therefore still balanced. Every repository tool handles it correctly. Nothing is wrong with the page; something is wrong with reaching for\S+.Task 11.5 — the final gate
BoxProvisioning.md#when-to-use-box-provisioningresolves — spec 009's rung 3 depends on it. The heading is## When to use Box Provisioning, lower-case use; a grep for the capitalised form returns nothing, so it was checked throughlinkcheck.py's ownslug()instead.🤖 Generated with Claude Code