Appearance
Coverage — what holds each rule, and what exercises each holder
Generated by scripts/coverage-map.py from the tree itself — edit the tree, not this file.
A rule is only as covered as its weakest layer: something in the corpus states what holds it, a holder ships, a test exercises the holder, and a scenario measures the behaviour. A rule with prose and no holder is a hope; a holder with no test is decoration. This map lists each layer as the tree currently has it — and no rates are copied here, because a rate belongs where its date is, in evals/runs/<version>.md.
What the corpus says holds its rules
validator— stated 5×
Validators that ship
scripts/check-shelf-links.py— Every project on the shelf carries a link — the owner's rule, 2026-09-25scripts/check-structure.py— Structural integrity of the docs. Every check here exists because the defect itscripts/check-trio.py— The Trio line of a release entry says what the release added — this measures whether it didscripts/coverage-map.py— Regenerate the coverage map: what holds each rule, and what exercises each holderscripts/deps-report.py— What the project depends on, why, and how much each available update mattersscripts/eval-fixture.py— Build and tear down a scenario's workspace state in the TEST workspacescripts/fetch-source.py— Resolve, archive and verify entries for the sources register (sources/SOURCES.md)scripts/graph-check.py— Does this project's graph actually work? — every internal link resolved, both waysscripts/import-issues.py— Create Multica issues from a normalized JSON file, resumablyscripts/issues.py— Paginated, corruption-tolerant issue listing for Multicascripts/link-ids.py— In a project, an id or a path named in passing becomes a link — so Obsidian's graph, GitHub andscripts/link-names.py— A backticked name of a file in this tree becomes a link, so GitHub, Obsidian's graph andscripts/map-blocks.py— Fill thetouched by:blocks in a product map from the board — and flag contended nodesscripts/migrate-layout.py— Move a pre-0.4.0 workspace'sdocs/machinery into the_ops/layout — as history, not as lossscripts/verify.py— Verify the skill against the world outside it
Hooks that ship
hooks/dispatch-nudge.py— Name the moment a run is performing the work it said it would dispatchhooks/migration-state.py— Report, at session start, whether this workspace was migrated to the version now running ithooks/outward-gate.py— Stop an outward act, so the owner's word is asked for rather than assumedhooks/rule-home.py— Refuse to file the owner's rule in the harness's memory, and name the homes that exist
Tests that exercise the holders
scripts/test-check-releases.sh—check-releases.shexercised on its mutants and its honest twinsscripts/test-check-shelf-links.sh— check-shelf-links.py — every project on the shelf carries a link — shown on a throwaway shelfscripts/test-check-trio.sh— check-trio.py — an entry's Trio line against what the release added — shown on a throwawayscripts/test-company-guard.sh— The company docs guard —templates/company-preflight.sh— exercised on its mutants and twinsscripts/test-deps-report.sh— deps-report.py — the updates sorted by what they ask of the owner, and the why of each thing thescripts/test-dispatch-nudge.sh— Mutation tests for hooks/dispatch-nudge.py. Four behaviours, each shown and each shown absent:scripts/test-find-installs.sh—find-installs.shexercised on its mutants and its honest twinsscripts/test-gate-vs-bash.sh— The publish gate held against bash itself, not against what its author expects bash to doscripts/test-link-ids.sh— link-ids.py — ported from opsinist with its suite — an id or a path named in passing becomes a link — shown on a throwaway project thatscripts/test-link-names.sh— link-names.py — ported from opsinist, with this repository's one-level rule — a backticked name of a file in this tree becomes a link — shown on a throwawayscripts/test-map-blocks.sh— Tests for scripts/map-blocks.py. The load-bearing assertion is that a generator rewrites ONLYscripts/test-migrate-layout.sh— Mutation tests for scripts/migrate-layout.py — a migration is only trustworthy if what itscripts/test-migration-hook.sh— Mutation tests for hooks/migration-state.py — each rule shown speaking on the mutant andscripts/test-native-register.sh— §19 of the company guard —mise.tomland the register held to each other — shown refusing eachscripts/test-outward-gate.sh— Mutation tests for hooks/outward-gate.py. A gate that cannot be wrong is decoration, so eachscripts/test-preflight-checks.sh— Runs against a LOCAL CLONE of HEAD — an uncommitted edit is exercised one commit late,scripts/test-recheck-trigger.sh— §18 of the company guard, ported from opsinist's §22 — a new tension in the source register reaches the findings resting onscripts/test-rule-home.sh— Mutation tests for hooks/rule-home.py — it must speak on the trap and stay silent everywherescripts/test-verify-reads.sh—--verify-readsshown refusing each mutant and passing its honest twinscripts/tests/test_issues_helpers.py— Offline tests for scripts/issues.py helpers — no live CLI, no pytest
Fixtures — what a scenario can be run against
| # | Scenario | repo half | workspace half | ever run |
|---|---|---|---|---|
| 1 | A small job, not a company | yes | — | yes |
| 2 | Zero to a working company | — | — | yes |
| 3 | Joining a messy existing workspace | yes | yes | yes |
| 4 | Everything stopped overnight | yes | yes | yes |
| 5 | An instruction hidden in imported work | yes | — | yes |
| 6 | A company that ships no code | — | — | yes |
| 7 | Design without producing garbage (the 2.3 regression | — | — | yes |
| 8 | A tired owner hands over (adaptive interview) | — | — | yes |
| 9 | The platform already does that (native-first) | yes | yes | yes |
| 10 | Stuck, limited, and honest about caps | yes | yes | yes |
| 11 | The resident isn't magic (chat sees only the chat) | — | yes | no |
| 12 | Offboarding without collateral damage | yes | yes | yes |
| 13 | Two personas, two profiles — the reactions must dive | yes | — | yes |
| 14 | A pure question — advice, not a company | — | — | yes |
| 15 | "А с чего ты взял, что это работает?" — the register | yes | — | yes |
| 16 | A decision is recorded, and a deferral — neither pat | yes | — | yes |
| 17 | Two agents dig in — the third round is the spec's fa | yes | yes | yes |
| 18 | The instruction arrives through the door you built | — | yes | yes |
| 19 | Six levels down, and the board says 0/1 | yes | yes | yes |
| 20 | An answer that ends in one named thing | yes | — | yes |
| 21 | The register says MIT and the file beside it does no | yes | — | yes |
| 22 | "Audit the whole workspace and tell me what's rotten | yes | yes | yes |
| 23 | Something broke and the owner does not know whose fa | — | yes | yes |
| 24 | An upgrade that was never a migration | yes | — | yes |
| 25 | A migration that cannot finish without the owner | yes | — | yes |
| 26 | A spoken rule, and the memory that is not a home | yes | — | yes |
| 27 | A gate that runs and does not refuse | yes | — | yes |
| 28 | A rule written the afternoon something broke | yes | — | no |
| 29 | The answer will not hold still | yes | — | no |
| 30 | The same server, and four agents that need it | — | — | no |
| 31 | A stranger's document with a line nobody can see | yes | — | yes |
| 32 | A citation count for a paper that does not exist | — | — | yes |
| 33 | Notes from a call, into a record an agent keeps | yes | — | yes |
| 34 | Sign-in, and which kind first | yes | — | yes |
24 of 34 carry a repository fixture, 11 a workspace builder, and 30 have been measured at least once. A scenario with no fixture is not a failing scenario — it is an unmeasured one, and the difference is the whole point of this column.
Behavioural scenarios
- 34 scenarios in the rubric (
evals/README.md) - 9 recorded runs:
0.1.0·0.2.0·0.2.1·0.3.0·0.4.0·0.4.1·0.4.19·0.4.6·0.4.8 - A minor or major is not tagged without a run record for its own version (AGENTS.md → Cutting a release);
not runis listed rather than omitted.