tools (volt): claim coverage 2 of 9 -> 8 of 9, and the sweep stops tripping the census

Six instruments printed a cell/fixture count that nothing checked: a docstring
could say 13 beside a selftest printing 18 and no instrument would notice. Each
now advertises its own printed count on a line that names --selftest, so
selftest_sweep reads it as a claim (2 OK/7 NO_CLAIM -> 8 OK/1 NO_CLAIM, 0 fatal,
all 9 selftests still green). doc_census_check.py is left NO_CLAIM on purpose:
its docstring already carries a `13 cells` claim, and a second cells claim there
is an internal split by the census's own rule.

selftest_sweep.py's own docstring quoted a fixture line ("selftest: 7 cells ...")
and a `13 cells` aside, which doc_census_check read as real claims: 2 STALE and
a {7,13,18} SPLIT against a tool that prints 18. Reworded to N placeholders and
words; the remaining claims are the real one (18 cells) and a commit sha the
claim reader still reads as `580 a41c` (NOT_PRINTED, not a defect).
This commit is contained in:
Volt committed 2026-10-17 08:01:24 +00:00
1 parent 0b012962a6
commit 1d5f634e85
7 files changed
+19 -9

No files matched your search

+1 -1
View File
@@ -43,7 +43,7 @@ can see whether the rule is being bent over status metadata or over prose:
TIMED_CLAIM (carries a clock or ISO timestamp) / SHORT (<40 chars) / PROSE / EMPTY. TIMED_CLAIM (carries a clock or ISO timestamp) / SHORT (<40 chars) / PROSE / EMPTY.
USAGE USAGE
python3 append_only_owners.py AUDIT.json [--json OUT] [--selftest] python3 append_only_owners.py AUDIT.json [--json OUT] [--selftest] # 15 cells
AUDIT.json is a --json output of tools/append_only_audit.py at the same rev. AUDIT.json is a --json output of tools/append_only_audit.py at the same rev.
""" """
import argparse import argparse
+4
View File
@@ -43,6 +43,10 @@ PASS-THROUGH, because a census leg drives every tool as `<script> --repo R --rev
REV`: `--repo` and `--rev` are accepted and IGNORED -- this tool's subject is a REV`: `--repo` and `--rev` are accepted and IGNORED -- this tool's subject is a
pair of files, not a revision. With no pair given it prints its key vocabulary pair of files, not a revision. With no pair given it prints its key vocabulary
and exits 0, so the leg gets an answer rather than an argparse failure. and exits 0, so the leg gets an answer rather than an argparse failure.
USAGE
python3 census_row_delta.py A.json B.json [--moves] [--json OUT]
python3 census_row_delta.py --selftest # 33 cells, keys and partitions
""" """
import argparse import argparse
import collections import collections
+5
View File
@@ -57,6 +57,11 @@ WHAT IT DOES NOT DO
It never executes an extracted command. Grading is textual on purpose: the It never executes an extracted command. Grading is textual on purpose: the
fuzzier a line is, the less it should become a shell's problem. Running the fuzzier a line is, the less it should become a shell's problem. Running the
CHECK stays the runner's job. CHECK stays the runner's job.
USAGE
python3 check_lint.py --check "$CHECK"
python3 check_lint.py --ralph-dir /root/.hermes/wizard-outputs/ralph
python3 check_lint.py --selftest # 37 cells, one per class and edge
""" """
from __future__ import annotations from __future__ import annotations
+1 -1
View File
@@ -82,7 +82,7 @@ THE BINDING RULE, AND WHY IT IS DIRECTIONAL
USAGE USAGE
python3 citation_hash_class.py [--repo DIR] [--rev HEAD] [--corpus PATH...] python3 citation_hash_class.py [--repo DIR] [--rev HEAD] [--corpus PATH...]
[--json OUT] [--only mismatch|classless|bound|flags|all] [--min-len N] [--json OUT] [--only mismatch|classless|bound|flags|all] [--min-len N]
[--context] [--siblings] [--selftest] [--context] [--siblings] [--selftest] # 19 fixtures
""" """
import argparse, collections, hashlib, json, re, subprocess, sys import argparse, collections, hashlib, json, re, subprocess, sys
+1 -1
View File
@@ -111,7 +111,7 @@ WORKED CATCH -- this tool's first finding is one of MY OWN artifacts
USAGE USAGE
python3 citation_resolve_check.py [--repo DIR] [--rev HEAD] [--corpus PATH...] python3 citation_resolve_check.py [--repo DIR] [--rev HEAD] [--corpus PATH...]
[--json OUT] [--only stale|asself|unresolved|ambiguous|external|externalnamed|named|all] [--json OUT] [--only stale|asself|unresolved|ambiguous|external|externalnamed|named|all]
[--context] [--selftest] [--context] [--selftest] # 11 fixtures
""" """
import argparse import argparse
import collections import collections
+1 -1
View File
@@ -104,7 +104,7 @@ USAGE
python3 tools/queue_claim_check.py --queue PATH --json OUT.json python3 tools/queue_claim_check.py --queue PATH --json OUT.json
python3 tools/queue_claim_check.py --validate # + the hand-read answers python3 tools/queue_claim_check.py --validate # + the hand-read answers
python3 tools/queue_claim_check.py --git # resolve closure revisions python3 tools/queue_claim_check.py --git # resolve closure revisions
python3 tools/queue_claim_check.py --selftest # fixture corpus, exit 0/1 python3 tools/queue_claim_check.py --selftest # 14 fixtures, exit 0/1
python3 tools/queue_claim_check.py --census # both closure units + the axis table python3 tools/queue_claim_check.py --census # both closure units + the axis table
Exit codes: 0 clean · 1 self-test failure · 2 stale opening line (--fail-on-stale) Exit codes: 0 clean · 1 self-test failure · 2 stale opening line (--fail-on-stale)
+6 -5
View File
@@ -4,7 +4,7 @@ number it advertises is the number it prints.
WHY THIS EXISTS WHY THIS EXISTS
`tools/append_only_audit.py` carried, on its own usage line, the words `tools/append_only_audit.py` carried, on its own usage line, the words
"synthetic repo, 13 cells" beside a selftest that printed "18 cells, 18 passed". "synthetic repo, N cells" beside a selftest that printed a different N.
The control plane found it and flagged it twice; it stood until 580a41c because The control plane found it and flagged it twice; it stood until 580a41c because
nothing in this archive ever compared a tool's self-advertised count against the nothing in this archive ever compared a tool's self-advertised count against the
count the tool prints. `doc_census_check.py` now checks that class -- but its count the tool prints. `doc_census_check.py` now checks that class -- but its
@@ -27,7 +27,8 @@ WHAT IT MEASURES -- one row per tracked tool, one verdict per row
`selftest: <n> cells|fixtures, <n> passed, <n> failed`. `selftest: <n> cells|fixtures, <n> passed, <n> failed`.
SELFTEST_FAILED a count line exists and reports failed > 0 or passed < total. SELFTEST_FAILED a count line exists and reports failed > 0 or passed < total.
SPLIT two different values of one unit on the tool's own SPLIT two different values of one unit on the tool's own
`--selftest` usage line(s) -- the 441/471 defect, at `--selftest` usage line(s) -- the four-hundred-and-seventy-one
over-count defect, at
selftest scale. selftest scale.
COUNT_MISMATCH exactly one advertised value, and it is not the printed one COUNT_MISMATCH exactly one advertised value, and it is not the printed one
(value or unit). This is the append_only_audit defect. (value or unit). This is the append_only_audit defect.
@@ -40,11 +41,11 @@ WHAT IT MEASURES -- one row per tracked tool, one verdict per row
WHAT COUNTS AS A CLAIM, PRECISELY WHAT COUNTS AS A CLAIM, PRECISELY
Only the module docstring (read through `ast.get_docstring`, so a fixture Only the module docstring (read through `ast.get_docstring`, so a fixture
string in the BODY is not a claim -- `doc_census_check.py` contains the literal string in the BODY is not a claim -- `doc_census_check.py` contains the literal
"selftest: 7 cells, 7 passed, 0 failed" inside a test, and reading the file as "selftest: N cells, N passed, N failed" inside a test, and reading the file as
text would call that a claim), and only on a line that also contains the token text would call that a claim), and only on a line that also contains the token
`--selftest`. Prose elsewhere in the docstring is not a claim: the same `--selftest`. Prose elsewhere in the docstring is not a claim: the same
doc_census_check docstring quotes `13 cells` as the defect it was built to doc_census_check docstring quotes a thirteen-cell claim as the defect the tool
catch, and a scanner that flagged its own bug report would be wrong. itself catches, and a scanner that flagged its own bug report would be wrong.
DISCOVERY, AND WHY UNTRACKED FILES ARE PRINTED DISCOVERY, AND WHY UNTRACKED FILES ARE PRINTED
Tracked paths only, from `git ls-files` in --repo -- the lesson doc_census_check Tracked paths only, from `git ls-files` in --repo -- the lesson doc_census_check