Skip to content

docs/building.md: the build loop a parity study proved out - #73

Merged
grunion-ai merged 1 commit into
mainfrom
docs-building-checklist
Sep 13, 2026
Merged

docs/building.md: the build loop a parity study proved out#73
grunion-ai merged 1 commit into
mainfrom
docs-building-checklist

Conversation

@grunion-ai

Copy link
Copy Markdown
Owner

What

A new reference page, docs/building.md, stating the engine's recommended build loop, and a one-sentence link to it from SKILL.md's Step 5.

The loop, in order: write MANIFEST.md before the model (every must-include and every brief number gets a slide and a shape; the brief's slide count is the deck's) → build → validate --strictcreateverify --strictthe mandatory second pass: tick the manifest against the PNGs (a line with no PNG is a missing item), then read every PNG for shape / facts / chrome → fix, rebuild, verify again.

The concrete rules the page keeps: a process gets arrows, a series gets a chart row, a before/after gets a delta rather than two sentences, options get one row per option; every number traced to the brief and every derivation computed; create's spell flags go into spell.ignore; no reading slide with an empty lower 40%; no orphaned last word; the cover, footer and supertitle do not say one thing three times.

Why

validate and verify measure geometry. Neither has read the brief, so a deck passes both and still drops a must-include, puts a five-year series in a bullet list, or prints a number the brief never gave.

A parity study measured that gap: 30 decks from five briefs by seven setups, each judged blind against a hand-built reference deck for the same brief.

setup mean parity worst deck
SKILL.md alone 0.878
+ review checklist read against the verify PNGs 0.952 0.691
+ coverage manifest written before the model 0.994 0.944

The manifest variant beat the reference on three briefs of five, at the same 14-minute mean wall time as the checklist alone. Two runs show where it pays: one caught two pricing captions asserting billing terms the brief never gave, another caught a missing arithmetic tie between a 62% → 35% share shift and the 17% blended cost before a line of JSON was written.

How verified

node --test test/**/*.test.mjs
# tests 307
# pass 307
# fail 0
# skipped 0

Playwright was installed, so the live browser tests ran rather than no-opping.

test/skill.test.mjs is extended two ways: building.md joins the seven docs checked for existence, a (docs/building.md) link in SKILL.md and >80 words of real text; and five regexes hold the rules the page must keep (MANIFEST.md, must-include, second pass, lower 40%, spell.ignore).

Word budget

SKILL.md is gated at 7,000 words and sat at 6,995. It is now 6,999: the added sentence is The hand-off needs a second pass: [docs/building.md](docs/building.md). and the four words it needed came out of the same paragraph (Fix the model, not the output. Re-run until VERIFY PASS;Fix the model; re-run to VERIFY PASS,). No other author's rule was touched.

README and llms.txt both name the eighth doc in the lists the gate reads.

🤖 Generated with Claude Code

SKILL.md's Step 5 ends at the first VERIFY PASS, and both gates measure
geometry only — neither has read the brief. A parity study (30 decks, five
briefs, seven setups, judged blind against a hand-built reference per brief)
measured the gap: SKILL.md alone 0.878 of the reference; a review checklist
read against the verify PNGs 0.952 mean but 0.691 on its worst deck; the same
checklist behind a coverage manifest written before the model 0.994 mean,
0.944 worst, beating the reference on three briefs of five at the same
14-minute mean wall time.

docs/building.md is that loop in the engine's own voice: manifest, build,
validate --strict, create, verify --strict, then the mandatory second pass —
tick the manifest against the PNGs, then shape / facts / chrome — fix,
rebuild, verify again. It carries the concrete rules the study found (arrows
on a process, a chart row on a series, a delta on a before/after, one row per
option, every number traced, spell flags into spell.ignore, no empty lower
40%, no orphaned last word, no phrase said three times in the chrome).

SKILL.md links it in one sentence at Step 5 and stays inside its 7,000-word
budget (6,995 -> 6,999, one word trimmed from that same paragraph). README
and llms.txt name the eighth doc; test/skill.test.mjs checks it like the
other seven plus five rules the page must keep.

Verified: node --test test/**/*.test.mjs -> 307 pass, 0 fail, 0 skipped
(Playwright present, live tests ran).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@grunion-ai
grunion-ai merged commit 250aab9 into main Sep 13, 2026
2 checks passed
@grunion-ai
grunion-ai deleted the docs-building-checklist branch September 13, 2026 14:56
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