Skip to content

docs: move the wiki page list to its own file, and make it self-checking - #366

Merged
ako merged 2 commits into
mainfrom
docs/seed-table-own-file
Sep 1, 2026
Merged

docs: move the wiki page list to its own file, and make it self-checking#366
ako merged 2 commits into
mainfrom
docs/seed-table-own-file

Conversation

@ako

@ako ako commented Sep 1, 2026

Copy link
Copy Markdown
Owner

The seed table was the last file forcing wiki PRs to be serialised. It's now a table and nothing else in .claude/skills/maintain-wiki/pages.md, with merge=union in .gitattributes; the prose stays in maintain-wiki.md and explains why the split exists.

Union is safe on a pure table and not safe on prose — it keeps both sides of an edited line silently. That's the same trade-off already recorded from the fix-issue.md split, which is why the file is a table with no preamble.

Also carries 62b25250, which missed #364's merge by minutes — the SYNC_LOG.md union rule and the removal of the coverage percentages from CLAUDE.md. Worth noting that #364 merged at 680025d7 and reported success; the second commit simply wasn't there yet.

Two things found while doing it

The page list had drifted for three months. architecture/mcp-backend.md and models/ped-mutation-constraints.md were added in June 2026 and were still missing from the list in September. Nothing noticed, because a table of contents has no failure mode of its own — it is only wrong in the sense that it is incomplete, and nothing reads it looking for that.

Both rows added, and scripts/check-wiki-pages.sh now asserts both directions: a page absent from the list is invisible to anyone choosing what to sync, and a row naming no file is a page someone believes exists. Controlled by truncating the list and watching it fail:

The wiki page list and docs-wiki/ disagree. Add the row (or the page).
make: *** [check-wiki-pages] Error 1

check-findings was not in CI. The findings README said it was. A PR body said it was. Neither was true — push-test.yml had no step for it. Both it and the new page check now run there.

The README's correction says what happened rather than quietly editing the claim:

It runs in CI as of the change that added this sentence. It did not before, for the two weeks this file claimed it did — which is the same shape as every other finding here, so it is recorded rather than quietly corrected.

Where parallel wiki work stands now

shared file before now
docs-wiki/SYNC_LOG.md conflict per sync merge=union
page list conflict per page own file, merge=union
CLAUDE.md coverage conflict per area removed — computed by make digest-status

Nothing left to serialise. Independent branches off main, merged in any order.

🤖 Generated with Claude Code

ako and others added 2 commits September 1, 2026 15:15
The five bug-pattern PRs were stacked because they shared three files.
Everything else in them was disjoint — no two touched the same page — so
95% of the work was independent and all of it got serialised anyway.
Then the chain merged into itself and 13 pages never reached main.

Two of the three shared files did not need to be conflicts.

SYNC_LOG.md is append-only by its own stated rule ("Append only. Never
edit historical rows."), which is exactly the case merge=union already
covers for findings. Two syncs appending a row each now merge cleanly.

The coverage percentages in CLAUDE.md were a number that goes stale on
its own, and had: the sentence claimed 83% for mdl/executor while that
area had grown from 248 findings to 498. Replaced with a pointer to
`make digest-status`, which computes it.

That leaves the seed table in maintain-wiki.md as the only shared file —
one appended row per page, a trivial conflict that `git merge main`
resolves in seconds. File-wide union is deliberately NOT applied there:
it is prose with a table in it, and union on prose silently keeps both
sides of an edited line. That trade-off is already recorded in
.gitattributes from the fix-issue.md split.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The seed table was the last file forcing wiki PRs to be serialised: one
appended row per page, in the middle of a prose file where merge=union
would be a hazard rather than a help. It is now a table and nothing else
in .claude/skills/maintain-wiki/pages.md, with union in .gitattributes.
The prose stays behind and explains why the split exists.

Also carries 62b2525, which missed #364's merge by minutes: the union
rule for SYNC_LOG.md and the removal of the coverage percentages from
CLAUDE.md.

Two things found while doing it, both the same shape as the findings the
wiki digests.

The page list had DRIFTED. architecture/mcp-backend.md and
models/ped-mutation-constraints.md were added in June 2026 and were
still missing from it in September — three months, unnoticed, because a
table of contents has no failure mode of its own. Both rows added, and
scripts/check-wiki-pages.sh now asserts BOTH directions: a page absent
from the list is invisible to anyone choosing what to sync, and a row
naming no file is a page someone believes exists. Controlled by
truncating the list and watching it fail.

check-findings was NOT in CI. The findings README said it was, and a PR
body said it was, and neither was true. Both it and the new page check
now run in push-test.yml. The README's correction says what happened
rather than quietly editing the claim, because "we said it was wired and
it was not" is exactly the class of finding this corpus exists to hold.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@ako
ako merged commit 6099e62 into main Sep 1, 2026
13 of 14 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