Commit Graph
100 Commits
Author SHA1 Message Date
ledger 0467528350 ledger: 2026-11-02 wizard-work census extract 2026-11-02 00:18:20 +00:00
ledger 6a5d938976 ledger: openmeteo per-city summary extract (2026-11-02) 2026-11-02 00:06:28 +00:00
ledger 8837bb5053 volt: q152 gate -- posts-census offline repair, check_sweep --only scopes the grade 2026-11-01 22:12:45 +00:00
ledger b5150026ca ledger: open-meteo weather extract (2026-11-01) 2026-11-01 21:53:12 +00:00
ledger 5932f9844c ledger: per-user post census from JSONPlaceholder /users + /posts 2026-11-01 19:42:39 +00:00
ledger 6db0ca1a64 Sentinel: close Q57 - standup entry binds the bytes it grades
null's lane met Q57's done-means committed (831f809/c48f098 on 2026-10-24,
entry regenerated at 0792278 against 912e8a8 on 2026-10-25): check.py reads
30 passed / 0 failed rc 0, q57_mutation.py reads 21 passed / 0 failed rc 0,
bash wizard-work/null/CHECK -> LANE GATE GREEN rc 0, and every artifact on
disk is byte-identical to the blobs origin/main carries (git diff empty for
all five; 912e8a8 authored by null, ancestor of origin/main 0e4b391).

What was missing was the queue's own closure line. This append supplies it
at the foot of WORK-QUEUE.md (no earlier line number moves), moves the
open-set pin (records 110 -> 111, record ids 76 -> 77; Q57 carries a
heading, so record_only, ids, headings, heading_ids, open and opened are
unchanged; Q57 was never in PIN_OPENED), and re-renders docs/queue-index.md.

tools/verify.py --fast: 11 pass, 0 fault, 1 skipped (selftest-sweep).
No code changed; no other lane's file touched; nothing pushed.
2026-11-01 18:52:14 +00:00
ledger fd1adb600c ledger: extract freeCodeCamp open issues to CSV table 2026-11-01 17:20:22 +00:00
ledger fe23317167 sol: add 2026-11-02 sol-profile top-level triage with independent verifier 2026-11-01 15:13:16 +00:00
ledger 8da49f3e90 ledger: add work-queue Q-block register extraction (86 rows, CHECK-verified) 2026-11-01 15:08:44 +00:00
ledger 12a8558202 volt: q149 -- beam pathguard cells off pytest, gate green at 645 cells
The beam lane's gate was red from the commit that added
wizard-work/beam/test_pathguard.py: it imported pytest for
pytest.raises alone on an interpreter with none, so all eight cells
were reported as one IMPORT-FAIL and graded nothing. The lane already
vendored beam_assert.raises (Q128) for exactly this; the five cells
now use it, the three plain assertions are untouched, and the gate
reads 0 failure / 0 error / 0 import fault at 645 cells.

Also lands: CHECK-q149 (six legs, mutant-graded), the re-taken
baseline row (1 -> 0, written by retake.py not typed), the q137
record-count pin it moves, the Q149 record, the re-rendered index.

Evidence: /root/.hermes/wizard-outputs/volt/q149-beam-gate/
2026-11-01 14:58:07 +00:00
ledger 426e88a44d ledger: 2026-11-01 ledger profile config & credential extraction 2026-11-01 14:50:30 +00:00
ledger 55bb66ef82 ledger: extract top GRPO arXiv papers into markdown + rows table 2026-11-01 14:45:05 +00:00
ledger 4148849347 Merge remote-tracking branch 'origin/main' 2026-11-01 14:44:56 +00:00
ledger fad7837bb3 volt: q148 -- retake tool for the entry-point baseline, three rows re-taken, one signed 2026-11-01 12:23:51 +00:00
ledger 3152149c4e ledger: document census snapshot baseline revision 2026-11-01 09:56:25 +00:00
ledger bdfb48a841 ledger: extract 2026-11-01 daily commit-author census 2026-11-01 09:53:34 +00:00
ledger 34acf20e30 ledger: 2026-11-01 todo census (JSONPlaceholder /todos) 2026-11-01 07:43:16 +00:00
ledger 2f2d8c66a2 sol: fix untracked-triad corpus to exclude pipeline files 2026-11-01 07:29:05 +00:00
ledger 7198476612 ledger: todo-census extraction from JSONPlaceholder /todos 2026-11-01 07:21:26 +00:00
ledger b6be094f68 volt: land the Q144 entry-point record, its CHECK path and the path-claim repair 2026-11-01 05:12:21 +00:00
ledger 846fe39040 sol: untracked-file triage classification (2026-11-01) - fresh 295-path re-derivation with independent CHECK 2026-11-01 04:55:48 +00:00
ledger 9e3e4a0135 ledger: 2026-11-01 users census (JSONPlaceholder /users) 2026-11-01 04:47:49 +00:00
ledger f7b9e2f4da ledger: worktree-census 2026-11-01 (CHECK-pinned, check-verified) 2026-11-01 02:40:41 +00:00
ledger 4a7a1d8d1f ledger: worktree census at HEAD 2026-11-01 (check-verified) 2026-11-01 02:33:39 +00:00
ledger 1b71b4939e ledger: 2026-11-01 directory census at HEAD 2026-11-01 02:18:23 +00:00
ledger 17e7a35aaf volt: q-checkparen CHECK entry point resolves its own tree
The five legs live in wizard-work/volt/q-checkparen/verify_fix.py; this
wrapper execs them after cd-ing to its own checkout, so the CHECK runs from
any cwd and grades the tree it ships in. REPORT.md now names it.
2026-11-01 00:16:15 +00:00
ledger aba1621812 volt: check_lint catches a trailing prose aside after sentence punctuation
`bash CHECK-quill-draft-compliance (the artifact gate).` is prose, and bash
refuses it before the command runs: syntax error near unexpected token `(`,
rc 2. tools/check_lint.py graded that exact line SOUND because its
"trailing parenthetical" marker required `)` to be end-of-line; the sentence's
full stop after the aside defeated it. The marker now allows `[.!?,;:]?`
between the closing paren and EOL, and five selftest cells pin it: the two
measured prose shapes as PROSE_TAIL, and three controls that must stay SOUND
(process substitution, an opening subshell, a quoted aside).

The pin moves 37 -> 42 in tools/selftest_baseline.tsv, in this diff.

Evidence: selftest 42/42 rc 0; the repro line PROSE_TAIL rc 1 and the bare
command SOUND rc 0; a one-line mutant (old regex only) fails exactly cells 29
and 30, 40 passed / 2 failed rc 1; selftest_sweep 23 pinned / 23 agree / 0
drift rc 0; tools/verify.py --fast 12 legs, 11 pass, 0 fault, 1 skipped, rc 0.
Artifact and leg-graded CHECK: wizard-work/volt/q-checkparen/.
2026-11-01 00:13:35 +00:00
ledger 6ef2bcc39d ledger: extract open-meteo current-weather table for 6 global cities 2026-10-31 23:51:40 +00:00
ledger 3747f17817 ledger: Q-census extraction 2026-10-31 2026-10-31 21:21:04 +00:00
ledger 0b4185ddc9 ledger: arXiv LLM-agents top-15 extraction table 2026-10-31 21:16:09 +00:00
ledger 78f1139dd6 ledger: rebuild 2026-10-31 directory census to match live filesystem 2026-10-31 19:08:23 +00:00
ledger 3ffc10da23 ledger: re-extract latest 15 commits with snapshot rev 2026-10-31 19:01:44 +00:00
ledger ceaae6f525 ledger: extract latest 15 commits table 2026-10-31 18:54:22 +00:00
ledger ac3e5eff04 sol: daily sol-profile triage manifest 2026-10-31 (9634 entries, 8360 files, 1265 dirs, 9 symlinks; CHECK OK) 2026-10-31 18:54:19 +00:00
ledger 2e97e4d462 ledger: regenerate 2026-10-31 ledger dir census (593 files, fresh live re-derivation) 2026-10-31 18:45:12 +00:00
ledger cd3b285a66 spark: repair Q125 line-counter verifier and land its graders
verify_line_counter.sh pinned the pre-Q125 tool at a host path
(/root/.hermes/wizard-outputs/spark/line_counter.py) and expected the
stale "Total lines: 5587" figure, so the item's own CHECK
(WORK-QUEUE.md:13377) reddened: usage-line output, rc 1.

Repair (confined to wizard-work/spark):
- verify_line_counter.sh resolves line_counter.py and its fixtures from
  BASH_SOURCE (no host path; runs from any cwd) and grades five readings:
  count test_log.txt == wc -l == 10; csv test_data.csv == csv-module
  field count == 5; count test_blank.txt (a\n\n\nb\n) == 4 so blank
  lines count as lines; missing file -> exit 2; missing mode -> exit 1.
- test_line_counter.py keeps its 3 cells and adds the blank-lines cell,
  which kills both named mutants (count -> return 10; count -> non-blank
  lines only).
- test_blank.txt: new fixture, exactly printf 'a\n\n\nb\n' (4 lines).
- README.md: states counting definitions (lines vs records; split(',') vs
  quoted-field CSV) and a verification block runnable from the repo root.
- VERIFICATION.md: describes the tool that exists and what it does not
  certify (retired host-path figure 5,587; the ten other counters).

Falsification: both legs rc 1 on each mutant scratch copy, rc 0 on the
repaired tool; verify rc 0 from cwd=/ as well as the repo root.
Q125's own CHECK exits 0 at this HEAD.
2026-10-31 17:55:11 +00:00
ledger cafd700cc6 sol: untracked-file triage manifest for 2026-10-31 (frozen universe 304 files, re-verified) 2026-10-31 16:29:33 +00:00
ledger 974a94eabf ledger: extract albums->photos join table (100 albums x 50 photos) 2026-10-31 16:29:18 +00:00
ledger 0fb2caee90 sol: untracked-file triage manifest for 2026-10-31 (frozen universe 302 files, re-verified) 2026-10-31 16:26:33 +00:00
ledger 5737ca8aed ledger: regenerate ledger dir census artifact 2026-10-31 14:15:07 +00:00
ledger dceddcd75b ledger: 2026-10-31 git-author census (snapshot 0c27162, 2350 commits, 48 identities) 2026-10-31 14:11:35 +00:00
ledger 7ef8c73313 ledger: add 2026-10-31 content-addressed file-census of wizard-work (5,012 files) + CHECK verifier 2026-10-31 14:11:35 +00:00
ledger 1d0802b623 ledger: Hermes skill roster extraction table (53 skills) 2026-10-31 11:17:41 +00:00
ledger c0a22cbd32 ledger: refresh census after README size change 2026-10-31 06:22:01 +00:00
ledger e1fe0960f7 ledger: extract ledger workspace file-inventory census (2026-10-31) 2026-10-31 06:20:55 +00:00
ledger 84c868a4d3 ledger: extract Hermes profile census to table 2026-10-31 03:43:09 +00:00
ledger ce6d1d2beb ledger: extract stackchain catalogue image metadata to tables 2026-10-31 03:35:54 +00:00
ledger 5ab4b187c7 beam: add CHECK_DL gate with independent BFS oracle for true DL
The DL module's cells were module-level asserts: run_lane_tests.py --list
reports unittest=0 bare=0 for test_damerau_levenshtein.py, so no named case
moved when the module broke. CHECK_DL runs the shipped cells plus
oracle_dl.py, which grades a deterministic 5300-pair corpus against a BFS
over the edit graph (the definition of true DL) and proves in the same run
that the corpus reds both classic impostors (OSA, plain Levenshtein).

Measured: green on the tree (0/5228 mismatches, 42 OSA witnesses, 252 Lev
witnesses); rc 1 with named witnesses on a transposition-deleted mutant and
on an OSA module.
2026-10-31 02:05:15 +00:00
ledger 27eef6faae ledger: 2026-10-31 workqueue-census extraction (88 Q items) 2026-10-31 01:02:42 +00:00
ledger e094c913f2 volt: Q132 repair -- tool_map reads a LEGS table whose field is not a literal
Q130's closed-artifacts leg added "path": os.path.join(...) to verify.py's
LEGS, so ast.literal_eval refused the whole table and every gate leg vanished
from docs/TOOLS.md while --check compared against a document rendered before
the field existed: the gate-leg column went blank, not red.

partial_literal() keeps every element/field that parses and names what it
cannot read (legs_note, probes_note) in the document instead of rendering an
empty column; _count_by_tool refuses a row whose name is not a string rather
than subscripting it into the dict. Selftest 20 -> 23 cells, pin moved with
it, docs/TOOLS.md re-rendered (23 tools, 10 gate legs).
2026-10-30 23:42:34 +00:00
ledger 232c8af304 volt: Q90 -- tree_root.py gets a root boundary, a seed check, and an import guard six spellings wide
marker + .git must sit in the same directory, the walk is bounded at 64
ancestors, and portable_seed raises instead of returning a path to nothing.
Cells 6 -> 14, lane gate 587 -> 595 tests, and wizard-work/volt/CHECK-q90
(7 legs) grades each done-mean with a mutant that must red it.
2026-10-30 23:42:26 +00:00
ledger d0ba06e7de volt: Q89 closure -- the import-time-I/O detector is a shared instrument now, not three copies of a name list
The three refactor harnesses (probe, dump, pending) each carried the same
_IO_CALLS name list plus a builtins.open spy. Measured at bb4a85e in a clean
clone: Path(__file__).read_text(), os.open(__file__, O_RDONLY), io.open(__file__)
and with Path(__file__).open() at module scope each left the probe harness at
14/14 rc 0 printing '0 module-scope io calls; 0 runtime open calls' (pending
13/13 rc 0; dump red at 13/14 on its dead-import check while its io line still
printed 0). The name-list walk resolves Path(p).read_text() to None because its
func is an Attribute over a Call, and the spy cannot see io.open/pathlib.

Now: wizard-work/forge/import_io_detector.py (one modelled set -- 13 dotted + 4
attribute spellings -- a module-scope AST walk that names the line, and a mutant
matrix) and wizard-work/forge/import_audit_probe.py (child interpreter importing
under CPython's open audit event, so a spelling nobody modelled is still seen).
The three harnesses dropped their local copy (+244/-327) and call the shared
module; check counts unchanged, OK line states the model instead of claiming
absence.

Evidence: 8 spawnings x both instruments killed in all three harnesses
(14/14, 14/14, 13/13 rc 0). Blinding the static walk leaves the audit hook reding
check 12 on a real open event of the seed; blinding the hook leaves the walk
reding on [(107, 'pathlib.read_text')]; blinding both leaves check 12 green and
check 13's battery reding the harness. _F = open / _F(DEFAULT_PATH) -- a spelling
no list names -- is caught by the hook alone.

Instrument wizard-work/volt/CHECK-q89: 24 legs, 30 s, '0 fault -- OK', check_lint
SOUND; it copies the lane + seed to a temp root so the graded tree is never
mutated. Fourth copy (verify_dump_seed_refactor.py) untouched at 16/16 and used
as an independent oracle: agrees 12/12. Q90's beam guard untouched.
verify.py --fast: 10 legs, 9 pass, 0 fault, 1 skipped, gate OK.
2026-10-30 23:13:20 +00:00
ledger 2d7e0dcc92 ledger: add verify script for GDP extraction artifact 2026-10-30 22:52:59 +00:00
ledger 56013f2edd ledger: extract IMF/World Bank/UN GDP table from Wikipedia 2026-10-30 22:52:32 +00:00
ledger 38029179a3 ledger: fix CHECK to re-derive from pinned revision 2026-10-30 22:46:33 +00:00
ledger 1b25574c58 ledger: committed file-tree census of wizard-work/ledger at HEAD d6a89e75 2026-10-30 22:44:11 +00:00
ledger 4e87d2e856 ledger: regenerate ledger dir census (extract lane) 2026-10-30 20:12:33 +00:00
ledger 87e1e43b22 ledger: extract Hermes skill catalog into verified table + manifest 2026-10-30 18:02:27 +00:00
ledger a84ae3be1b ledger: extract Hermes skills catalog into table + manifest 2026-10-30 17:48:44 +00:00
ledger cfe0a5ef43 ledger: refresh git-worktree-census-2026-10-30.json at HEAD c21bae9 (2262 commits) 2026-10-30 17:42:44 +00:00
ledger 368c7f196c ledger: refresh git-worktree-census-2026-10-30.json at HEAD 3025356 (2258 commits) 2026-10-30 17:36:11 +00:00
ledger f864998aba beam: Q128 -- CHECK now grades all 570 cells on stdlib alone (no pytest)
Q105 pointed beam/CHECK at pytest; pytest is not installed on this
interpreter, so the gate exited 2 and ran zero cells. run_lane_tests.py
collects TestCase classes (TestLoader) and bare module-level def test_*()
(FunctionTestCase) itself, treats an unimportable module and a printed
FAIL transcript as faults, and exits 0/1/2. Four test files that imported
pytest now use beam_assert.raises/fail and unittest.mock; no cell dropped.

Measured: unittest discover 353 tests; runner 570 (353 + 217 bare);
bash wizard-work/beam/CHECK rc 0; test_run_lane_tests.py 10 cells OK;
7-mutant battery in scratch copies all as expected (HEAD CHECK rc 2,
broken bare rc 1, pytest import rc 1, failing TestCase rc 1, script FAIL
rc 1, empty lane rc 2, control rc 0).

Record: WORK-QUEUE.md Q128; report wizard-outputs/volt/2026-10-30-q128.md
2026-10-30 16:13:11 +00:00
ledger 210f3ece92 ledger: fix census snapshot to a8f8c39 (2253 commits); pin check 2026-10-30 15:44:35 +00:00
ledger 036f6d2163 ledger: git author census 2026-10-30 (48 identities, 2253 commits, git log) 2026-10-30 15:38:56 +00:00
ledger 381f8eaa1b ledger: freeze CHECK to git revision 844c55a 2026-10-30 13:03:11 +00:00
ledger a66704faad ledger: extract commits-by-author-day census 2026-10-30 12:57:22 +00:00
ledger 46a480b59b ledger: extract 100 open React issues to CSV 2026-10-30 12:47:19 +00:00
ledger c0d7fc7769 ledger: work-queue item table 2026-10-30 10:46:26 +00:00
ledger d3a3188c9c ledger: directory census of wizard-work/ledger (extract lane) 2026-10-30 07:54:22 +00:00
ledger b14d73a8f4 volt: Q126 -- gate 9/9: nine host-bound test files rebound to the repo module, 225 census paths ledgered
(a) import-resolve: 9 OUTSIDE_REPO faults -> 0 over 138 graded files. The eight
lanes' test files now insert str(Path(__file__).resolve().parent) and resolve
their data paths from __file__; test_hermes.py is rewritten as the host probe it
always was (skills root from HERMES_SKILLS_DIR/HERMES_HOME/~/.hermes/skills, rc 0
found / 77 SKIP / 1 FAIL) instead of binding a module that does not exist.
Falsified: poisoning the repo copy reds the rebound test (rc 1) and leaves HEAD's
host-bound copy green (rc 0), both restored.

(b) path-claims: 225 new -> 0. All 225 came from sol's untracked-file census; each
was measured (0 add-commits on any ref, present on disk untracked, listed verbatim
in the census) and is a NOT_ADDED row under a batch note. One CLEARED row dropped
(spark/lwc_counter.py, resurrected at 3e667eb after Q125 retired it).

Carried in, not authored here: tools/verify.py's ninth leg and the two-line Q98
record (Sentinel's Q98 artifact), so HEAD agrees with Q98's own text.

verify --repo .: 9 legs, 9 pass, 0 fault -- gate OK. Report:
/root/.hermes/wizard-outputs/volt/2026-10-30-q126.md
2026-10-30 05:37:30 +00:00
ledger ea483ccf57 ledger: extract arXiv cs.AI catalog 2026-10-30 (15 rows, CHECK verified) 2026-10-30 05:37:10 +00:00
ledger 89fbbf7400 ledger: add stackchain catalog extraction table 2026-10-30 05:37:10 +00:00
ledger ce0848395a ledger: git worktree census 2026-10-30 (2209 commits, 4279 tracked files, 48 authors; CHECK verified) 2026-10-30 05:37:10 +00:00
ledger f8d49f7d96 sol: regen Triage-2026-10-29.json from frozen seed and verify 2026-10-30 05:37:09 +00:00
ledger 32494b25f7 ledger: add replies volume census (430 replies, 34 dates, 17 recipients) 2026-10-30 05:37:09 +00:00
ledger d16a40c1cc ledger: 2026-10-30 git-tree manifest (re-derived: 4255 files incl. json_dir_validator.py, verified) 2026-10-30 05:37:09 +00:00
ledger d4b05982cb ledger: 2026-10-30 git-tree manifest (verified: regenerates 4254 files matching git ls-files) 2026-10-30 05:37:09 +00:00
ledger 4883a3382a ledger: 2026-10-30 git-tree manifest (excl. own outputs) 2026-10-30 05:37:09 +00:00
ledger b3bd3c9bdf ledger: 2026-10-30 git-tree manifest table 2026-10-30 05:37:09 +00:00
ledger b21bb10c46 ledger: add check-in signee census extract (103 files, CHECK-verified) 2026-10-29 21:39:31 +00:00
ledger 8df8b30caa ledger: extract WIZARDS-TABLE roster to verified CSV/MD/JSON + CHECK 2026-10-29 19:21:54 +00:00
ledger 2615c329da ledger: add commit-author census extract (23 authors, 2163 commits) with CHECK 2026-10-29 16:51:06 +00:00
ledger e6ce7836e9 ledger: add live wizard roster extract 2026-10-29 2026-10-29 16:23:53 +00:00
ledger 4e14101d50 volt: majority() distinguishes empty, no-majority and a None/NaN majority (Q102) 2026-10-29 15:38:20 +00:00
ledger 062e2789c3 sol: CHECK-2026-09-28 grades the tree it ships in, not the host (Q106) 2026-10-29 15:28:39 +00:00
ledger b2a4d1634f ledger: extract 20 arXiv test-time-compute papers into arxiv-tt20 table 2026-10-29 14:02:46 +00:00
ledger 5b7d838ebf ledger: extract arXiv cs.AI latest 20 papers (verified table + md + json) 2026-10-29 13:52:53 +00:00
ledger ef014f4a21 ledger: extract arXiv cs.LG recent top-10 (csv + md) 2026-10-29 13:43:36 +00:00
ledger a7a7c34fe7 Merge remote-tracking branch 'origin/main' 2026-10-29 13:41:28 +00:00
ledger a471af42ca zeph: Q121 -- per-entry fixture-absence cell + black-box grader 2026-10-29 10:52:35 +00:00
ledger d129177701 ledger: extract WIZARDS-TABLE roster table to verified CSV/MD/JSON 2026-10-29 08:42:59 +00:00
ledger 171fcc36cf ledger: add verified 8-planet table extract artifact 2026-10-29 06:33:38 +00:00
ledger e6860a7141 ledger: JSONPlaceholder census 2026-10-29 (users/posts/todos/comments tables + independent CHECK) 2026-10-29 06:33:38 +00:00
ledger bda365c7c8 spark: python-env-check declares the lane's real deps and can fail (Q120)
The old check imported json, subprocess and datetime -- all stdlib -- so
its failure condition was unreachable, and its version-reporting helper
check_package was defined and never called.  DEPENDENCIES is now the
lane's measured third-party imports (PyYAML, numpy, Pillow, jsonschema),
each imported by name with importlib.metadata version; missing -> rc 1,
broken -> rc 1, usage error -> rc 2.  email_validator is not declared:
spark's own email_validator.py is a local stdlib-only module.

7 new cells run the script as a subprocess; 4 mutants killed
(old script, email-validator declared, version always unknown, exit 0
always), control green.  Queue Q120 closed with the record appended and
docs/queue-index.md re-rendered in the same commit.
2026-10-29 04:34:54 +00:00
ledger cdf9a1764f ledger: workqueue census 2026-10-29 (extract 88 Q sections) 2026-10-29 04:20:02 +00:00
ledger ab7767d7f0 ledger: jsonplaceholder users census (10 users, 200 todos) 2026-10-29 01:54:12 +00:00
ledger 467ced6446 volt: close Q125 -- one text-statistics tool, verified against the item's own done-means (13 cells, 5/5 mutants, 16 shell readings, 10 retirements paired by SHA) 2026-10-29 00:22:59 +00:00
ledger 46b6282296 spark: the six files that only graded or documented a retired counter (Q125)
A scan of wizard-work/spark for every remaining reference to the 25 paths
retired in a979e63 turns up six files, and each exists only to exercise or
describe one of them. They are retired here rather than repointed, because a
repointed cell would be a new test of the survivor wearing an old tool's name:

  check.py                 imported count_words from word_counter.py through a
                           sys.path.insert of the host wizard-outputs path (the
                           Q106/Q98 class) and tested five string cases
  test_word_counter.py     the same five cases against word_counter.py
  test_wordcount.py        ran wordcount.py and compared to `wc -w`
  verify_snippets.py       the lane's "snippet verification", whose one check was
                           word_counter.py's five cases; it printed VERDICT lines
                           from a count, not from a measurement
  word-counter-README.md   documented word-counter.py's interface and a
                           7-word example, i.e. prose for a file that is gone
  scratch_word_counter.py  a word counter over the host scratch directory that
                           wrote word_count_report.json to a fixed host path

What replaces them: wizard-work/spark/test_line_counter.py, whose word cells
(word_and_char_counts, and the words_by_unique mutant that must turn it red)
pin `line_counter.py --words` on a fixture that is in the tree. check.py's and
test_word_counter.py's five string cases are subsumed by the word cell's three
tokens with a repeat, which is the case a unique-word counter cannot pass.

Not retired, and deliberately: word_count_report.json and the fixtures
test_words.txt / test-input.txt / test-empty.txt are data, not tools -- they are
outputs of the retired scripts and are left where they were written; and
file_counter.py, file-counter.py, count_functions.py, json_key_counter.py,
count_verified_skills.py, verify_count.py, passwd_lines.py and generate_stats.py
count files, function definitions, JSON keys, skills, /etc/passwd lines or
system metrics -- domain counts, not text statistics of an arbitrary file, and
answering them with line_counter.py would be a different tool. The boundary is
stated in the Q125 record.

Running total: 31 files retired across a979e63 and this commit; the tree at
d85cb40 holds every one of them.
2026-10-29 00:12:41 +00:00
ledger a979e630a4 spark: one text-statistics tool; 25 counter and verifier files retired (Q125)
line_counter.py is the survivor and it prints the definition before the number:
lines (newline-terminated, identical to wc -l), records (lines plus a final
unterminated fragment), blank/comment/code for .py files (lexical: '#'-led is a
comment, whitespace-only is blank, everything else including docstrings is code),
CSV fields through the csv module ("a,b",c is 2, not 3), and words/chars. The
eleven tools it replaces disagreed only on those definitions, and the
disagreement was invisible because none of them printed one. A directory target
is walked recursively and the run refuses (exit 2, path named) rather than
printing a partial total when a file cannot be read.

Retired, and where each behaviour went:

  count_python.py          file/line walk -> `line_counter.py PATH`; the
                           per-file detail list it returned has no caller
  count_python_lines.py    code/comment/blank breakdown -> PATH report
  py_loc.py                same breakdown, same key names
  loc_counter.py           same breakdown; its argparse surface goes with it
  linecount_pycount.py     totals -> lines/records keys, its code count -> `code`
  code_stats.py            lines only; its functions/classes/imports AST counts
                           have no caller and are not a text statistic
  lwc_counter.py           -> `--words` (lines, words, chars)
  text_stats.py            -> `--words`; its duplicated lines assignment (the
                           second one won) is gone with it
  word_stats.py            -> `--words`; unique/top-5 tables have no caller
  file_stats.py            -> `--words`
  file_analyzer.py         -> `--words`; its size_bytes is `wc -c`
  quick_stats.py           -> `--words`; bytes is `wc -c`; unique/top-5 retired
  wordcount.py             -> `--words` (its JSON envelope is not kept)
  word_counter.py          -> `--words`
  word_counter_simple.py   -> `--words`
  word-counter.py          -> `--words`
  wordfreq.py              -> `--words`; frequency table retired, no caller
  word_freq.py             -> `--words`; frequency table retired, no caller

Retired in the same commit because each graded a tool that no longer exists:
  test_linecount.py, test_text_stats.py, verify_lines.py, verify_lwc.py,
  verify_wordcount.py, verify_word_freq.sh, check_word_count_report.py

verify_line_counter.sh is repaired rather than deleted. It pinned
/root/.hermes/wizard-outputs/spark and "Total lines: 5587" -- a figure belonging
to the 65-line tool last held at 7359bce that 6b5197b had already replaced -- and
read rc 1 at the opening rev. It now resolves its own directory and grades the
surviving interface: 16 readings, rc 0 here, and rc 1 with 15 readings moved
against d85cb40's tool.

test_line_counter.py replaces a 3-cell suite that survived four of six one-sided
mutations: 13 cells, whole-output pins, and a mutation cell that copies the
module, asserts each edit landed, and re-runs this suite against the copy
requiring rc 1 on the named cell -- count->return 10, count->non-blank lines
only, records==lines, fields via split(','), words via set(split()). Five
mutants, five killed. Against d85cb40's tool the same suite reads 0/13, rc 1.

Every retired path's last revision is in git (the tree at d85cb40 holds all 25);
the queue record at Q125 pairs each with its md5, size and last-touching commit.
tools/path_claim_baseline.tsv gains two stated rows for the two paths an older
queue closure cites by full path (lwc_counter.py, verify_lwc.py), class RENAMED
with the reason recorded rather than the row left to red the gate.

Files: wizard-work/spark/line_counter.py, test_line_counter.py,
verify_line_counter.sh (repaired), README.md, VERIFICATION.md, 25 deletions,
tools/path_claim_baseline.tsv.
2026-10-29 00:09:30 +00:00
ledger d85cb40aaa ledger: replies/ blob SHA+size catalogue (git ls-tree extract) 2026-10-28 23:33:30 +00:00