Skip to content

spec: 010 Task 11.3 — a --changed run reports what it examined - #104

Merged
iancooper merged 1 commit into
masterfrom
docs/spec-010-phase-11-changed-scope
Aug 22, 2026
Merged

spec: 010 Task 11.3 — a --changed run reports what it examined#104
iancooper merged 1 commit into
masterfrom
docs/spec-010-phase-11-changed-scope

Conversation

@iancooper

Copy link
Copy Markdown
Member

Spec 010, Phase 11, Task 11.3 (P2-3). No page under contents/ changes, so nothing published moves.

pagelint.py --changed now opens by reporting its own scope:

--changed origin/master: 149 file(s), 192 hunk(s) in the diff; 142 page(s) under contents/, 5 code block(s) strict.

Those are the description sweep's real numbers. Files and hunks describe the diff; blocks describe what the diff reached — 149 files changed and the strict rule saw five blocks. The task as written asked only for files and hunks, which on that PR would have read as overwhelming coverage of a rule that was almost entirely idle.

When the block count is zero the run says so in a sentence, and names the unstaged-new-file case, because that is the shape the same prediction has failed in twice. This PR's own CI run will print 0 code block(s) strict — it touches no page — which is the report working, not failing.

It went into the tool rather than the workflow so a local run proves its own non-vacuity too. That is the run before a push, and it is the one the note in PROMPT.md was standing in for.

Red-proof

On a page held out of the diff and restored from a copy, with the mutation asserted to have landed before any result was read:

Mutation Scope line Exit
one prose line 1 page(s), 0 code block(s) strict 0
one line inside the C# block at AWSSQSConfiguration.md:36 1 page(s), 1 code block(s) strict 1, error naming line 36

The counter tracks the rule rather than the diff, which is the whole claim.

Phase 11 opens

  • The four items session 22 recorded in prose are now Tasks 11.6–11.9. A paragraph is not a box, and only a box gets walked at the acceptance pass.
  • Two of three inherited counts moved when re-derived: 14 files with no trailing newline, not 17; 23 internal .html links across 13 pages, not 25 across ~15. The .html figure was carried as 29 − 4, and the six links Phase 10 actually fixed reproduce in 6675615. Re-derive a total; never subtract from one either.
  • One box per task. Phase 10 ticked each of its four tasks on a second line while leaving the definition box open, so grep -c returned 56 for 52 tasks. It returns 56 for 56 now, and the phase column sums to 56 independently.

Gates

linkcheck 144 files; pagelint 0 errors / 791 warnings / 142 pages; --check-shape 0 at 142 pages / 12 sections / deepest 4 / widest 10; --check-redirects 0 at 77 entries; --changed origin/master 0, reporting 0 blocks strict as above.

🤖 Generated with Claude Code

P2-3. `pagelint.py --changed` opens by printing files, hunks, pages and — the
figure that matters — how many code blocks the diff actually reached. The strict
rules are per code block, so a diff of a hundred prose files makes them strict
about nothing, and `0 errors` from that run is the same line as `0 errors` from
a real one. The description sweep is the case in point: 149 files, 192 hunks,
five blocks strict.

It went into the tool rather than into `docs.yml`, so the run before a push
proves its own non-vacuity too — which is the run the note in `PROMPT.md` was
standing in for. When the count is zero the run says so in a sentence and names
the unstaged-new-file case, the shape that has failed twice.

Red-proofed by mutation on a page held out of the diff and restored from a copy:
a prose line gives 1 page / 0 blocks / exit 0, one line inside a C# block with no
`using` gives 1 page / 1 block / exit 1. The counter tracks the rule, not the diff.

Phase 11 also opens here. The four items session 22 found are now Tasks 11.6-11.9
rather than paragraphs, because only a box gets walked at the acceptance pass, and
two of the three inherited counts moved when re-derived: 14 files without a
trailing newline, not 17, and 23 internal `.html` links, not 25 — the latter
carried as 29 minus a subtrahend of four that was really six.

The box count is now one box per task. Phase 10 recorded each of its four tasks
twice, so `grep -c` returned 56 for 52 tasks; it returns 56 for 56 now.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@iancooper
iancooper merged commit 099f0c7 into master Aug 22, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant