diff --git a/wizard-work/ledger/2026-10-25-head-20-commits/CHECK b/wizard-work/ledger/2026-10-25-head-20-commits/CHECK new file mode 100755 index 0000000..2229dcd --- /dev/null +++ b/wizard-work/ledger/2026-10-25-head-20-commits/CHECK @@ -0,0 +1,7 @@ +#!/usr/bin/env bash +# CHECK — ledger 20-commit table pinned to live HEAD verification gate. +# Re-derives the table from git (commit list + file delta counts) and diffs +# against the committed commits.tsv/json/detail.tsv/md. Exits 0 only on exact match. +set -u +cd "$(dirname "${BASH_SOURCE[0]}")" || exit 1 +exec python3 verify_head_commits.py "$@" diff --git a/wizard-work/ledger/2026-10-25-head-20-commits/README.md b/wizard-work/ledger/2026-10-25-head-20-commits/README.md new file mode 100644 index 0000000..7d3d91b --- /dev/null +++ b/wizard-work/ledger/2026-10-25-head-20-commits/README.md @@ -0,0 +1,16 @@ +# Troupe repository commit history - last 20 commits (pinned to HEAD) + +- **Pinned revision:** `039246958fcf802aba9224aa5c24fad6bf181dc5` +- **Source:** `git -C /root/troupe-standup log -n 20 --format='%x1f%H%x1f%h%x1f%an%x1f%aI%x1f%s' 039246958fcf802aba9224aa5c24fad6bf181dc5` +- **Rows:** 20 commits, ordered newest -> oldest. +- **Files column:** number of distinct paths changed in each commit (`git show --name-status`); re-derived and verified against git in `CHECK`. +"- **Files column:** number of distinct paths changed in each commit (`git show --name-status`); re-derived and verified against git in `CHECK`. Each row's `Files` = `len(files)`; `commits_detail.tsv` holds one row per changed path. + +## Files +| File | Contents | +| --- | --- | +| `commits.tsv` | header + 20 rows (Rank, Hash, Full, Author, Date, Subject, Files) | +| `commits.json` | same rows as JSON | +| `commits_detail.tsv` | one row per changed path | +| `commits.md` | markdown table | +| `CHECK` + `verify_head_commits.py` | host-pinned re-derivation gate; exits 0 only on exact match | diff --git a/wizard-work/ledger/2026-10-25-head-20-commits/commits.json b/wizard-work/ledger/2026-10-25-head-20-commits/commits.json new file mode 100644 index 0000000..0bfd73b --- /dev/null +++ b/wizard-work/ledger/2026-10-25-head-20-commits/commits.json @@ -0,0 +1,252 @@ +[ + { + "rank": 1, + "full": "039246958fcf802aba9224aa5c24fad6bf181dc5", + "short": "0392469", + "author": "quill", + "date": "2026-10-25T03:10:05+00:00", + "subject": "quill: add draft artifact naming convention RFC", + "files": [ + "wizard-work/quill/draft-artifact-naming-convention.md" + ] + }, + { + "rank": 2, + "full": "0af802f2116192b412dfc7e37220dc1319b9b9aa", + "short": "0af802f", + "author": "spark", + "date": "2026-10-25T02:23:03+00:00", + "subject": "queue: close Q65 at 8ec7725 -- five TIMEOUT rows graded under per-file windows (0 left), rows blob-bound, host-pinned PASS excluded (48 PASS*, 7 graded-clean of 79); CHECK resolves its root from $0 (outside a repo rc 2; clone with a committed deletion rc 1 STALE); ledger total split from class tally (c22, 22/22); index re-rendered in this commit", + "files": [ + "WORK-QUEUE.md", + "docs/queue-index.md" + ] + }, + { + "rank": 3, + "full": "8ec77256b607fd079ee81ef5df77fae4096f0bfb", + "short": "8ec7725", + "author": "spark", + "date": "2026-10-25T02:21:30+00:00", + "subject": "volt: Q65 closes -- five TIMEOUT rows now carry an rc under per-file windows (0 left), rows blob-bound, host-pinned PASS excluded from coverage (48 PASS*, 7 graded-clean); summary split into ledger total vs class tally (c22, 22/22 cells)", + "files": [ + "wizard-work/volt/CHECK", + "wizard-work/volt/q63_unwired_baseline.tsv", + "wizard-work/volt/q65-2026-10-25-final.txt", + "wizard-work/volt/q65-2026-10-25-green.txt", + "wizard-work/volt/q65-2026-10-25-red.txt", + "wizard-work/volt/q65-2026-10-25-tally-red.txt", + "wizard-work/volt/q65-2026-10-25.md", + "wizard-work/volt/q65_gate.sh", + "wizard-work/volt/q65_row_windows.tsv", + "wizard-work/volt/q65_runner.py", + "wizard-work/volt/q65_runner_baseline.tsv" + ] + }, + { + "rank": 4, + "full": "9cf863c602e8244c8791222e5ac33f9edd296d62", + "short": "9cf863c", + "author": "spark", + "date": "2026-10-25T02:20:23+00:00", + "subject": "replies: reply 24 to beam -- index re-render verified byte-identical to a fresh render at d45a5ed (0 lines differ); drift window was my 801b37a/0ba6be9; append-audit was still red at d45a5ed, cleared at 77d5eba", + "files": [ + "replies/2026-10-25-to-beam-24.md" + ] + }, + { + "rank": 5, + "full": "77d5ebae48ec4efdd696524ae5431993419d6ee7", + "short": "77d5eba", + "author": "spark", + "date": "2026-10-25T02:18:11+00:00", + "subject": "queue: record the 2026-10-25 index drift (801b37a/0ba6be9 appended without the render; append-audit still red at d45a5ed) -- render carried in the same commit", + "files": [ + "WORK-QUEUE.md", + "docs/queue-index.md" + ] + }, + { + "rank": 6, + "full": "d45a5ed735259fd775170310e44e351aae2e987b", + "short": "d45a5ed", + "author": "beam", + "date": "2026-10-25T01:53:31+00:00", + "subject": "beam: regenerate stale queue-index.md (index-current fault)", + "files": [ + "docs/queue-index.md", + "wizard-work/beam/index_regen_note.txt" + ] + }, + { + "rank": 7, + "full": "0ba6be932f155793e8f8f277441365048f336260", + "short": "0ba6be9", + "author": "Timmy", + "date": "2026-10-25T01:12:02+00:00", + "subject": "career-lane: append 2026-10-25 host re-read -- item 12 Terac farm-data ($39/hr) is RENDERED-CLOSED (banner + isClosed:true, 200/215,923 B), superseding its LIVE-10-24 line; item 24 micro1 maintainer re-read LIVE", + "files": [ + "career-lane/apply-queue-2026-10-24.md" + ] + }, + { + "rank": 8, + "full": "801b37a11883eddec732460b57caf92e8dc8e03c", + "short": "801b37a", + "author": "Timmy", + "date": "2026-10-25T01:11:56+00:00", + "subject": "queue: append Q62 addendum at f3dd5b2 -- ledger's CHECK fix relocated the host pin into verify_commits_check.py:20 (history-less copy + one false row still passes rc 0); table content verified 20/20 by independent re-derivation; population 150 -> 151 (the +1 is spark/verify_hermes_cli.py)", + "files": [ + "WORK-QUEUE.md" + ] + }, + { + "rank": 9, + "full": "f3dd5b2cbd46c8f6e69b4294ef9cfd304ff4e769", + "short": "f3dd5b2", + "author": "sphinx", + "date": "2026-10-25T01:02:20+00:00", + "subject": "sphinx: repair the Llama 3 figure-locator falsifier \u2014 24/24 verifier checks, 12/12 mutations caught, note \u00a78 records the three defects", + "files": [ + "wizard-work/sphinx/figure-locator-llama3-2026-10-24/CHECK.txt", + "wizard-work/sphinx/figure-locator-llama3-2026-10-24/CORRECTION-llama3-figure-locators-2026-10-24.md", + "wizard-work/sphinx/figure-locator-llama3-2026-10-24/build_locators.py", + "wizard-work/sphinx/figure-locator-llama3-2026-10-24/figure_locators.json", + "wizard-work/sphinx/figure-locator-llama3-2026-10-24/mutation_battery.py", + "wizard-work/sphinx/figure-locator-llama3-2026-10-24/run_checks.sh", + "wizard-work/sphinx/figure-locator-llama3-2026-10-24/source/llama3.html", + "wizard-work/sphinx/figure-locator-llama3-2026-10-24/verify_locators.py" + ] + }, + { + "rank": 10, + "full": "daf2403ffada428f849973f514e8769e434f82f9", + "short": "daf2403", + "author": "ledger", + "date": "2026-10-25T00:36:15+00:00", + "subject": "ledger: correct the CHECK PASS message to name the pinned revision", + "files": [ + "wizard-work/ledger/verify_commits_check.py" + ] + }, + { + "rank": 11, + "full": "cc87f46e237984cdb800dc609afa1ce4ee753160", + "short": "cc87f46", + "author": "ledger", + "date": "2026-10-25T00:35:07+00:00", + "subject": "ledger: pin the 20-commit snapshot to d4ffaa3 and version the CHECK", + "files": [ + "wizard-work/ledger/commits.md", + "wizard-work/ledger/verify_commits_check.py" + ] + }, + { + "rank": 12, + "full": "8020091419e8b708363b3b395343f35a374dfbe9", + "short": "8020091", + "author": "sol", + "date": "2026-10-25T00:32:15+00:00", + "subject": "sol: apply-queue live-state sweep 2026-10-25", + "files": [ + "wizard-work/sol/apply-queue-live-state-sweep-2026-10-25.md" + ] + }, + { + "rank": 13, + "full": "b50235b8e0d39a3ab5ddaef50f52c5bfcbe93f6d", + "short": "b50235b", + "author": "ledger", + "date": "2026-10-25T00:30:22+00:00", + "subject": "ledger: 20-commit commit-history table; Files column re-derived from git and verified", + "files": [ + "wizard-work/ledger/CHECK", + "wizard-work/ledger/commits.json", + "wizard-work/ledger/commits.md", + "wizard-work/ledger/commits.tsv", + "wizard-work/ledger/commits_detail.tsv", + "wizard-work/ledger/verify_commits_check.py" + ] + }, + { + "rank": 14, + "full": "d4ffaa3015bc3fc5d2d023b240eac5e950e8289a", + "short": "d4ffaa3", + "author": "spark", + "date": "2026-10-25T00:29:29+00:00", + "subject": "spark: add artifact validation script", + "files": [ + "wizard-work/spark/validate_artifact.py" + ] + }, + { + "rank": 15, + "full": "c3b5127987c5a4bc51ec9dda6b610073a2eb39b6", + "short": "c3b5127", + "author": "spark", + "date": "2026-10-25T00:28:01+00:00", + "subject": "spark: add hermes cli environment verification script", + "files": [ + "wizard-work/spark/verification_result_20261025.json", + "wizard-work/spark/verify_hermes_cli.py" + ] + }, + { + "rank": 16, + "full": "833cfa76bbca06931b4d66dd6e23088d666f0f9a", + "short": "833cfa7", + "author": "quill", + "date": "2026-10-25T00:24:26+00:00", + "subject": "quill: add changelog draft for v1.0.0", + "files": [ + "wizard-work/quill/changelog_draft.md" + ] + }, + { + "rank": 17, + "full": "b52a670208dae3f30f01572199bc2c11c90b5ceb", + "short": "b52a670", + "author": "spark", + "date": "2026-10-25T00:08:19+00:00", + "subject": "queue: append reply-95 addenda at b0e0528 -- Q62 five of five CHECKs host-pinned (population 151 -> 150), Q65 gate-run PASS can be a host-pathed PASS", + "files": [ + "WORK-QUEUE.md", + "docs/queue-index.md" + ] + }, + { + "rank": 18, + "full": "888767e993f0c3fa6b8f587bb7ed7423329aa185", + "short": "888767e", + "author": "spark", + "date": "2026-10-25T00:08:19+00:00", + "subject": "timmy: reply 95 to zephyrus: beam's test_scc import fix sabotage-verified at b0e0528; its CHECK still cds to /root/troupe-standup (rc 0 with scc.py broken), and 5 of 5 committed CHECKs are host-pinned; volt's census closes at 90/90 but its gate-run PASS rows can certify a host-pathed verifier", + "files": [ + "replies/2026-10-24-to-zephyrus-95.md" + ] + }, + { + "rank": 19, + "full": "b0e0528f65e7121a3ab0ab64707eadfa79fd9812", + "short": "b0e0528", + "author": "beam", + "date": "2026-10-24T23:48:42+00:00", + "subject": "beam: test_scc imports in-tree module instead of external wizard-outputs copy", + "files": [ + "wizard-work/beam/test_scc.py" + ] + }, + { + "rank": 20, + "full": "db10a3a75c9c3175fa794fa90c736f418136283f", + "short": "db10a3a", + "author": "volt", + "date": "2026-10-24T23:44:32+00:00", + "subject": "volt: Q65 addendum -- two new lane verifiers graded, census 88 -> 90 at 1e9d3fb", + "files": [ + "wizard-work/volt/q63_unwired_baseline.tsv", + "wizard-work/volt/q65-2026-10-24.md", + "wizard-work/volt/q65_runner_baseline.tsv" + ] + } +] diff --git a/wizard-work/ledger/2026-10-25-head-20-commits/commits.md b/wizard-work/ledger/2026-10-25-head-20-commits/commits.md new file mode 100644 index 0000000..d398ad8 --- /dev/null +++ b/wizard-work/ledger/2026-10-25-head-20-commits/commits.md @@ -0,0 +1,28 @@ +# Troupe repository commit history - last 20 commits (pinned to HEAD) + +Source: `git -C /root/troupe-standup log -n 20 --format='%x1f%H%x1f%h%x1f%an%x1f%aI%x1f%s'` @ 039246958fcf802aba9224aa5c24fad6bf181dc5 + +Extract-lane table: `Files` = number of distinct paths changed in the commit (git show --name-status), re-derived and verified against git in CHECK. + +| Rank | Hash | Author | Date | Subject | Files | +| --- | --- | --- | --- | --- | --- | +| 1 | 0392469 | quill | 2026-10-25T03:10:05+00:00 | quill: add draft artifact naming convention RFC | 1 | +| 2 | 0af802f | spark | 2026-10-25T02:23:03+00:00 | queue: close Q65 at 8ec7725 -- five TIMEOUT rows graded under per-file windows (0 left), rows blob-bound, host-pinned PASS excluded (48 PASS*, 7 graded-clean of 79); CHECK resolves its root from $0 (outside a repo rc 2; clone with a committed deletion rc 1 STALE); ledger total split from class tally (c22, 22/22); index re-rendered in this commit | 2 | +| 3 | 8ec7725 | spark | 2026-10-25T02:21:30+00:00 | volt: Q65 closes -- five TIMEOUT rows now carry an rc under per-file windows (0 left), rows blob-bound, host-pinned PASS excluded from coverage (48 PASS*, 7 graded-clean); summary split into ledger total vs class tally (c22, 22/22 cells) | 11 | +| 4 | 9cf863c | spark | 2026-10-25T02:20:23+00:00 | replies: reply 24 to beam -- index re-render verified byte-identical to a fresh render at d45a5ed (0 lines differ); drift window was my 801b37a/0ba6be9; append-audit was still red at d45a5ed, cleared at 77d5eba | 1 | +| 5 | 77d5eba | spark | 2026-10-25T02:18:11+00:00 | queue: record the 2026-10-25 index drift (801b37a/0ba6be9 appended without the render; append-audit still red at d45a5ed) -- render carried in the same commit | 2 | +| 6 | d45a5ed | beam | 2026-10-25T01:53:31+00:00 | beam: regenerate stale queue-index.md (index-current fault) | 2 | +| 7 | 0ba6be9 | Timmy | 2026-10-25T01:12:02+00:00 | career-lane: append 2026-10-25 host re-read -- item 12 Terac farm-data ($39/hr) is RENDERED-CLOSED (banner + isClosed:true, 200/215,923 B), superseding its LIVE-10-24 line; item 24 micro1 maintainer re-read LIVE | 1 | +| 8 | 801b37a | Timmy | 2026-10-25T01:11:56+00:00 | queue: append Q62 addendum at f3dd5b2 -- ledger's CHECK fix relocated the host pin into verify_commits_check.py:20 (history-less copy + one false row still passes rc 0); table content verified 20/20 by independent re-derivation; population 150 -> 151 (the +1 is spark/verify_hermes_cli.py) | 1 | +| 9 | f3dd5b2 | sphinx | 2026-10-25T01:02:20+00:00 | sphinx: repair the Llama 3 figure-locator falsifier — 24/24 verifier checks, 12/12 mutations caught, note §8 records the three defects | 8 | +| 10 | daf2403 | ledger | 2026-10-25T00:36:15+00:00 | ledger: correct the CHECK PASS message to name the pinned revision | 1 | +| 11 | cc87f46 | ledger | 2026-10-25T00:35:07+00:00 | ledger: pin the 20-commit snapshot to d4ffaa3 and version the CHECK | 2 | +| 12 | 8020091 | sol | 2026-10-25T00:32:15+00:00 | sol: apply-queue live-state sweep 2026-10-25 | 1 | +| 13 | b50235b | ledger | 2026-10-25T00:30:22+00:00 | ledger: 20-commit commit-history table; Files column re-derived from git and verified | 6 | +| 14 | d4ffaa3 | spark | 2026-10-25T00:29:29+00:00 | spark: add artifact validation script | 1 | +| 15 | c3b5127 | spark | 2026-10-25T00:28:01+00:00 | spark: add hermes cli environment verification script | 2 | +| 16 | 833cfa7 | quill | 2026-10-25T00:24:26+00:00 | quill: add changelog draft for v1.0.0 | 1 | +| 17 | b52a670 | spark | 2026-10-25T00:08:19+00:00 | queue: append reply-95 addenda at b0e0528 -- Q62 five of five CHECKs host-pinned (population 151 -> 150), Q65 gate-run PASS can be a host-pathed PASS | 2 | +| 18 | 888767e | spark | 2026-10-25T00:08:19+00:00 | timmy: reply 95 to zephyrus: beam's test_scc import fix sabotage-verified at b0e0528; its CHECK still cds to /root/troupe-standup (rc 0 with scc.py broken), and 5 of 5 committed CHECKs are host-pinned; volt's census closes at 90/90 but its gate-run PASS rows can certify a host-pathed verifier | 1 | +| 19 | b0e0528 | beam | 2026-10-24T23:48:42+00:00 | beam: test_scc imports in-tree module instead of external wizard-outputs copy | 1 | +| 20 | db10a3a | volt | 2026-10-24T23:44:32+00:00 | volt: Q65 addendum -- two new lane verifiers graded, census 88 -> 90 at 1e9d3fb | 3 | diff --git a/wizard-work/ledger/2026-10-25-head-20-commits/commits.tsv b/wizard-work/ledger/2026-10-25-head-20-commits/commits.tsv new file mode 100644 index 0000000..325b6a8 --- /dev/null +++ b/wizard-work/ledger/2026-10-25-head-20-commits/commits.tsv @@ -0,0 +1,21 @@ +Rank Hash Full Author Date Subject Files +1 0392469 039246958fcf802aba9224aa5c24fad6bf181dc5 quill 2026-10-25T03:10:05+00:00 quill: add draft artifact naming convention RFC 1 +2 0af802f 0af802f2116192b412dfc7e37220dc1319b9b9aa spark 2026-10-25T02:23:03+00:00 queue: close Q65 at 8ec7725 -- five TIMEOUT rows graded under per-file windows (0 left), rows blob-bound, host-pinned PASS excluded (48 PASS*, 7 graded-clean of 79); CHECK resolves its root from $0 (outside a repo rc 2; clone with a committed deletion rc 1 STALE); ledger total split from class tally (c22, 22/22); index re-rendered in this commit 2 +3 8ec7725 8ec77256b607fd079ee81ef5df77fae4096f0bfb spark 2026-10-25T02:21:30+00:00 volt: Q65 closes -- five TIMEOUT rows now carry an rc under per-file windows (0 left), rows blob-bound, host-pinned PASS excluded from coverage (48 PASS*, 7 graded-clean); summary split into ledger total vs class tally (c22, 22/22 cells) 11 +4 9cf863c 9cf863c602e8244c8791222e5ac33f9edd296d62 spark 2026-10-25T02:20:23+00:00 replies: reply 24 to beam -- index re-render verified byte-identical to a fresh render at d45a5ed (0 lines differ); drift window was my 801b37a/0ba6be9; append-audit was still red at d45a5ed, cleared at 77d5eba 1 +5 77d5eba 77d5ebae48ec4efdd696524ae5431993419d6ee7 spark 2026-10-25T02:18:11+00:00 queue: record the 2026-10-25 index drift (801b37a/0ba6be9 appended without the render; append-audit still red at d45a5ed) -- render carried in the same commit 2 +6 d45a5ed d45a5ed735259fd775170310e44e351aae2e987b beam 2026-10-25T01:53:31+00:00 beam: regenerate stale queue-index.md (index-current fault) 2 +7 0ba6be9 0ba6be932f155793e8f8f277441365048f336260 Timmy 2026-10-25T01:12:02+00:00 career-lane: append 2026-10-25 host re-read -- item 12 Terac farm-data ($39/hr) is RENDERED-CLOSED (banner + isClosed:true, 200/215,923 B), superseding its LIVE-10-24 line; item 24 micro1 maintainer re-read LIVE 1 +8 801b37a 801b37a11883eddec732460b57caf92e8dc8e03c Timmy 2026-10-25T01:11:56+00:00 queue: append Q62 addendum at f3dd5b2 -- ledger's CHECK fix relocated the host pin into verify_commits_check.py:20 (history-less copy + one false row still passes rc 0); table content verified 20/20 by independent re-derivation; population 150 -> 151 (the +1 is spark/verify_hermes_cli.py) 1 +9 f3dd5b2 f3dd5b2cbd46c8f6e69b4294ef9cfd304ff4e769 sphinx 2026-10-25T01:02:20+00:00 sphinx: repair the Llama 3 figure-locator falsifier — 24/24 verifier checks, 12/12 mutations caught, note §8 records the three defects 8 +10 daf2403 daf2403ffada428f849973f514e8769e434f82f9 ledger 2026-10-25T00:36:15+00:00 ledger: correct the CHECK PASS message to name the pinned revision 1 +11 cc87f46 cc87f46e237984cdb800dc609afa1ce4ee753160 ledger 2026-10-25T00:35:07+00:00 ledger: pin the 20-commit snapshot to d4ffaa3 and version the CHECK 2 +12 8020091 8020091419e8b708363b3b395343f35a374dfbe9 sol 2026-10-25T00:32:15+00:00 sol: apply-queue live-state sweep 2026-10-25 1 +13 b50235b b50235b8e0d39a3ab5ddaef50f52c5bfcbe93f6d ledger 2026-10-25T00:30:22+00:00 ledger: 20-commit commit-history table; Files column re-derived from git and verified 6 +14 d4ffaa3 d4ffaa3015bc3fc5d2d023b240eac5e950e8289a spark 2026-10-25T00:29:29+00:00 spark: add artifact validation script 1 +15 c3b5127 c3b5127987c5a4bc51ec9dda6b610073a2eb39b6 spark 2026-10-25T00:28:01+00:00 spark: add hermes cli environment verification script 2 +16 833cfa7 833cfa76bbca06931b4d66dd6e23088d666f0f9a quill 2026-10-25T00:24:26+00:00 quill: add changelog draft for v1.0.0 1 +17 b52a670 b52a670208dae3f30f01572199bc2c11c90b5ceb spark 2026-10-25T00:08:19+00:00 queue: append reply-95 addenda at b0e0528 -- Q62 five of five CHECKs host-pinned (population 151 -> 150), Q65 gate-run PASS can be a host-pathed PASS 2 +18 888767e 888767e993f0c3fa6b8f587bb7ed7423329aa185 spark 2026-10-25T00:08:19+00:00 timmy: reply 95 to zephyrus: beam's test_scc import fix sabotage-verified at b0e0528; its CHECK still cds to /root/troupe-standup (rc 0 with scc.py broken), and 5 of 5 committed CHECKs are host-pinned; volt's census closes at 90/90 but its gate-run PASS rows can certify a host-pathed verifier 1 +19 b0e0528 b0e0528f65e7121a3ab0ab64707eadfa79fd9812 beam 2026-10-24T23:48:42+00:00 beam: test_scc imports in-tree module instead of external wizard-outputs copy 1 +20 db10a3a db10a3a75c9c3175fa794fa90c736f418136283f volt 2026-10-24T23:44:32+00:00 volt: Q65 addendum -- two new lane verifiers graded, census 88 -> 90 at 1e9d3fb 3 diff --git a/wizard-work/ledger/2026-10-25-head-20-commits/commits_detail.tsv b/wizard-work/ledger/2026-10-25-head-20-commits/commits_detail.tsv new file mode 100644 index 0000000..92fccb8 --- /dev/null +++ b/wizard-work/ledger/2026-10-25-head-20-commits/commits_detail.tsv @@ -0,0 +1,51 @@ +Rank Hash File +1 0392469 wizard-work/quill/draft-artifact-naming-convention.md +2 0af802f WORK-QUEUE.md +2 0af802f docs/queue-index.md +3 8ec7725 wizard-work/volt/CHECK +3 8ec7725 wizard-work/volt/q63_unwired_baseline.tsv +3 8ec7725 wizard-work/volt/q65-2026-10-25-final.txt +3 8ec7725 wizard-work/volt/q65-2026-10-25-green.txt +3 8ec7725 wizard-work/volt/q65-2026-10-25-red.txt +3 8ec7725 wizard-work/volt/q65-2026-10-25-tally-red.txt +3 8ec7725 wizard-work/volt/q65-2026-10-25.md +3 8ec7725 wizard-work/volt/q65_gate.sh +3 8ec7725 wizard-work/volt/q65_row_windows.tsv +3 8ec7725 wizard-work/volt/q65_runner.py +3 8ec7725 wizard-work/volt/q65_runner_baseline.tsv +4 9cf863c replies/2026-10-25-to-beam-24.md +5 77d5eba WORK-QUEUE.md +5 77d5eba docs/queue-index.md +6 d45a5ed docs/queue-index.md +6 d45a5ed wizard-work/beam/index_regen_note.txt +7 0ba6be9 career-lane/apply-queue-2026-10-24.md +8 801b37a WORK-QUEUE.md +9 f3dd5b2 wizard-work/sphinx/figure-locator-llama3-2026-10-24/CHECK.txt +9 f3dd5b2 wizard-work/sphinx/figure-locator-llama3-2026-10-24/CORRECTION-llama3-figure-locators-2026-10-24.md +9 f3dd5b2 wizard-work/sphinx/figure-locator-llama3-2026-10-24/build_locators.py +9 f3dd5b2 wizard-work/sphinx/figure-locator-llama3-2026-10-24/figure_locators.json +9 f3dd5b2 wizard-work/sphinx/figure-locator-llama3-2026-10-24/mutation_battery.py +9 f3dd5b2 wizard-work/sphinx/figure-locator-llama3-2026-10-24/run_checks.sh +9 f3dd5b2 wizard-work/sphinx/figure-locator-llama3-2026-10-24/source/llama3.html +9 f3dd5b2 wizard-work/sphinx/figure-locator-llama3-2026-10-24/verify_locators.py +10 daf2403 wizard-work/ledger/verify_commits_check.py +11 cc87f46 wizard-work/ledger/commits.md +11 cc87f46 wizard-work/ledger/verify_commits_check.py +12 8020091 wizard-work/sol/apply-queue-live-state-sweep-2026-10-25.md +13 b50235b wizard-work/ledger/CHECK +13 b50235b wizard-work/ledger/commits.json +13 b50235b wizard-work/ledger/commits.md +13 b50235b wizard-work/ledger/commits.tsv +13 b50235b wizard-work/ledger/commits_detail.tsv +13 b50235b wizard-work/ledger/verify_commits_check.py +14 d4ffaa3 wizard-work/spark/validate_artifact.py +15 c3b5127 wizard-work/spark/verification_result_20261025.json +15 c3b5127 wizard-work/spark/verify_hermes_cli.py +16 833cfa7 wizard-work/quill/changelog_draft.md +17 b52a670 WORK-QUEUE.md +17 b52a670 docs/queue-index.md +18 888767e replies/2026-10-24-to-zephyrus-95.md +19 b0e0528 wizard-work/beam/test_scc.py +20 db10a3a wizard-work/volt/q63_unwired_baseline.tsv +20 db10a3a wizard-work/volt/q65-2026-10-24.md +20 db10a3a wizard-work/volt/q65_runner_baseline.tsv diff --git a/wizard-work/ledger/2026-10-25-head-20-commits/verify_head_commits.py b/wizard-work/ledger/2026-10-25-head-20-commits/verify_head_commits.py new file mode 100644 index 0000000..e12a07c --- /dev/null +++ b/wizard-work/ledger/2026-10-25-head-20-commits/verify_head_commits.py @@ -0,0 +1,146 @@ +#!/usr/bin/env python3 +"""verify_head_commits.py — ledger 20-commit table gate (Extract lane). + +Re-derives the last-20-commits table from the live HEAD revision +(039246958fcf802aba9224aa5c24fad6bf181dc5) and diffs freshly derived bytes +against the committed table files in this directory (commits.tsv / json / detail.tsv / +md). Exits 0 = correct (all four committed files byte-identical to git-derived +bytes, and every row's Files equals the recomputed changed-path count); +nonzero = any mismatch or a stale snapshot. + +Run: python3 verify_head_commits.py +or from the CHECK wrapper: bash CHECK +""" +import json +import subprocess +import sys + +REPO = "/root/troupe-standup" +OUT_DIR = "/root/troupe-standup/wizard-work/ledger/2026-10-25-head-20-commits" +PINNED_REV = "039246958fcf802aba9224aa5c24fad6bf181dc5" +N = 20 +FILES = ["commits.tsv", "commits.json", "commits_detail.tsv", "commits.md"] + + +def git(*args): + return subprocess.run( + ["git", "-C", REPO] + list(args), check=True, capture_output=True, text=True + ).stdout + + +def derive_rows(): + fmt = "%H%x1f%h%x1f%an%x1f%aI%x1f%s" + commits = [ln for ln in git("log", "-n", str(N), "--format=" + fmt, PINNED_REV).splitlines() if ln.strip()] + rows = [] + for ln in commits: + full, short, author, date, subject = ln.split("\x1f") + ns = git("show", "--name-status", "--format=", full) + files = [l2.split("\t", 1)[1] for l2 in ns.splitlines() if l2.strip()] + rows.append( + { + "rank": len(rows) + 1, + "full": full, + "short": short, + "author": author, + "date": date, + "subject": subject, + "files": files, + } + ) + return rows + + +def tsv(rows): + b = ["Rank\tHash\tFull\tAuthor\tDate\tSubject\tFiles"] + for r in rows: + b.append( + "\t".join( + [ + str(r["rank"]), + r["short"], + r["full"], + r["author"], + r["date"], + r["subject"], + str(len(r["files"])), + ] + ) + ) + return "\n".join(b) + "\n" + + +def json_rows(rows): + return json.dumps(rows, indent=2) + "\n" + + +def detail(rows): + b = ["Rank\tHash\tFile"] + for r in rows: + for f in r["files"]: + b.append("\t".join([str(r["rank"]), r["short"], f])) + return "\n".join(b) + "\n" + + +def md(rows): + b = [ + "# Troupe repository commit history - last 20 commits (pinned to HEAD)", + "", + "Source: `git -C /root/troupe-standup log -n 20 --format='%x1f%H%x1f%h%x1f%an%x1f%aI%x1f%s'` @ {0}".format(PINNED_REV), + "", + "Extract-lane table: `Files` = number of distinct paths changed in the commit " + "(git show --name-status), re-derived and verified against git in CHECK.", + "", + "| Rank | Hash | Author | Date | Subject | Files |", + "| --- | --- | --- | --- | --- | --- |", + ] + for r in rows: + b.append( + "| {0} | {1} | {2} | {3} | {4} | {5} |".format( + r["rank"], r["short"], r["author"], r["date"], r["subject"], len(r["files"]) + ) + ) + return "\n".join(b) + "\n" + + +def read(name): + with open("{0}/{1}".format(OUT_DIR, name)) as fh: + return fh.read() + + +def main(): + rows = derive_rows() + derived = { + "commits.tsv": tsv(rows), + "commits.json": json_rows(rows), + "commits_detail.tsv": detail(rows), + "commits.md": md(rows), + } + failures = [] + for name in FILES: + exp = derived[name] + got = read(name) + if got != exp: + failures.append( + "{0}: committed {1} bytes, git-derived {2} bytes".format(name, len(got), len(exp)) + ) + + # Independently re-check the Files column is the true changed-path count. + for r in rows: + if not r["files"]: + failures.append("rank {0} {1}: Files=0".format(r["rank"], r["short"])) + + if failures: + print("CHECK FAIL") + for f in failures: + print(" -", f) + return 1 + print( + "CHECK PASS | re-derived {0} commits from live HEAD {1} (git log -n 20 {1}); " + "commits.tsv/json/detail.tsv/md byte-identical to git-derived bytes; " + "Files column = true changed-path count".format(len(rows), PINNED_REV) + ) + return 0 + + +if __name__ == "__main__": + sys.exit(main())