Say "ten" in the prose, and keep the numeral for the tile - #94
Conversation
The hub page's own title read "X-Mech Suite: 10 autonomous knowledge factories", while every other page writes the word — index.md has "a fleet of ten", each per-Mech page has "All ten Mechs". The one page whose subject is the fleet was the one page that disagreed about how to name its size (#93). `<!--FLEET_COUNT-->` was substituted as a bare figure into six prose contexts: the description, the H1, the intro sentence, the "## The N Mechs" heading, the fleet-manifest note and the graph's accessible title. `<!--FLEET_CENSUS_COUNT-->` had it too, in "covers 9 of the 10 Mechs". Spelling the token out everywhere would have been wrong, because one use is genuinely numeric: the stat tile sets the count as a big bold figure beside its label, where a word would look odd next to the tiles either side of it. So the count is now offered in both forms — `<!--FLEET_COUNT_WORD-->` for prose, `<!--FLEET_COUNT-->` kept for the tile — rather than spelled out at each call site. The census count needs only the word form, and adding a numeric token nothing uses would trip the assembler's own unused-token guard. `number_word()` covers zero to twelve and falls back to a formatted numeral above that, so an eleventh Mech reads correctly and a fleet that outgrows the table degrades to digits rather than raising. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Substituting the word at the very front of the front-matter description made the page's search snippet open in lower case — "ten ontology-grounded autonomous knowledge factories…" — where every other page on the site starts its description with a capital: "Autonomous knowledge factory for…", "CultureBotAI develops…", "Access KG-Microbe…". With the numeral it had read "10 ontology-grounded…", which a digit carries off; a bare lower-case word does not, and it reads as a typo in results. Rewording to "A fleet of ten ontology-grounded…" fixes it without needing a capitalised variant of the token, and echoes how index.md already introduces the suite. A test now pins it, since the failure is invisible on the page itself: the description only ever shows in a search result or a link preview, so nothing in the rendered page would have revealed the regression. The "## The ten Mechs" heading does change its anchor from `#the-10-mechs` to `#the-ten-mechs`. Nothing in the repo links to it and the deployed page carries the id without linking to it, so only an external bookmark could notice. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Review passTwo dimensions (token plumbing, rendered prose), each finding independently refuted before acceptance. 5 raised, 2 confirmed, both fixed in `9059af2`. Confirmed and fixed
Refuted
Checked myself
Still outstandingOne verify agent did not return before I finished — the one checking the anchor-id finding above. I established that result independently rather than wait on it, and the conclusion stands on the greps quoted. 23 tests pass, |
Addendum — the outstanding verifier returnedMy review comment above noted one verify agent had not reported. It has now, and it refuted the anchor-id finding, independently reaching the same conclusion I did: nothing links to Final tally is unchanged: 5 raised, 2 confirmed, both already fixed in One detail from the verification worth keeping, because it makes the fix better-founded than my commit message claims. I justified the capital by pointing at the other eleven pages. The verifier went further and walked this file's own history: at — the same word, capitalised in the description and lower-case in the heading, in one file. The author had already distinguished the two positions deliberately. Tokenisation at That is an argument for keeping the two positions distinguishable rather than for the particular rewording, and is worth remembering if the description is ever re-tokenised: a |
Closes #93.
The hub page's own title read "X-Mech Suite: 10 autonomous knowledge factories, one shared standard", while every other page writes the word —
index.mdhas "a fleet of ten", each per-Mech page has "All ten Mechs". The one page whose subject is the fleet was the one page that disagreed about how to name its size.Before / after
Why not just spell the token out
One use is genuinely numeric. The stat tile sets the count as a big bold figure beside its label:
A word there would read oddly against the tiles either side of it, which are
1,075,284,45and3,082. So the count is offered in both forms —<!--FLEET_COUNT_WORD-->for prose,<!--FLEET_COUNT-->kept for the tile — rather than spelled out at each call site.The census count needs only the word form. Adding a numeric token nothing uses would trip the assembler's own
Missing source tokenguard, which is why<!--FLEET_CENSUS_COUNT-->is replaced rather than supplemented.number_word()covers zero to twelve and falls back to a formatted numeral above that, so an eleventh Mech reads correctly and a fleet that outgrows the table degrades to digits rather than raising.Checks
22 tests pass (two added: one pinning prose-vs-tile, one on the fallback),
assemble_page.py --checkclean. Swept the generated page for remaining numerals in prose — the only10s left are CSS values, SVG viewBoxes and data payloads.Note for the record: the terminology change in
d4e424dis deployed; a page still showing "knowledge bases" is a cached copy.🤖 Generated with Claude Code