The contract

The checks, and what they cannot see

Two scripts keep the contract honest, and both exist because something had already drifted. What is worth writing down is not that they pass — it is the part of the problem they cannot see.

What they do

The alignment check compares version references across the framework, its README, the companion dashboard and this site. It exists because three writers and readers rows went stale the same day they were written.

The components check verifies that every path a component claims to write is declared, and that no dependency forms a cycle. It exists because the component graph, the first time it was written out, found two vault files that nothing had declared at all.

A SKIP is not a pass

The alignment check prints [OK], [DRIFT] and [SKIP], and its own header states that a [SKIP] means unverified, not clean. That distinction has to be written down because the output reads like success either way, and a line that scrolls past is a line nobody re-reads.

What they cannot see, stated plainly

On 24 September 2026 the alignment check reported 4 aligned, 0 drifted against this site — a site which at that moment had three skills declared in the contract and present on no page of it, in either language, and a what's-new panel thirty-nine minor releases stale.

Nothing was broken in the check. It compares version strings, and this site's version reference is parameterised — resolved from the contract at render time. A parameterised value cannot drift, so the check reports it clean, correctly, forever. It was never measuring content.

That is the useful shape of the failure, and it recurs. A check reports on what it can compare, and what it can compare is not always what you meant. Four times during this site's rebuild a check went green for the wrong reason: substring matching that counted an ordinary word as a component, duplicate titles compared across languages where a shared title is correct, zero images counted as a pass, and a component treated as documented because its name appeared in a list on an index page.

Each was found by reading the number and disbelieving it. None would have been found by running the check again.

So the site brings its own

This manual is built behind a gate of seventeen local checks that compare the rendered output against the contract: every declared component has a page, every invocable skill is rendered, no count contradicts the contract, every page pairs with its counterpart, every redirect target resolves. The build fails rather than ships.

It is not a better check. It is a check of a different thing, standing next to the first — which is the only honest way to cover what a version comparison structurally cannot.

From ecosystem.yaml, contract 41 · core-skills 1.89.4 · read at build 2026-10-08