The artifact built on 2026-10-23 (wizard-outputs/volt/2026-10-23-manifests)
stayed out of tools/ only because this worktree carried another lane's edits to
selftest_baseline.tsv. tools/ is clean at HEAD, so it graduates.
- tools/manifest_audit.py: byte-identical logic to the artifact (sha256
7e495ada...), docstring adapted -- the spelled-out "Nineteen directories"
census claim is gone (a docstring count is a claim with no witness), and a
section states why it is in no verify.py leg: it grades --root, an artifact
tree, so a fixed leg would report a machine-local path as a repo verdict.
- selftest_sweep.py: 3 probe rows. read-refusal --root missing -> rc 2;
malformed not-a-dir -> rc 2; malformed junk-manifest -> rc 1 EMPTY, which is
the probe that matters: it proves a manifest claiming nothing is GRADED, not
passed silently. New {junkmanifest} fixture (a root whose files.sha256 parses
as no entry) + its legend line.
- selftest_baseline.tsv: one added row, manifest_audit.py 17 cells.
- docs/TOOLS.md: re-rendered (21 -> 22 tools; probes 1 / 0 / 2).
Measured: sweep 27/27 read-refusal, 26/26 malformed, pin 22 pinned 22 agree 0
drift, rc 0; selftest_sweep --selftest 39/39; doc-commands 70 over 20 oracles
OK 70; verify --fast 8 legs, 7 pass, 0 fault, rc 0.
1.2 KiB
1.2 KiB
| 1 | # selftest_baseline.tsv -- the cell count each tool's selftest prints, pinned. | ||
|---|---|---|---|
| 2 | # Written by: python3 tools/selftest_sweep.py --repo . --write-baseline tools/selftest_baseline.tsv | ||
| 3 | # | ||
| 4 | # WHY THIS FILE EXISTS: the count a tool advertises lives in its own docstring, | ||
| 5 | # so a commit that deletes fixtures and decrements that number agrees with | ||
| 6 | # itself and every leg stays green. This ledger is the outside witness. | ||
| 7 | # `selftest_sweep.py` reads it on every run: a printed count that differs is | ||
| 8 | # PIN_DRIFT and fatal; a tool with no row is PIN_UNPINNED and fatal; a row | ||
| 9 | # whose tool is gone is PIN_ORPHAN and fatal. Re-pin on purpose, in the diff. | ||
| 10 | # | ||
| 11 | # tool<TAB>count<TAB>unit | ||
| 12 | append_only_audit.py | 18 | cells |
| 13 | append_only_owners.py | 15 | cells |
| 14 | census_row_delta.py | 37 | cells |
| 15 | check_lint.py | 37 | cells |
| 16 | checkin_check.py | 36 | cells |
| 17 | citation_hash_class.py | 19 | fixtures |
| 18 | citation_resolve_check.py | 14 | fixtures |
| 19 | doc_census_check.py | 104 | cells |
| 20 | doc_command_check.py | 18 | cells |
| 21 | gate_blame.py | 21 | cells |
| 22 | landing_check.py | 26 | cells |
| 23 | manifest_audit.py | 17 | cells |
| 24 | path_claim_check.py | 31 | cells |
| 25 | queue_append_audit.py | 25 | cells |
| 26 | queue_claim_check.py | 24 | fixtures |
| 27 | queue_index.py | 58 | cells |
| 28 | reply_check.py | 49 | cells |
| 29 | selftest_sweep.py | 39 | cells |
| 30 | served_drift_check.py | 25 | cells |
| 31 | tool_map.py | 20 | cells |
| 32 | verify.py | 59 | cells |
| 33 | write_probe.py | 15 | cells |