Skip to content

The Bar That Had to Mean It

Arc 244 closed on a doctrine — an asymmetry in a family is a defect, not a quirk — and the doctrine immediately found its next target. src/ had warded Rust homes, each driven to L1+L2=0 under the full guard and stamped. The wat/ standard library — the surface users actually call, the forms every wat program composes on — had no bar at all. src-warded / wat-untrusted is exactly the asymmetry shape 244 outlawed, one level up. Arc 245 opened to raise the corpus to a defined bar and inscribe the proof.

What it discovered is that the bar didn’t exist yet, and the act of building it caught a class of lie present in every single file.

The arc’s first move was a spawned intueri cast on the question what instrument wards a wat file? — and the cast returned a flat REUSE verdict: don’t mint a “wat-ward.” The vigilia — the substrate’s standing spell-battery — is already kind-adaptive; it names cernere for wat/DSL conformance, and the working set for a wat file is intueri, cernere, conferre, plus circumspicere on the perimeter. The stamp stays vigilatum; the discipline is the same one the Rust homes earned. The only genuinely new question was the L2 floor: clippy has no wat analog, so the bar was first written checker-clean + suite-green.

That guess did not survive contact with the first file.

list.wat — the first ward, stone 245.1 (f3bf37df, the first warded wat file) — refined the bar twice before its stamp could be true:

  1. Teeth. Circumspicere, the perimeter lens, pointed at the gap inward lenses can’t see: suite-green is toothless. A file passes the suite while its own forms are never executed by anything — the suite is green around it, not through it. The bar had to demand that the file’s own forms be exercised by a passing test.
  2. Honesty. Grounding the revised bar against green-gate.sh found the deeper lie: there is no green integration suite. It is excluded by design — the arc-170 concurrency leaks keep it out of the gate. suite-green was not a weak bar; it was a claim about a thing that did not exist.

The bar that survived: checker-clean + deftest-green(<name>) — a named, deterministic, currently-green deftest that exercises the file’s own forms, self-verifiable at source. The stamp carries the test’s name, so the claim cannot go false without that specific test going red. Routine gating-against-rot — making the build re-verify every stamp automatically — is deliberately not claimed by the stamp; it is arc 250’s work, named and banked.

That bar is the arc’s central deposit. Every later file proved why it had to exist.

Sixteen stdlib files warded to L1+L2=0, each deftest-green. The shape of what the guard found, file by file:

  • list.wat (245.1) — the bar’s birthplace.
  • core.wat (245.2, 6b6def52) — the most important file in the corpus, taken as a three-front stone: 135 lines of arc-archaeology cut from the prose, the =/ordering/arithmetic deftests minted, and a stale RED graveyard retired.
  • edn.wat (245.3b) — the Tagged/NoTag newtypes. Circumspicere caught that roundtrip.wat was testing the shim, not the newtypes — the guard forced a real in-band tag-drop deftest.
  • Record.wat (245.3c) — the defrecord macros. Conferre caught a documented lie: a “class-safety OUT OF SCOPE” disclaimer on a macro that emits the class-safety guard. The doc said the work wasn’t done; the code had done it.
  • The holon family (245.4) — holon.wat plus eleven leaf encoders, the biggest batch. Conferre fixed holon.wat’s stale 4-argument Hologram/get API examples; circumspicere forced three new deftests — Amplify, Bigram, and Ngram had shipped with no test touching them.

And the honest non-wards, each labeled with its owner instead of lied about: runtime.wat retired outright (a formless vestige — the namespace is Rust-defined); stream.wat deferred to the lazy-seqs arc (the eager thread-per-stage implementation is exactly what that rework replaces — warding the doomed is waste); the seven-file kernel family deferred to arc 170 (the concurrency layer itself: un-deftest-green-able until the leaks close). Typealias-only files earned a doctrine extension: they ward as checker-clean, deftest-green N/A — there is no form to exercise.

One call in the close was wrong, and the correction is part of the record. Stone 245.6 skipped wat-tests/ — framed as “coverage/scaffolding, not the warded surface.” The user struck that framing the day after the close:

that’s like the most important thing to ward - the tests are our demos of how to use wat /well/

The stdlib is used; the tests are imitated — a sloppy or stale test teaches bad wat to every reader who copies it, which makes the test corpus the most pedagogically load-bearing surface in the language. The corrective opened the test-surface ward as owed work (task #181, later cited by arc 249’s inscription as exactly that). The bar was right; the map of what it applied to was one file-class short.

Three patterns came out of sixteen files, and they generalize:

Circumspicere is the load-bearing lens for a DSL corpus. The inward lenses clear comments and forms; the perimeter lens caught the file’s-own-forms-unexercised trap on list, core, edn, Record, and holon — every single warded family had shipped surface no test touched. Without the perimeter walk, five stamps would have lied.

Stale arc-archaeology is wat’s borrow-checker. The dominant finding class across the whole corpus was historical narration that rotted while the code moved: a registry described as “remaining” that was deleted arcs ago, citations pointing at pre-refactor file locations, the out-of-scope disclaimer on completed work, coordinate residue from retired numbering schemes in every holon leaf. Prose embedded in a living corpus decays at the speed of the code around it; reconciliation — ground the claims, strip the residue, move history to the arc record where it can’t lie about the present — is the corpus pattern.

The guard drags adjacent debt into the light. Warding sixteen files cleared a mixed-promotion graveyard from arc 237, struct-form rot from arc 241, a rename arc 242 had missed, a 3/18-red record probe, redefinition conflicts, and roughly five encoder coverage gaps — none of which was the arc’s target, all of which fell because the guard walked past them.

The wat stdlib’s deterministic surface is warded and means it; the concurrency layer waits for its named arcs, labeled rather than lied about. The bar that started as a guess was forced honest by the first file it touched: a stamp that attests only what the build can re-verify, carrying the name of the test that keeps it true. A bar that doesn’t bite is not a bar — and the corpus now has one with teeth.

  • The deftest-green bar: stamps that name their witness. A quality claim on a library file carries the name of the specific, currently-green test that exercises the file’s own forms — so the claim cannot silently go false; it can only go false by turning a named test red. This is a verification-claim design, not a coverage metric.
  • “Suite-green” exposed as a structural lie for corpora. The observation that a file can pass a test suite that never executes its forms — and that the bar must demand exercise through the file, not greenness around it — applies to any standard library warded after the fact.
  • Honest non-wards with named owners. Deferred files carry the arc that owns them and the reason they cannot meet the bar now; one file is retired rather than shimmed. The territory a pass cannot honestly mark is labeled with who will — “we’ll do it later” is replaced by a tracked owner.
  • Prose-rot as the dominant defect class in a living DSL corpus. Across sixteen files, the top finding was not wrong code but wrong narration — stale claims about moved code. The reconciliation pattern (ground claims against the live tree, move history out of the present tense) is reusable anywhere documentation lives inside the code it describes.