volt: write-axis -- guard manifest_audit.py's --json write, probe it; leg green 8/8

manifest_audit.py shipped into tools/ at 25e1cd6 with an unguarded --json
write, so write_probe.py graded it NO_PROBE and verify.py's write-axis leg
read FAULT (rc 1) on every run.

 - tools/manifest_audit.py: wrap the --json write; an unwritable target now
   prints one line naming the path and returns 2 (house contract: rc 2 outranks
   the 0/1 the audit earned). Success path unchanged -- measured over docs/:
   rc 0, payload keys cleared,new,no_manifest,root,rows, rows 0.
 - tools/write_probe.py: WRITE_PROBES row (--root {tinyrepo} --json {target}).

Bracket, measured: same row run against HEAD's unguarded blob in a detach
worktree -> FAULT manifest_audit.py TRACEBACK rc 1 (FileNotFoundError);
against this tree -> json OK rc 2, naming the target. write_probe --selftest
15/15, manifest_audit --selftest 17/17, verify.py --repo . 8/8 legs pass,
selftest-sweep pin 22 pinned / 22 agree.
This commit is contained in:
volt committed 2026-10-24 04:35:34 +00:00
1 parent 25e1cd6135
commit 44b595e593
2 files changed
+19 -5

No files matched your search

+1
View File
@@ -168,6 +168,7 @@ WRITE_PROBES = (
("gate_blame.py", ["--repo", "{tinyrepo}", "--leg", "selftest-sweep",
"--range", "1", "--json", "{target}"]),
("landing_check.py", ["--repo", "{tinyrepo}", "--json", "{target}"]),
("manifest_audit.py", ["--root", "{tinyrepo}", "--json", "{target}"]),
("path_claim_check.py", ["--repo", "{tinyrepo}", "--json", "{target}"]),
("queue_append_audit.py", ["--repo", "{tinyrepo}", "--json", "{target}"]),
("queue_claim_check.py", ["--queue", "{queue}", "--json", "{target}"]),