volt: re-render docs/TOOLS.md for the ninth leg -- the drift guard the sweep caught
The gate was RED atb14d73a, not the 9/9 Q126's message claims: `python3 tools/verify.py --repo .` read `9 legs, 8 pass, 1 fault`, naming `selftest-sweep` (rc 1, `sweep: 23 tools, 22 OK, 1 fatal (SELFTEST_FAILED)`), and `python3 tools/tool_map.py --selftest` named the cell: `FAIL HEAD: docs/TOOLS.md is the render of this tree (the drift guard) [rc 1]`, 19/20 cells. Q126 registered verify's ninth leg (`import-resolve`) but never re-rendered the generated map, so the document was stale in exactly three places -- the `import_resolve_check.py` leg cell read `-` where the tree reads `import-resolve`, `verify.py`'s purpose read "eight legs" where the docstring reads "nine legs", and the leg table had no `import-resolve` row. Repair is the tool's own sanctioned render, no hand edit: `python3 tools/tool_map.py --repo . --rev HEAD --write docs/TOOLS.md` -> "wrote docs/TOOLS.md (7290 B, 23 tools, 9 gate legs)", 3 insertions / 2 deletions against the committed blob (diff quoted in the report). Readings after: `--check docs/TOOLS.md` rc 0 at HEAD and rc 0 at WORKTREE; `--selftest` "20 cells, 20 passed, 0 failed" rc 0; `tools/verify.py --repo .` "9 legs, 9 pass, 0 fault" / "gate: OK" rc 0 (selftest-sweep back to "sweep: 23 tools, 23 OK", read-refusal 0 fault, malformed-input 0 fault, pin 0 drift). Carried, not fixed: `--all-files` grades 16 tracked non-test files that bind a module outside the repo (15 sys.path inserts into /root/.hermes/wizard-outputs/{forge,spark}, 1 absolute in-repo path in spark/verify_snippets.py), rc 1; those are probe scripts whose module genuinely lives outside the tree, so they are a policy question, not a rebind. Also measured and not reproduced: Q126's "138 graded files" reads 139 atb14d73ain a clean worktree of that same commit; the 0-fault verdict stands. Report: /root/.hermes/wizard-outputs/volt/2026-10-30-toolsmd-drift.md CHECK: bash /root/.hermes/wizard-outputs/volt/check-toolsmd-drift.sh
This commit is contained in:
1 parent
b14d73a8f4
commit
6b7d750b44
1 file changed
+3
-2
+3
-2
@@ -21,7 +21,7 @@ module docstring, flags from the tool's own `--help`, probe rows from
|
||||
| `doc_census_check.py` | does a tool's own docstring census match the census that tool PRINTS? | `--repo` `--rev` `--tools` `--json` `--no-run` `--fail` `--vocab` `--save-vocab` `--selftest` | 1 / 0 / 1 | - |
|
||||
| `doc_command_check.py` | a command a docstring tells you to run must be a command the tool still accepts. | `--repo` `--rev` `--tools` `--json` `--fail` `--selftest` | 1 / 0 / 1 | `doc-commands` |
|
||||
| `gate_blame.py` | which landing turned a gate leg red? | `--repo` `--leg` `--range` `--ref` `--queue` `--index` `--timeout` `--json` `--quiet` `--selftest` | 1 / 0 / 1 | - |
|
||||
| `import_resolve_check.py` | a committed test file must bind the module it imports to the REPOSITORY, not to a path on the host that wrote it. | `--repo` `--rev` `--all-files` `--import-probe` `--json` `--quiet` `--selftest` | 1 / 0 / 1 | - |
|
||||
| `import_resolve_check.py` | a committed test file must bind the module it imports to the REPOSITORY, not to a path on the host that wrote it. | `--repo` `--rev` `--all-files` `--import-probe` `--json` `--quiet` `--selftest` | 1 / 0 / 1 | `import-resolve` |
|
||||
| `landing_check.py` | is every file at this revision actually served by the forge? | `--repo` `--rev` `--branch` `--base-url` `--path` `--max-bytes` `--timeout` `--json` `--quiet` `--selftest` | 1 / 0 / 1 | - |
|
||||
| `manifest_audit.py` | does an artifact's `files.sha256` still describe the bytes beside it? | `--root` `--baseline` `--strict` `--fail` `--json` `--quiet` `--selftest` | 1 / 0 / 2 | - |
|
||||
| `path_claim_check.py` | does every in-namespace path this archive names exist at this revision? | `--repo` `--rev` `--corpus` `--json` `--only` `--context` `--fail-on-missing` `--baseline` `--selftest` | 1 / 0 / 1 | `path-claims` |
|
||||
@@ -32,7 +32,7 @@ module docstring, flags from the tool's own `--help`, probe rows from
|
||||
| `selftest_sweep.py` | every instrument proves itself, in one command, and the number it advertises is the number it prints. | `--repo` `--tools-dir` `--timeout` `--json` `--baseline` `--no-baseline` `--write-baseline` `--quiet` `--verbose` `--selftest` | 1 / 0 / 1 | `selftest-sweep` |
|
||||
| `served_drift_check.py` | does the host actually serve the tree at this revision? | `--root` `--rev` `--base-url` `--prefix` `--exclude` `--max-bytes` `--timeout` `--json` `--quiet` `--selftest` | 1 / 0 / 1 | - |
|
||||
| `tool_map.py` | the instruments get a map, and the map is generated from the tree. | `--repo` `--rev` `--write` `--check` `--json` `--selftest` | 1 / 0 / 1 | - |
|
||||
| `verify.py` | the HOME the index gate did not have: one command, eight legs, one exit code, and a row per leg so a partial run cannot look like a clean one. | `--repo` `--queue` `--index` `--checkin-day` `--fast` `--timeout` `--json` `--quiet` `--selftest` | 1 / 0 / 1 | - |
|
||||
| `verify.py` | the HOME the index gate did not have: one command, nine legs, one exit code, and a row per leg so a partial run cannot look like a clean one. | `--repo` `--queue` `--index` `--checkin-day` `--fast` `--timeout` `--json` `--quiet` `--selftest` | 1 / 0 / 1 | - |
|
||||
| `write_probe.py` | Measure the WRITE end of every tool in tools/: `--json PATH` at a target the host cannot write. | `--repo` `--only` `--timeout` `--json` `--selftest` `--verbose` | 1 / 0 / 1 | `write-axis` |
|
||||
|
||||
## The gate
|
||||
@@ -51,6 +51,7 @@ dropped by `--fast`.
|
||||
| `doc-commands` | `doc_command_check.py` | no | every command a tool's docstring tells a reader to run: its flags must be options that tool's --help accepts |
|
||||
| `selftest-sweep` | `selftest_sweep.py` | yes | every tool's --selftest and both read-refusal axes |
|
||||
| `write-axis` | `write_probe.py` | no | a --json target this host cannot write: rc 2, one line naming it, never a traceback -- and the same rule for every caller-path write flag (--write, --save-vocab) |
|
||||
| `import-resolve` | `import_resolve_check.py` | no | every committed test file binds the module it imports to the repo, not to a host path (static sys.path scan plus --import-probe) |
|
||||
|
||||
A tool that appears in no leg is still graded by `selftest-sweep`, which runs
|
||||
every tracked tool's `--selftest` and both read-refusal axes -- so the
|
||||
|
||||
Reference in new issue
Block a user