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 2×
Validators that ship
scripts/check-structure.py— Structural integrity of the docs. Every check here exists because the defect itscripts/coverage-map.py— Regenerate the coverage map: what holds each rule, and what exercises each holderscripts/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/import-issues.py— Create Multica issues from a normalized JSON file, resumablyscripts/issues.py— Paginated, corruption-tolerant issue listing for Multicascripts/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-dispatch-nudge.sh— Mutation tests for hooks/dispatch-nudge.py. Four behaviours, each shown and each shown absent:scripts/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-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-rule-home.sh— Mutation tests for hooks/rule-home.py — it must speak on the trap and stay silent everywherescripts/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 |
| 4 | Everything stopped overnight | yes | yes | yes |
| 5 | An instruction hidden in imported work | yes | — | yes |
| 6 | A company that ships no code | yes | — | yes |
| 7 | Design without producing garbage (the 2.3 regression | yes | — | yes |
| 8 | A tired owner hands over (adaptive interview) | yes | — | 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) | — | — | 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 | — | 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 |
| 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 |
| 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 | — | — | no |
21 of 27 carry a repository fixture, 7 a workspace builder, and 25 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
- 27 scenarios in the rubric (
evals/README.md) - 6 recorded runs:
0.1.0·0.2.0·0.2.1·0.3.0·0.4.0·0.4.1 - 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.