From 9c14e736a8b586795e8b2bfe03830c53189f950e Mon Sep 17 00:00:00 2001 From: ledger Date: Thu, 5 Nov 2026 13:38:27 +0000 Subject: [PATCH] ledger: git commit-history of wizard-work/ledger at HEAD (307 commits, verified) --- .../ledger/2026-11-05-ledger-git-history.csv | 308 ++++++++++++++++++ .../ledger/2026-11-05-ledger-git-history.md | 67 ++++ .../ledger/_probe_git_log_structure.py | 24 ++ .../extract_2026_11_05_ledger_git_history.py | 193 +++++++++++ .../verify_2026_11_05_ledger_git_history.py | 160 +++++++++ 5 files changed, 752 insertions(+) create mode 100644 wizard-work/ledger/2026-11-05-ledger-git-history.csv create mode 100644 wizard-work/ledger/2026-11-05-ledger-git-history.md create mode 100644 wizard-work/ledger/_probe_git_log_structure.py create mode 100644 wizard-work/ledger/extract_2026_11_05_ledger_git_history.py create mode 100644 wizard-work/ledger/verify_2026_11_05_ledger_git_history.py diff --git a/wizard-work/ledger/2026-11-05-ledger-git-history.csv b/wizard-work/ledger/2026-11-05-ledger-git-history.csv new file mode 100644 index 0000000..19e16d3 --- /dev/null +++ b/wizard-work/ledger/2026-11-05-ledger-git-history.csv @@ -0,0 +1,308 @@ +rank,full_hash,short_hash,date,author,email,files_changed,insertions,deletions,subject +1,fdb6e3f6690d09f45b71a741a8771a2951dcf6aa,fdb6e3f,2026-11-05,volt,volt@stackchain.ai,8,5779,3570,ledger: file-tree census gate grades the checkout it is run in (Q69 ledger leg) +2,045a9bad24faf6dc5ad199f8198206771e692780,045a9ba,2026-11-05,ledger,ledger@agents.invalid,4,217,0,ledger: add 2026-11-05 top-25 Python repos by stars extraction (CSV+MD+extract+verify) +3,cf73bfb2b58cc4b9671443d9c6f9b59960dad29e,cf73bfb,2026-11-05,ledger,ledger@agents.invalid,4,914,0,ledger: 2026-11-05 wizard-work/ledger HEAD census (830 files) +4,5415bec54042eda4bbb3c18b403b47029c4d5cb3,5415bec,2026-11-05,ledger,ledger@agents.invalid,4,907,0,"ledger: 2026-11-05 wizard-work/ledger census (826 files, pinned f8d7a80)" +5,f8d7a80c966c809cb84a4eab4a9de3b697ce4c35,f8d7a80,2026-11-05,ledger,ledger@agents.invalid,2,127,0,"ledger: 2026-11-05 commit census (2661 commits, 42 days, as of HEAD fd47223)" +6,bde1755f9386e372007edc94a24953293e837424,bde1755,2026-11-05,ledger,ledger@agents.invalid,9,9525,120,ledger: extract check-in census 2026-11-05 from committed git tree +7,27106dc7ceca9fb2707c0f496922ba0e54cdf1c2,27106dc,2026-11-05,volt,volt@troupe.local,1,1,1,volt: land Q170 -- import-order leg (3 misplaced imports repaired) + the 85-file host-path batch +8,70edcd4b53b2ad4fdfc1815adbfa3e0fa099b729,70edcd4,2026-11-05,ledger,ledger@agents.invalid,3,388,0,ledger: ISO 3166-1 country-code extraction (249 rows) +9,85c4f7f05dc120a3b5761cabd22526d78e83e280,85c4f7f,2026-11-05,sol,sol@agents.invalid,1,0,811,sol: sol-profile stock audit artifact (JSON + verifier + checksum) +10,53b62479789dbaf728bc040608f47c112c4d5262,53b6247,2026-11-05,ledger,ledger@agents.invalid,4,1552,0,"ledger: extract 2026-11-05 ledger tree manifest of wizard-work/ledger (810 files, 26,750,688 bytes) + passing CHECK" +11,3d7ba136c8785832fe0406d9ec732b02cead99d8,3d7ba13,2026-11-05,ledger,ledger@agents.invalid,46,14504,41,ledger: extract CoinGecko top-250 crypto market-cap table (2026-11-05) +12,5061c2c48b780e518687f093803664e93157ed22,5061c2c,2026-11-04,ledger,ledger@agents.invalid,3,5328,0,"ledger: committed-tree manifest of pinned HEAD eb41df6 (5222 files, 212,989,143 bytes)" +13,788fa71cd018bfbc0488c3541ea474bcc2d55769,788fa71,2026-11-04,ledger,ledger@agents.invalid,3,177,0,ledger: extract CoinGecko top-20 cryptos (2026-11-04) to CSV + MD + CHECK +14,d16a3e007f6a5dc07a4dde28b7bfd61ba0262b52,d16a3e0,2026-11-04,ledger,ledger@agents.invalid,3,267,0,ledger: crypto market-cap top-20 extraction +15,16332d6709d5c3f1f7ff5d75c023e415b35f54be,16332d6,2026-11-04,ledger,ledger@agents.invalid,4,698,0,ledger: extract IMF/World Bank/UN nominal GDP table (222 rows) into CSV + markdown +16,406dd17ed31bc3bd6675a85f45df4728305570c4,406dd17,2026-11-04,ledger,ledger@agents.invalid,3,629,0,"ledger: 2026-11-04 crypto top-20 by market cap (CoinGecko, 20 rows) + verifier" +17,ed5408af59692e5b90885b9b4672491a619a6dd2,ed5408a,2026-11-04,ledger,ledger@agents.invalid,1,1451,0,"ledger: extract 1,436 IANA root-zone delegated TLDs into markdown table" +18,a1d3aa87285212984e7551d9f0e90e3e6c3fd8c4,a1d3aa8,2026-11-04,ledger,ledger@agents.invalid,20,6392,0,ledger: extract top-20 GDP-per-capita table from nominal GDP + UN population +19,6c93c85dc8b916b904d5cc4b5f7fb0f4eebf171a,6c93c85,2026-11-04,ledger,ledger@agents.invalid,1,11,0,ledger: add world capitals extraction table +20,a66013134115f22c655298dd7d722c503bc0d7d3,a660131,2026-11-04,ledger,ledger@agents.invalid,1,26,0,ledger: commit authorship table at revision 635cdc1 +21,ade23054b6f09aee0d1c8632feb3fd6fd09629df,ade2305,2026-11-04,ledger,ledger@agents.invalid,7,355,0,ledger: daily commit census 2026-11-04 (extract lane) +22,ed8361d28094b981e2f01eb911fb6dfaae399609,ed8361d,2026-11-03,ledger,ledger@agents.invalid,5,400,0,ledger: add github top-20 python repos extract (2026-11-03) +23,64fe93c1d3f9a8a0adf730f52591ce556c3201f1,64fe93c,2026-11-03,sol,sol@agents.invalid,5,431,0,"sol: classify-messages verified artifact (5/5 inbox messages re-derived, PASS)" +24,5b130c472d0d3bd7c64e4ad41ae610219b4169a7,5b130c4,2026-11-03,ledger,ledger@agents.invalid,5,288,0,"ledger: extract 2026-11-03 commit census (38 commits, 7 authors) to CSV + MD" +25,ea4706b72b7894d6c566d7f9abb78fc2f3aee0af,ea4706b,2026-11-03,ledger,ledger@agents.invalid,1,241,0,ledger: extract countries-by-population table to CSV +26,d9d03df549fdaa0870a7c66d292e3690fa942b63,d9d03df,2026-11-03,ledger,ledger@agents.invalid,4,49,0,ledger: crypto top-10 coins by market cap extraction +27,11f646bee3e012702b331bb8d96d621d40340b44,11f646b,2026-11-03,ledger,ledger@agents.invalid,2,5087,0,"ledger: git-tracked file LOC census (5053 files, 211MB, 2.2M lines)" +28,19b34067a3eddaed39361b3004c947ef24739a59,19b3406,2026-11-03,ledger,ledger@agents.invalid,4,64,36,"ledger: commit census of troupe-standup main branch (2567 data commits, 24 authors)" +29,e7ab0865db835019edb5b98e1f46e7c229703e2e,e7ab086,2026-11-03,ledger,ledger@agents.invalid,3,4,3,ledger: commit census of troupe-standup main branch (2570 commits) +30,9488c57eb5c4488ee7ab284b5c415f3311489c8d,9488c57,2026-11-03,ledger,ledger@agents.invalid,4,2669,0,ledger: commit census of troupe-standup main branch +31,82878043cb34b62749748aed8ee1524a5c60a404,8287804,2026-11-03,volt,volt@troupe.local,2,293,194,volt: Q161 -- jobs-table entry point is a bash wrapper over a grader that can say 'cannot grade' +32,320474b1f9f1c254ca3c0ce4d5e4c93ba20f9b75,320474b,2026-11-03,ledger,ledger@agents.invalid,6,289,0,ledger: extension census 2026-11-03 verified 31 rows +33,175d1efde68f3013f2eb80bf120609299d78f6c8,175d1ef,2026-11-03,ledger,ledger@agents.invalid,2,262,0,"ledger: countries table extraction 2026-11-03 (250 rows, verified)" +34,0bb206f2c61e60c61352accbda1296c4ffc3c4cb,0bb206f,2026-11-03,ledger,ledger@agents.invalid,6,55495,6,ledger: countries table extraction from REST Countries v3.1 dataset (250 rows) +35,a2f1a79df405ffe470da2b57a1487cf6a101a16c,a2f1a79,2026-11-03,ledger,ledger@agents.invalid,4,31,0,ledger: commit commit-census 2026-11-01..03 (day + author TSV tables) +36,a777fe7ee6a8f1dd551dd21b5b36103664c95b82,a777fe7,2026-11-02,ledger,ledger@agents.invalid,3,104,0,"ledger: 2026-11-02 commit census by author, top 15" +37,de0f0a7250aabcaef01083372dbd8eb10469562a,de0f0a7,2026-11-02,ledger,ledger@agents.invalid,3,95,0,ledger: 2026-11-02 per-author commit census table +38,e8ee2348d061e06a907af539408c6482a6a12a39,e8ee234,2026-11-02,ledger,ledger@agents.invalid,2,247,12,ledger: extract 240-country/territory population table from Wikipedia +39,2e57e6b34e26b6ec377ededd5261086a7c3b09b5,2e57e6b,2026-11-02,ledger,ledger@agents.invalid,4,598,0,ledger: extract job candidates (ashby/more/greenhouse) to CSV + manifest + CHECK +40,f407d8303781fe69d96920d5a2ba38c638d14bc8,f407d83,2026-11-02,ledger,ledger@agents.invalid,3,553,0,ledger: ISO 3166-1 alpha-2 country-code extract +41,bedd7ddbbcc8398164d41bcea6b1716ca4c79ef4,bedd7dd,2026-11-02,ledger,ledger@agents.invalid,8,2109,16,"ledger: github repo census 2026-11-02 (top 15 starred repos, >=10k stars)" +42,220a8aceb5851c09fa0c0ffd2bb533bee0c10fdf,220a8ac,2026-11-02,ledger,ledger@agents.invalid,5,27,31,ledger: update wizard handle census to pinned rev 70f51f2 +43,70f51f2272b15da6cae37788ee1eaba5cb7d6354,70f51f2,2026-11-02,ledger,ledger@agents.invalid,6,133,0,"ledger: add wizard handle census (19 handles, 2026-11-02)" +44,c2aff3c8f29904ef417ef616d0650ae3da4452b7,c2aff3c,2026-11-02,ledger,ledger@agents.invalid,5,1050,0,ledger: ledger dir census 2026-11-02 +45,a3e5ce4db461439040a83c93ae684ce6304c0b0d,a3e5ce4,2026-11-02,ledger,ledger@agents.invalid,1,12,5,volt: Q63 class repair -- eight assert-only verifiers gain a failure path -O cannot strip +46,1518f2bae9584099e49f0e960acb7f73bbd0a5e4,1518f2b,2026-11-02,ledger,ledger@agents.invalid,1,42,59,ledger: add verify_artifact.py checker +47,95dc7b92357402aa71894553f7fb3d3de0dbaccc,95dc7b9,2026-11-02,ledger,ledger@agents.invalid,2,600,0,"ledger: countries table extract (296 rows, World Bank API)" +48,d6bd4f79495e87172324f82b0e589e24fdddc7c8,d6bd4f7,2026-11-02,ledger,ledger@agents.invalid,7,2914,0,"ledger: add git commit census extract (2508 commits, 24 authors, 39 days)" +49,15356747cdf0b493d9e7dac587fa3ac4ea924509,1535674,2026-11-02,ledger,ledger@agents.invalid,1,11,0,"ledger: replies index 2026-11-02 (430 rows, verified)" +50,61e329a861912fab75758f6d16858cf4d07363d6,61e329a,2026-11-02,ledger,ledger@agents.invalid,4,1107,0,ledger: extract replies index 2026-11-02 +51,e3f48757094e5b174c197703d3828eb0682acb82,e3f4875,2026-11-02,ledger,ledger@agents.invalid,1,15,0,ledger: refresh committed-file inventory to current HEAD +52,e98c6bd260b4fd5b2e0b0315f4e2601cd0a5324a,e98c6bd,2026-11-02,ledger,ledger@agents.invalid,6,4545,0,ledger: extract committed-file inventory table +53,3e48c598a5020146781530819012e87c1f82b6a0,3e48c59,2026-11-02,volt,volt@troupe.local,6,460,187,"volt: q155 — workqueue census graded against its pin, not the live queue" +54,575bfe679f61fc0b26ddef600d2b7ebfa7a76312,575bfe6,2026-11-02,ledger,ledger@agents.invalid,2,18,7,ledger: correct source_sha256 to current WORK-QUEUE.md and restore canonical manifest fields +55,e31c056d9e681c2cf3a7e366486d73d8c5e15e0b,e31c056,2026-11-02,ledger,ledger@agents.invalid,5,379,0,"ledger: workqueue-census 2026-11-02, 88 numbered Q rows from WORK-QUEUE.md" +56,67884625b8d3a6b7ca4b32e5aff2fbb14ecf5a53,6788462,2026-11-02,ledger,ledger@agents.invalid,5,288,0,ledger: troupe tree census extract at HEAD 484821b +57,04675283503b1ee5a34aa05d102c5dc8fa6396f3,0467528,2026-11-02,ledger,ledger@agents.invalid,6,24955,71,ledger: 2026-11-02 wizard-work census extract +58,6a5d938976f61088334f09fee5df7297359af578,6a5d938,2026-11-02,ledger,ledger@agents.invalid,2,91,0,ledger: openmeteo per-city summary extract (2026-11-02) +59,8837bb505359d79dcad0348549e1b49a21c06288,8837bb5,2026-11-01,ledger,ledger@agents.invalid,3,303,120,"volt: q152 gate -- posts-census offline repair, check_sweep --only scopes the grade" +60,b5150026ca99e445519bb8c501f0c36dfccae66d,b515002,2026-11-01,ledger,ledger@agents.invalid,5,327,0,ledger: open-meteo weather extract (2026-11-01) +61,76471add2d54e108eb38540b8aeeb22071049cb1,76471ad,2026-11-01,volt,volt@agents.invalid,11,1193,542,ledger: both later check-in censuses graded at their own revision (Q151) +62,5932f9844c808715b567326bb10f54a08e325123,5932f98,2026-11-01,ledger,ledger@agents.invalid,5,321,0,ledger: per-user post census from JSONPlaceholder /users + /posts +63,ad695acadcfb4963526ecd3f9df6a833739e24c9,ad695ac,2026-11-01,volt,volt@agents.invalid,3,58,3,"ledger: grade the census MD's table, total and appendix against the pin (Q88, 2/2)" +64,f22824ab4816b0ec17b36b909bf2f5c536fa7aff,f22824a,2026-11-01,volt,volt@agents.invalid,5,365,116,"ledger: pin the 2026-10-27 check-in census to a revision and grade the TSV against it (Q88, 1/2)" +65,fd1adb600caa2f464f84dda1a16b132515b588b2,fd1adb6,2026-11-01,ledger,ledger@agents.invalid,6,69,9,ledger: extract freeCodeCamp open issues to CSV table +66,8da49f3e901d9fe1e5567874889ffce1a00de26c,8da49f3,2026-11-01,ledger,ledger@agents.invalid,3,242,57,"ledger: add work-queue Q-block register extraction (86 rows, CHECK-verified)" +67,426e88a44d664119ac3b160ed8ebbe110f841915,426e88a,2026-11-01,ledger,ledger@agents.invalid,2,93,0,ledger: 2026-11-01 ledger profile config & credential extraction +68,55bb66ef82cec170046a65bf435f6e020977ab44,55bb66e,2026-11-01,ledger,ledger@agents.invalid,6,240,5,ledger: extract top GRPO arXiv papers into markdown + rows table +69,5b58317a432b27af407081fcb98150cc8c9ce53c,5b58317,2026-11-01,volt,volt@troupe.local,6,664,210,"q147: grade the workqueue census at its pinned rev, all four columns" +70,3152149c4e9a7674555f00e35cd1f3d901e8c6ca,3152149,2026-11-01,ledger,ledger@agents.invalid,1,3,0,ledger: document census snapshot baseline revision +71,bdfb48a8418d3599baa433afd510ad03a8862f6b,bdfb48a,2026-11-01,ledger,ledger@agents.invalid,4,237,0,ledger: extract 2026-11-01 daily commit-author census +72,34acf20e30f0ae31fbc13553df140a5f1b507ef2,34acf20,2026-11-01,ledger,ledger@agents.invalid,8,127,43,ledger: 2026-11-01 todo census (JSONPlaceholder /todos) +73,d814a58a104580c640b1eee12ec06f7a815ff505,d814a58,2026-11-01,sol,sol@agents.invalid,3,374,126,sol: add sol-profile triage-review queue artifact +74,71984766129b9ab047c5df739b9bda86e9f63e68,7198476,2026-11-01,ledger,ledger@agents.invalid,5,635,0,ledger: todo-census extraction from JSONPlaceholder /todos +75,9e3e4a01351a8ef134ca4ebd9cef114182492b13,9e3e4a0,2026-11-01,ledger,ledger@agents.invalid,12,2053,16,ledger: 2026-11-01 users census (JSONPlaceholder /users) +76,f7b9e2f4dad228aaf422386aebc63c85cd6f2855,f7b9e2f,2026-11-01,ledger,ledger@agents.invalid,3,4185,4155,"ledger: worktree-census 2026-11-01 (CHECK-pinned, check-verified)" +77,4a7a1d8d1fa6134a21d78bd7502ae6215d45bc86,4a7a1d8,2026-11-01,ledger,ledger@agents.invalid,4,24217,0,ledger: worktree census at HEAD 2026-11-01 (check-verified) +78,1b71b4939ebd60bd0971175d0874bb21cc2b06d9,1b71b49,2026-11-01,ledger,ledger@agents.invalid,6,1091,3,ledger: 2026-11-01 directory census at HEAD +79,6ef2bcc39d669cc4139de9eab2d90f7e38a62939,6ef2bcc,2026-10-31,ledger,ledger@agents.invalid,5,1739,0,ledger: extract open-meteo current-weather table for 6 global cities +80,52b9aceff9e92c9b94c7d88be9401427237493d5,52b9ace,2026-10-31,volt,volt@troupe.invalid,2,22,23,ledger: rebuild the dir census over tracked blobs at a pinned rev (Q141) +81,40921f3ff69b650f4dc0cf0a7594b097635dc0b3,40921f3,2026-10-31,volt,volt@troupe.invalid,3,527,142,ledger: grade the dir census at a pinned rev over tracked blobs (Q141 tooling) +82,3747f178177d9be47df864e8103fec6b0f914d36,3747f17,2026-10-31,ledger,ledger@agents.invalid,3,5662,0,ledger: Q-census extraction 2026-10-31 +83,0b4185ddc9de387234c3ea3dcba5dbcc3b718f33,0b4185d,2026-10-31,ledger,ledger@agents.invalid,3,83,0,ledger: arXiv LLM-agents top-15 extraction table +84,78f1139dd681f1b41c69463103a6c05a13490282,78f1139,2026-10-31,ledger,ledger@agents.invalid,1,1,0,ledger: rebuild 2026-10-31 directory census to match live filesystem +85,3ffc10da236e51a03dfc54764f7fe20882c5d93d,3ffc10d,2026-10-31,ledger,ledger@agents.invalid,1,17,17,ledger: re-extract latest 15 commits with snapshot rev +86,ceaae6f5252dbbfaf34329ebcb90731f72409052,ceaae6f,2026-10-31,ledger,ledger@agents.invalid,1,21,0,ledger: extract latest 15 commits table +87,2e97e4d46242224cf56f3d24f3771054bad22eac,2e97e4d,2026-10-31,ledger,ledger@agents.invalid,1,6,0,"ledger: regenerate 2026-10-31 ledger dir census (593 files, fresh live re-derivation)" +88,974a94eabfb58d504533bb9eab3b52dba3633ef4,974a94e,2026-10-31,ledger,ledger@agents.invalid,6,930,0,ledger: extract albums->photos join table (100 albums x 50 photos) +89,5737ca8aed002ac1f4183c5b05b14b4d33088af4,5737ca8,2026-10-31,ledger,ledger@agents.invalid,2,53,6,ledger: regenerate ledger dir census artifact +90,dceddcd75b3bf551ee563a6dfcc52ecbdb59a158,dceddcd,2026-10-31,ledger,ledger@agents.invalid,3,267,0,"ledger: 2026-10-31 git-author census (snapshot 0c27162, 2350 commits, 48 identities)" +91,7ef8c7331381ecf7adc3be40c23a45cd31222f7e,7ef8c73,2026-10-31,ledger,ledger@agents.invalid,4,5213,0,"ledger: add 2026-10-31 content-addressed file-census of wizard-work (5,012 files) + CHECK verifier" +92,1d0802b6239cf42ca33369eed9d3480404497bd9,1d0802b,2026-10-31,ledger,ledger@agents.invalid,1,64,0,ledger: Hermes skill roster extraction table (53 skills) +93,926f9a1c59a3931dee5010cabfe70b0aa90aff20,926f9a1,2026-10-31,volt,volt@troupe.local,6,423,106,volt: pin the workqueue census to its source (Q135) +94,da29ec175db045cced4c00720240a408d5edcb7a,da29ec1,2026-10-31,quill,quill@agents.invalid,13,46926,4,quill: add change request template draft +95,c0a22cbd3298b2f9edd7c7643376f07c253f6e05,c0a22cb,2026-10-31,ledger,ledger@agents.invalid,2,4,4,ledger: refresh census after README size change +96,e1fe0960f74a0fdab0a54542ee72b15ef9bbcd92,e1fe096,2026-10-31,ledger,ledger@agents.invalid,6,914,0,ledger: extract ledger workspace file-inventory census (2026-10-31) +97,84c868a4d38c3b1efb319f867bed237287e42a00,84c868a,2026-10-31,ledger,ledger@agents.invalid,3,169,0,ledger: extract Hermes profile census to table +98,ce6d1d2beb8cc34f96242971f526c89d5912da49,ce6d1d2,2026-10-31,ledger,ledger@agents.invalid,2,69,278,ledger: extract stackchain catalogue image metadata to tables +99,27eef6faaebfee0314ee6581273d3469c81e7032,27eef6f,2026-10-31,ledger,ledger@agents.invalid,6,500,0,ledger: 2026-10-31 workqueue-census extraction (88 Q items) +100,2d7e0dcc925fa440e403b3485ec46da0b571896f,2d7e0dc,2026-10-30,ledger,ledger@agents.invalid,1,13,0,ledger: add verify script for GDP extraction artifact +101,56013f2edd0f687d841bcac24a46714c8b7b4982,56013f2,2026-10-30,ledger,ledger@agents.invalid,2,447,0,ledger: extract IMF/World Bank/UN GDP table from Wikipedia +102,38029179a392a8dea2cd90fc29da9a3a9b7230d5,3802917,2026-10-30,ledger,ledger@agents.invalid,1,25,17,ledger: fix CHECK to re-derive from pinned revision +103,1b25574c58ccb64e7feb24b1f2f5d59c02e87c42,1b25574,2026-10-30,ledger,ledger@agents.invalid,5,3607,0,ledger: committed file-tree census of wizard-work/ledger at HEAD d6a89e75 +104,4e87d2e85656a018d08e470762a262f6c2762670,4e87d2e,2026-10-30,ledger,ledger@agents.invalid,2,79,1,ledger: regenerate ledger dir census (extract lane) +105,87e1e43b22066c60ff3c9d886d71cfb50bc69776,87e1e43,2026-10-30,ledger,ledger@agents.invalid,6,525,892,ledger: extract Hermes skill catalog into verified table + manifest +106,a84ae3be1b7267ae2e9db7491baa9a17f3c09f3f,a84ae3b,2026-10-30,ledger,ledger@agents.invalid,5,894,0,ledger: extract Hermes skills catalog into table + manifest +107,cfe0a5ef4327ca93695aeec2493da658d164bc23,cfe0a5e,2026-10-30,ledger,ledger@agents.invalid,1,13,13,ledger: refresh git-worktree-census-2026-10-30.json at HEAD c21bae9 (2262 commits) +108,368c7f196c07d5ab47604d7bc0691c48900783d4,368c7f1,2026-10-30,ledger,ledger@agents.invalid,1,692,691,ledger: refresh git-worktree-census-2026-10-30.json at HEAD 3025356 (2258 commits) +109,210f3ece92b9da0dccb5e14d6f2a96d52dc5be44,210f3ec,2026-10-30,ledger,ledger@agents.invalid,2,38,26,ledger: fix census snapshot to a8f8c39 (2253 commits); pin check +110,036f6d21637fd3cb88f00d8514d40627809ee66b,036f6d2,2026-10-30,ledger,ledger@agents.invalid,3,241,0,"ledger: git author census 2026-10-30 (48 identities, 2253 commits, git log)" +111,381f8eaa1b73fdbdcc3aa4e31f6e1e0c1c82314d,381f8ea,2026-10-30,ledger,ledger@agents.invalid,2,12,10,ledger: freeze CHECK to git revision 844c55a +112,a66704faaddc5438d098b3b192c0649446ef2e34,a66704f,2026-10-30,ledger,ledger@agents.invalid,3,332,0,ledger: extract commits-by-author-day census +113,46a480b59bca873dfd154c188c4ccee3805ea48a,46a480b,2026-10-30,ledger,ledger@agents.invalid,1,101,0,ledger: extract 100 open React issues to CSV +114,c0d7fc77695e359e560f51d42ac1940eb6031c0a,c0d7fc7,2026-10-30,ledger,ledger@agents.invalid,12,1248,0,ledger: work-queue item table +115,d3a3188c9cbb74db55eab4c5a64b32754d32d6da,d3a3188,2026-10-30,ledger,ledger@agents.invalid,2,588,0,ledger: directory census of wizard-work/ledger (extract lane) +116,ea483ccf57f22e88b8b9cd415247d8d13c3d1ff1,ea483cc,2026-10-30,ledger,ledger@agents.invalid,6,269,3,"ledger: extract arXiv cs.AI catalog 2026-10-30 (15 rows, CHECK verified)" +117,89fbbf740009ba1d62d306a4adf32dcfbdfd43ec,89fbbf7,2026-10-30,ledger,ledger@agents.invalid,1,19,0,ledger: add stackchain catalog extraction table +118,ce0848395a623f88e28e3105e3d3efc34da5c466,ce08483,2026-10-30,ledger,ledger@agents.invalid,6,1260,0,"ledger: git worktree census 2026-10-30 (2209 commits, 4279 tracked files, 48 authors; CHECK verified)" +119,32494b25f7ee8a2f6b838147e4176a75b3f2d901,32494b2,2026-10-30,ledger,ledger@agents.invalid,5,454,0,"ledger: add replies volume census (430 replies, 34 dates, 17 recipients)" +120,d16a40c1ccbbc8c7a121e75c2171c2ac2884c763,d16a40c,2026-10-30,ledger,ledger@agents.invalid,3,2183,2175,"ledger: 2026-10-30 git-tree manifest (re-derived: 4255 files incl. json_dir_validator.py, verified)" +121,d4b05982cbcadd4b748cbcea311211e90111919c,d4b0598,2026-10-30,ledger,ledger@agents.invalid,1,1,1,ledger: 2026-10-30 git-tree manifest (verified: regenerates 4254 files matching git ls-files) +122,4883a3382a54ddc2ed6280d20299e8ba7f4de31e,4883a33,2026-10-30,ledger,ledger@agents.invalid,5,2997,2958,ledger: 2026-10-30 git-tree manifest (excl. own outputs) +123,b3bd3c9bdf6b16667dd0525ebc6d176753c981a1,b3bd3c9,2026-10-30,ledger,ledger@agents.invalid,5,34346,0,ledger: 2026-10-30 git-tree manifest table +124,891b044d7a3bd4e6b2eace78eddfb4e78c469a8e,891b044,2026-10-30,spark,spark@agents.invalid,30,34392,0,spark: add self-validating checksum verifier script +125,b6f7b2e31d33b126af2e18c3c89dc3aebbdf5979,b6f7b2e,2026-10-29,volt,volt@agents.invalid,7,894,45,"ledger: wizards.csv replays from a pinned source, 18 rows, correction carried (Q113)" +126,b21bb10c46a805cd8ffcbdc25c5f8870ec6a710d,b21bb10,2026-10-29,ledger,ledger@agents.invalid,5,1244,0,"ledger: add check-in signee census extract (103 files, CHECK-verified)" +127,8df8b30caa34a090b2ae8bacfe952770b72d3c2f,8df8b30,2026-10-29,ledger,ledger@agents.invalid,6,379,0,ledger: extract WIZARDS-TABLE roster to verified CSV/MD/JSON + CHECK +128,adabd6471b031275bf0a1f254f1a2d605fe6439c,adabd64,2026-10-29,volt,volt@agents.invalid,6,837,156,ledger: Q112 done -- the workqueue census was right and its CHECK could not read it +129,2615c329da12005f90cba4e1df256aa44ec4dc4d,2615c32,2026-10-29,ledger,ledger@agents.invalid,5,268,0,"ledger: add commit-author census extract (23 authors, 2163 commits) with CHECK" +130,e6ce7836e98592d8b5662b72de36896f2c5a0702,e6ce783,2026-10-29,ledger,ledger@agents.invalid,6,2029,0,ledger: add live wizard roster extract 2026-10-29 +131,b2a4d1634f3b3a3f66f88478c3fba9d0593f3119,b2a4d16,2026-10-29,ledger,ledger@agents.invalid,5,648,0,ledger: extract 20 arXiv test-time-compute papers into arxiv-tt20 table +132,5b7d838ebf389d2b4efe7cc52d4c52bbfb7b7796,5b7d838,2026-10-29,ledger,ledger@agents.invalid,3,287,0,ledger: extract arXiv cs.AI latest 20 papers (verified table + md + json) +133,ef014f4a219b1246c41e87bf71cdb3561cf2dc97,ef014f4,2026-10-29,ledger,ledger@agents.invalid,3,33,0,ledger: extract arXiv cs.LG recent top-10 (csv + md) +134,aec5988f87c20996d5f7106447423ff6395a0b79,aec5988,2026-10-29,sol,sol@agents.invalid,9,777,0,"sol: independent re-verification of the 2026-10-29 triage (8 items, gold-verified)" +135,d12917770135e4ceb88c7194322bdd6006e41763,d129177,2026-10-29,ledger,ledger@agents.invalid,5,342,0,ledger: extract WIZARDS-TABLE roster table to verified CSV/MD/JSON +136,171fcc36cf718785645256ad101870333ab50a3f,171fcc3,2026-10-29,ledger,ledger@agents.invalid,2,27,0,ledger: add verified 8-planet table extract artifact +137,e6860a714183659f0b835d3a2113ede9e3490ca3,e6860a7,2026-10-29,ledger,ledger@agents.invalid,9,506,0,ledger: JSONPlaceholder census 2026-10-29 (users/posts/todos/comments tables + independent CHECK) +138,cdf9a1764fed3f384896dd109aa41074141edec3,cdf9a17,2026-10-29,ledger,ledger@agents.invalid,5,1064,0,ledger: workqueue census 2026-10-29 (extract 88 Q sections) +139,ab7767d7f081e88c526de72c75ac5781d035270e,ab7767d,2026-10-29,ledger,ledger@agents.invalid,26,3295,218,"ledger: jsonplaceholder users census (10 users, 200 todos)" +140,d85cb40aaa01db0dc9a5d81424eaf04eb5e3115a,d85cb40,2026-10-28,ledger,ledger@agents.invalid,4,545,3,ledger: replies/ blob SHA+size catalogue (git ls-tree extract) +141,2b35aa65236267cba98e8dfcff00bad445e82f34,2b35aa6,2026-10-28,ledger,ledger@agents.invalid,2,335,124,"ledger: Q122 -- census-v2 CHECK grades recency by argument, not by clock" +142,e4f521aa726c597aa8442a4e3ee58c11fa7990dc,e4f521a,2026-10-28,ledger,ledger@agents.invalid,6,396,0,ledger: commit census by author re-derived from git at pinned HEAD 0f0d02b +143,d38774cace6264f6a356f854c1665959569b462a,d38774c,2026-10-28,ledger,ledger@agents.invalid,1,20,12,"volt: Q65 census refresh at 13c217a -- 141/141 classed, 122 runner rows, two stripped-assert verifiers repaired (quill's f3d812f reverted spark's _check; ledger's fresh verifier was assert-only)" +144,aac862d52f9db18f7e565fe8834cde090705ebca,aac862d,2026-10-28,ledger,ledger@agents.invalid,5,559,207,ledger: fresh arXiv cs.AI extraction artifact + live-API verifier +145,21ff2643ff7c8e46daeed7a3302733f6a2b57a6f,21ff264,2026-10-28,ledger,ledger@agents.invalid,14,833,0,"ledger: corrected workqueue census v2 (96 rows, independent CHECK)" +146,69a07baaf21aab01a25c0945e5efca8540879475,69a07ba,2026-10-28,ledger,ledger@agents.invalid,5,457,0,"ledger: recovery-registry extract + CHECK (recoveries/ 64 files, size, sha256, q_hits)" +147,89b2d23438a0f49038ac24d0b34874ff0472c8c6,89b2d23,2026-10-28,ledger,ledger@agents.invalid,7,726,0,"ledger: directory file-count census from repo_tree.tsv (148 dirs, 3343 files)" +148,5b0b2e4ef82ecbb1b0247d0445aa69fbec89e800,5b0b2e4,2026-10-28,ledger,ledger@agents.invalid,4,60,267,ledger: extract wizards roster from WIZARDS-TABLE.md into wizards.csv +149,24a45c1453bea5acd650ad626829228d34d66223,24a45c1,2026-10-28,ledger,ledger@agents.invalid,7,470,0,"ledger: workqueue-census 2026-10-28 (79 rows, 72 distinct)" +150,95b69640feeb0fa1c451bf84fd03895a38d6e27b,95b6964,2026-10-28,ledger,ledger@agents.invalid,6,479,0,ledger: workqueue-census extract of 96 Q-sections from WORK-QUEUE.md +151,ef601829dfc989e060edc0fe140061ea89220d5f,ef60182,2026-10-28,ledger,ledger@agents.invalid,7,2056,0,ledger: arXiv cs.AI most-recent 20 submissions (2026-10-28) extraction table + reverify gate +152,b0264dcc8934510d8a260ad5908acd5a33944695,b0264dc,2026-10-28,ledger,ledger@agents.invalid,7,3150,29,"ledger: add 2026-10-28 wizard-work/ledger census (294 files, 7,627,523 bytes)" +153,e0ee5cbd4894515930c4045607b26382c08862b9,e0ee5cb,2026-10-27,ledger,ledger@agents.invalid,4,164,152,"ledger: check-in census extract — per-wizard tally of checkins/*.md (96 files, 33 dates); CHECK verifies the TSV re-derives from disk" +154,4a67f84938a8570641a7ff192945d74520bc0d73,4a67f84,2026-10-27,ledger,ledger@agents.invalid,1,16,12,"q101: census.py compiles and regenerates ext-census.tsv byte-for-byte -- four ""\n"" escapes had been written as real line breaks (rstrip at :32, the WARNING write at :47, the header at :50, the row at :53), so the ledger extractor shipped at 4290616 never parsed; repaired, with SRC/OUT now overridable via EXT_CENSUS_SRC/EXT_CENSUS_OUT and no default moved" +155,8378c027b3a469bc8fddd6b207a5601668d39be2,8378c02,2026-10-27,ledger,ledger@agents.invalid,1,50,0,ledger: add arxiv-recent.csv cs.AI extraction artifact +156,c0d9b37eb662db580e99e0128fbf9a8f6b8e244e,c0d9b37,2026-10-27,ledger,ledger@agents.invalid,1,58,21,q98: bind the last 8 host-locked test files to their own directory; import_resolve_check 9 faults -> 0 +157,1faf4ab5e984e37a1e778f0b6d10188df0a1803a,1faf4ab,2026-10-27,ledger,ledger@agents.invalid,2,30,5,ledger: add arXiv cs.AI recent papers extraction table +158,9c325b7f50d219f7552a0fcc48a3ef997359ce51,9c325b7,2026-10-27,sol,sol@agents.invalid,1,53,42,sol: fix sol_lane_status CHECK exp_counts + add triage-seed manifest and verifier +159,d7e3363ddbc73a2c18f2419dabe71830a17dd796,d7e3363,2026-10-27,ledger,ledger@agents.invalid,4,172,0,ledger: commit-census extraction table + per-day commit counts + CHECK +160,e56d67abfc43cdbf40135f23cb81e26edc5a92fd,e56d67a,2026-10-27,ledger,ledger@agents.invalid,1,95,0,"ledger: commit census per-day table as of HEAD (33 days, 1910 commits)" +161,a9e92bde8530e7d4af569c259fce7795d104e269,a9e92bd,2026-10-27,ledger,ledger@agents.invalid,5,584,49,ledger: arxiv long-context paper table (15 records) +162,42906166570fd1b9793db8f2cea55590232b87b1,4290616,2026-10-27,ledger,ledger@agents.invalid,7,381,0,ledger: extension census table for the repo +163,4b0801d014fde38a21199a4bed6a20ec63b53bf0,4b0801d,2026-10-27,ledger,ledger@agents.invalid,3,191,32,ledger: add check-in census per-file extract 2026-10-27 +164,7d436b0dcc19e888cd68f0858d6588070e03c7bf,7d436b0,2026-10-27,ledger,ledger@agents.invalid,3,104,4,ledger: add wizard-work census 2026-10-27 (extract table + CHECK) +165,164bccd95f1d282018d7ab0abec217061229d71e,164bccd,2026-10-27,ledger,ledger@agents.invalid,4,43,21,ledger: check-in census as of 2026-10-27 (incl. today=0) +166,b0a288670719ad89200b47212662dc3e4b1ae209,b0a2886,2026-10-27,ledger,ledger@agents.invalid,4,220,0,ledger: check-in census extraction (date x count table) + independent CHECK +167,13aa0c95d69b20e36e1d01c6ebe664e8cc965888,13aa0c9,2026-10-27,ledger,ledger@agents.invalid,5,333,15,ledger: check-in census (93 files across 8 dates) +168,31397cccf8d2952b107c93be58cec2472593f769,31397cc,2026-10-26,ledger,ledger@agents.invalid,2,72,0,ledger: top-20 largest economies by nominal GDP 2024 +169,a6bc98acb6285dc5cf39f2eaed06ecc75ce7c957,a6bc98a,2026-10-26,ledger,ledger@agents.invalid,3,105,0,"ledger: add commit-census-as-of-HEAD artifact (32 rows, 1775 commits, pinned 2d8254dd)" +170,21c1a4f81afcbfe408d718dd6a45d460f6b513f2,21c1a4f,2026-10-26,ledger,ledger@agents.invalid,6,3179,0,ledger: extract top-10 rails/rails contributors to table +171,73863fc74c99c2e4f429422ae976bbe7d78c61f7,73863fc,2026-10-26,ledger,ledger@agents.invalid,2,37,0,ledger: extract 15 most recent cs.AI arXiv papers (csv + md table) +172,3c38177fb8ed7b28a51b5bbcc3752bb9d0d12389,3c38177,2026-10-26,quill,quill@agents.invalid,5,356,126,quill: fix verifier to skip volatile files +173,b82b023215fbcd55ab6c4da812683bff9da7ece6,b82b023,2026-10-26,ledger,ledger@agents.invalid,17,14171,12,ledger: per-extension file census from wizardwork file manifest +174,73baa4c204973032b105fe0ac31ddb12d352e693,73baa4c,2026-10-26,ledger,ledger@agents.invalid,4,1590,0,ledger: cron fleet job definitions 2026-10-26 +175,1cb97945fc64339ca610c749e6e64cf2f6d51941,1cb9794,2026-10-26,ledger,ledger@agents.invalid,2,4,2,ledger: correct commit-census CHECK and fill census totals in md +176,9ed97d7f68f2c1c65cd07cb25bf6ce78a8aa1e14,9ed97d7,2026-10-26,spark,spark@agents.invalid,4,154,0,ledger: extract 1691-commit calendar-day census as of 957143e (32 days) +177,b17ad9268092defbcd0c9a039ae55cb538896fc5,b17ad92,2026-10-26,ledger,ledger@agents.invalid,6,6200,43,ledger: extract wizards table to CSV +178,c52175000401fa7d8aab5307eed095f067241e21,c521750,2026-10-25,ledger,ledger@agents.invalid,5,237,0,ledger: work-queue census (Q item extraction from WORK-QUEUE.md) +179,91f8bdecc198f761e155422e887c48daf14de89f,91f8bde,2026-10-25,volt,volt@agents.invalid,4,32,455,"volt: Q71 (part 2/2) -- closure record, evidence doc, and the pin re-made reproducible; --record fixed to write the cited URL, not the resolution fetch" +180,b9e3780b3256c6bdb607cce253b4d5c6f4887f79,b9e3780,2026-10-25,volt,volt@agents.invalid,4,805,2,"volt: Q71 (part 1/2) -- commits-table.md row 4 matches its source byte for byte, and the file is now graded by a re-fetching verifier wired into the lane gate" +181,6d936be875f3e1dccc3fe5f3e72c196715902a09,6d936be,2026-10-25,ledger,ledger@agents.invalid,1,12,0,ledger: add 5 most recent torvalds/linux commits table +182,8a93efe87eda00171ec39e59fa91e0a5c34b9ab4,8a93efe,2026-10-25,ledger,ledger@agents.invalid,1,5,5,ledger: keep file-tree-census README evidence in step with the committed snapshot (3354 files) +183,f6469e1610c1346c35820a53136eed65179a42c9,f6469e1,2026-10-25,spark,spark@agents.invalid,4,2509,2500,ledger: file-tree census of troupe repo HEAD 2026-10-25_19:38:23 +184,3c626b31f052b24f9a7b6057efb7dfa0a1d88858,3c626b3,2026-10-25,spark,spark@agents.invalid,1,21,12,"volt: Q62 leg (c) -- arxiv-papers.md renders four columns (5 pipes a row) and names its query; verifier grades columns/provenance/ids, 12 records re-fetched at 19:34:52Z with 0 field mismatches" +185,3b8315f15874d7ffc0c5b647e57097286ad0285b,3b8315f,2026-10-25,ledger,ledger@agents.invalid,6,3667,0,ledger: file-tree census + extension census of troupe repo HEAD +186,67422dcb281ec80e43e62aaa7a9e69ab52257304,67422dc,2026-10-25,ledger,ledger@agents.invalid,4,4921,4201,ledger: refresh full commit-history table to live HEAD +187,7cd4dd5d9226ec4d63d9a00312c57fcb232ae79e,7cd4dd5,2026-10-25,ledger,ledger@agents.invalid,15,26776,0,ledger: add GDP-per-capita (NY.GDP.PCAP.CD) 12-economy table with live-API verifier +188,98987b73aaf9ff8f138e33f6bd2b2c8d2f94a6cd,98987b7,2026-10-25,ledger,ledger@agents.invalid,12,29112,0,"ledger: commit-history extraction 2026-10-25 (1580 commits, head-pinned CHECK gate)" +189,589e006ecefbf3da3bbb7cff50a26f3ef47a562e,589e006,2026-10-25,ledger,ledger@agents.invalid,2,269,0,ledger: GDP(nominal) by country table (222 rows) scraped from Wikipedia +190,d6d8eeef0caa980e695af7cff0e74ef196a67806,d6d8eee,2026-10-25,ledger,ledger@agents.invalid,7,521,0,ledger: extract last-20-commits table pinned to live HEAD (0392469) with CHECK gate +191,daf2403ffada428f849973f514e8769e434f82f9,daf2403,2026-10-25,ledger,ledger@agents.invalid,1,3,5,ledger: correct the CHECK PASS message to name the pinned revision +192,cc87f46e237984cdb800dc609afa1ce4ee753160,cc87f46,2026-10-25,ledger,ledger@agents.invalid,2,6,1,ledger: pin the 20-commit snapshot to d4ffaa3 and version the CHECK +193,b50235b8e0d39a3ab5ddaef50f52c5bfcbe93f6d,b50235b,2026-10-25,ledger,ledger@agents.invalid,6,411,231,ledger: 20-commit commit-history table; Files column re-derived from git and verified +194,0c4629b120ad87e19db1a5045a7a733294119af1,0c4629b,2026-10-24,ledger,ledger@agents.invalid,3,229,0,ledger: extract 20-commit commit-history table with git-log CHECK +195,8db72f5d0a7799ea2ef63a99f3492e038378bbb7,8db72f5,2026-10-24,ledger,ledger@agents.invalid,3,467,28,ledger: extract Strike API sitemap endpoints (71 rows) +196,426e8e17c6e942a136061d3fc0ea61513ffe1323,426e8e1,2026-10-24,spark,spark@agents.invalid,1,3,0,q63: ledger/verify_github_repos -- record in-file that no gate invokes it (one-off) +197,be623cd697eeffe78b5c42e74bd5f868146535a9,be623cd,2026-10-24,spark,spark@agents.invalid,1,13,6,"q63: ledger/verify_arxiv_csv -- asserts to _check(), so -O cannot print rows_ok=20 over a 3-row CSV" +198,ae6c5cfa48f9053c2eeda5a31c66676059c33320,ae6c5cf,2026-10-24,ledger,ledger@agents.invalid,2,27,0,ledger: add arXiv RAG papers table (12 records) +199,2fdb0360f49081443dda1ff18d3090d37622f62d,2fdb036,2026-10-24,ledger,ledger@agents.invalid,1,6,0,ledger: extract 5 arxiv cs.AI titles into table +200,5010821e1d848d8f33e426238bbd2ea6280fc1e8,5010821,2026-10-24,ledger,ledger@agents.invalid,4,435,0,"ledger: commit job-postings extraction table (356 rows, 3 sources)" +201,37ab2ef224381674709d57c8e6ad65d23d69f0a2,37ab2ef,2026-10-24,ledger,ledger@agents.invalid,2,33,0,ledger: top-10 nominal GDP table 2026 (IMF/WB/UN) +202,75224941d5207a8f2b9338b8291e25f6efef2235,7522494,2026-10-24,ledger,ledger@agents.invalid,7,2795,0,"ledger: countries-gdp-nominal extraction 2026-10-24 (222 rows, re-fetch verified)" +203,e8df5adde0c1e3d9971c8a09a9041404d7a77ac0,e8df5ad,2026-10-24,ledger,ledger@agents.invalid,4,1259,0,ledger: extract top-100 GitHub repos by stars table +204,ed53ba6d9f08657897f53b1a2a7e57d3023628ba,ed53ba6,2026-10-23,ledger,ledger@agents.invalid,5,3279,0,ledger: extract arxiv graph-neural-network papers table +205,46fe705fa0bbe7d21858754230e56288fde80d71,46fe705,2026-10-23,Volt,volt@agents.invalid,3,6,6,"ledger: refresh git author census from live HEAD (1327 commits, 39 identities)" +206,e47c758526839f5a04a677e5762427af885ab588,e47c758,2026-10-23,Volt,volt@agents.invalid,3,7,7,"ledger: refresh git author census from live HEAD (1326 commits, 39 identities)" +207,3f09290a66e30a1fb53b7156f8dc8eb3e7f24daa,3f09290,2026-10-23,Volt,volt@agents.invalid,3,7,7,"ledger: refresh git author census from live HEAD (1325 commits, 39 identities)" +208,f161802c854e5bf2b2cb566181408333e71264bc,f161802,2026-10-23,Volt,volt@agents.invalid,3,7,7,"ledger: refresh git author census from live HEAD (1324 commits, 39 identities)" +209,fb9f2377046d923dd3bb14cbf08d25123ca87226,fb9f237,2026-10-23,Volt,volt@agents.invalid,3,7,7,"ledger: refresh git author census from live HEAD (1323 commits, 39 identities)" +210,124871ffbde9ad4037bd33abec3a513bc37e9836,124871f,2026-10-23,Volt,volt@agents.invalid,4,372,375,"ledger: refresh git author census from live HEAD (1322 commits, 39 identities)" +211,48b180cb7012186e2e0ac6d37677caf64c738b09,48b180c,2026-10-23,ledger,ledger@agents.invalid,4,538,0,ledger: re-derived git author census (Extract-lane tables) from HEAD as of 2026-10-23 +212,efa10638aeeccd21890ed3006d20b000988ef380,efa1063,2026-10-23,ledger,ledger@agents.invalid,1,87,0,ledger: skill registry extraction to wizard-work/ledger +213,155c21e15365719692eccda4324a8864b096b3a3,155c21e,2026-10-23,ledger,ledger@agents.invalid,4,784,41,ledger: stackchain magazine catalog extraction (18-row table + CHECK) +214,cc3b45975f1da37d3d100e8faf8144c737fd1338,cc3b459,2026-10-23,ledger,ledger@agents.invalid,7,544,0,ledger: JSONPlaceholder /users extraction (10 records) -> csv/md/json +215,d81690d089689daa1cb0409e96ef7715ac99e4ff,d81690d,2026-10-23,ledger,ledger@agents.invalid,8,556,0,ledger: live evidence-verified wizard roster table (check.sh exit 0) +216,650dd71539cf025d85c5560ba54ec3e00c22a3af,650dd71,2026-10-23,ledger,ledger@agents.invalid,3,5,5,ledger: refresh churn tables to latest live evidence +217,900e74ba55a08b51f11abe1501d8a448e0d72a8b,900e74b,2026-10-23,ledger,ledger@agents.invalid,3,5,5,ledger: refresh churn tables to latest live evidence +218,a3848c91dd2f57050124c76129e7bcffdbb34e37,a3848c9,2026-10-23,ledger,ledger@agents.invalid,3,5,5,ledger: refresh churn tables to latest live evidence +219,a75f62958fd8a23a5d180e586f42231d835d16e7,a75f629,2026-10-23,ledger,ledger@agents.invalid,3,5,5,ledger: refresh churn tables to latest live evidence +220,858f8a84a3391105151ae62ab9df4e777befe1a8,858f8a8,2026-10-23,ledger,ledger@agents.invalid,3,5,5,ledger: refresh churn tables to latest live evidence +221,46818a7df4ffe1295a064a5c3ec59192086ee1c7,46818a7,2026-10-23,ledger,ledger@agents.invalid,3,5,5,ledger: refresh churn tables to latest live evidence +222,6a212ed889d3f127f6a953a382c68fb2ed826ea9,6a212ed,2026-10-23,ledger,ledger@agents.invalid,3,5,5,ledger: refresh churn tables to latest live evidence +223,c9f443b3f40637cd08264f895790de5664e9cd84,c9f443b,2026-10-23,ledger,ledger@agents.invalid,3,5,5,ledger: refresh churn tables to latest live evidence +224,43a8ca2d944973d9e90e31ed18f1c430da27a611,43a8ca2,2026-10-23,ledger,ledger@agents.invalid,3,5,5,ledger: refresh churn tables to latest live evidence +225,65e5cb11306a35c6ef4e74d8c8a1b48792040d0e,65e5cb1,2026-10-23,ledger,ledger@agents.invalid,3,5,5,ledger: refresh churn tables to latest live evidence +226,277bcf7277bc6a5ef2ec73bf811eb0a846bbaf57,277bcf7,2026-10-23,ledger,ledger@agents.invalid,3,5,5,ledger: refresh churn tables to latest live evidence +227,201eb57a1d3f4e619b30fed2a4103cf854445eb9,201eb57,2026-10-23,ledger,ledger@agents.invalid,3,5,5,ledger: refresh churn tables to latest live evidence +228,27a1b1a2f45b3f7e40dd3b04fb05ce32e6122204,27a1b1a,2026-10-23,ledger,ledger@agents.invalid,3,5,5,ledger: refresh churn tables to latest live evidence +229,e11443343b5ddec03b608e7c022cb4d58a440123,e114433,2026-10-23,ledger,ledger@agents.invalid,3,5,5,ledger: refresh churn tables to latest live evidence +230,3a5a26789fd12b760149b4c09b31df7b5426994b,3a5a267,2026-10-23,ledger,ledger@agents.invalid,3,5,5,ledger: refresh churn tables to latest live evidence +231,9d5d6dcc7140de0c26847a4a819ad2041c094702,9d5d6dc,2026-10-23,ledger,ledger@agents.invalid,3,5,5,ledger: refresh churn tables to latest live evidence +232,77bc066782287f5726606244a1c21af7a3e51bee,77bc066,2026-10-23,ledger,ledger@agents.invalid,3,5,5,ledger: refresh churn tables to latest live evidence +233,5e5ed23523d7f0346f2e0268a3a651f138e8ab70,5e5ed23,2026-10-23,ledger,ledger@agents.invalid,3,5,5,ledger: refresh churn tables to latest live evidence +234,59df2b0254f932129492407343136b8fe5f381f1,59df2b0,2026-10-23,ledger,ledger@agents.invalid,3,5,5,ledger: refresh churn tables to latest live evidence +235,8cb884c5b5d4aa9c59d1b4457fcaaec109363b2b,8cb884c,2026-10-23,ledger,ledger@agents.invalid,3,5,5,ledger: refresh churn tables to latest live evidence +236,72d7fdfa411a411b8537f085588ef36d3b76d9c2,72d7fdf,2026-10-23,ledger,ledger@agents.invalid,3,5,5,ledger: refresh churn tables to latest live evidence +237,4854f7be01aa2afc2e9a6713ac726a7bd48e86e2,4854f7b,2026-10-23,ledger,ledger@agents.invalid,3,5,5,ledger: refresh churn tables to latest live evidence +238,7cfefc78a6ec4e7dc801c4c3fd264db5de2ae1d3,7cfefc7,2026-10-23,ledger,ledger@agents.invalid,3,5,5,ledger: refresh churn tables to latest live evidence +239,bc2dd53aff18372be4e51c033298bbfa5fa2968b,bc2dd53,2026-10-23,ledger,ledger@agents.invalid,3,5,5,ledger: refresh churn tables to latest live evidence +240,02a79f9b5d9086bf7ec65fab9800bd4eddd59c6a,02a79f9,2026-10-23,ledger,ledger@agents.invalid,3,5,5,ledger: refresh churn tables to latest live evidence +241,1aaa124c989a13067c486d6fd6c4a525ee9458d0,1aaa124,2026-10-23,ledger,ledger@agents.invalid,3,5,5,ledger: refresh churn tables to latest live evidence +242,edd1658ca8b1af89a234ba67f7610aa5227ff1f2,edd1658,2026-10-23,ledger,ledger@agents.invalid,3,5,5,ledger: refresh churn tables to latest live evidence +243,4be139e3487e8a71ec4592431dd5cae9586b4748,4be139e,2026-10-23,ledger,ledger@agents.invalid,3,5,5,ledger: refresh churn tables to latest live evidence +244,36fb884211f948654b7a3f37884a603f6b9f17bb,36fb884,2026-10-23,ledger,ledger@agents.invalid,3,5,5,ledger: refresh churn tables to latest live evidence +245,660cc99671dd1f696dc2d930bb012783870050e9,660cc99,2026-10-23,ledger,ledger@agents.invalid,3,5,5,ledger: refresh churn tables to latest live evidence +246,1ef5b52943d74c0f012b319375843d9506d358ff,1ef5b52,2026-10-23,ledger,ledger@agents.invalid,3,5,5,ledger: refresh churn tables to latest live evidence +247,cb2a9d2519c12f01de7581ac33f011f233648195,cb2a9d2,2026-10-23,ledger,ledger@agents.invalid,3,5,5,ledger: refresh churn tables to latest live evidence +248,d87afeaefd9cb472720ba0e94454ae5f760c926f,d87afea,2026-10-23,ledger,ledger@agents.invalid,3,5,5,ledger: refresh churn tables to latest live evidence +249,3b01e21455b7c2f9e43c632932bed3741cd18002,3b01e21,2026-10-23,ledger,ledger@agents.invalid,3,5,5,ledger: refresh churn tables to latest live evidence +250,1f44412d7b4878a02a770f2c2a8a83b4aefbba66,1f44412,2026-10-23,ledger,ledger@agents.invalid,3,5,5,ledger: refresh churn tables to latest live evidence +251,be1bf370e8e782cdd3107f2445f739823fe6a65a,be1bf37,2026-10-23,ledger,ledger@agents.invalid,3,5,5,ledger: refresh churn tables to latest live evidence +252,8e47a9077f288a9a8bf6af22080931c66df5313d,8e47a90,2026-10-23,ledger,ledger@agents.invalid,3,5,5,ledger: refresh churn tables to latest live evidence +253,7f5f2962f34f3f3cd163da94bb885f4e627f0fa0,7f5f296,2026-10-23,ledger,ledger@agents.invalid,3,5,5,ledger: refresh churn tables to latest live evidence +254,d80c673762809b67000b87b9c486b976415556bd,d80c673,2026-10-23,ledger,ledger@agents.invalid,3,5,5,ledger: refresh churn tables to latest live evidence +255,9821cbdfb53a6eadab756929e07f42baf37ad168,9821cbd,2026-10-23,ledger,ledger@agents.invalid,3,5,5,ledger: refresh churn tables to latest live evidence +256,45c9a62a1251ba8ef260b366b3826d75bf266621,45c9a62,2026-10-23,ledger,ledger@agents.invalid,3,5,5,ledger: refresh churn tables to latest live evidence +257,ca09101e4287431c7078d3485eb4f3ff9d2d3dfe,ca09101,2026-10-23,ledger,ledger@agents.invalid,3,5,5,ledger: refresh churn tables to latest live evidence +258,af6ad349ae7f9dc46d4cc738d39b4e0d395ac64f,af6ad34,2026-10-23,ledger,ledger@agents.invalid,3,5,5,ledger: refresh churn tables to latest live evidence +259,8b084f4973888663d560d16d0b114a8016171285,8b084f4,2026-10-23,ledger,ledger@agents.invalid,3,5,5,ledger: refresh churn tables to latest live evidence +260,d673603a9e39bfea3c1f872fdcf7fa8814d29924,d673603,2026-10-23,ledger,ledger@agents.invalid,3,5,5,ledger: refresh churn tables to latest live evidence +261,c034efbb6cb96170000aa03f4763e20a2f14a894,c034efb,2026-10-23,ledger,ledger@agents.invalid,3,5,5,ledger: refresh churn tables to latest live evidence +262,904c08cade8d451e5ad7fe6e71259daa38a9cd40,904c08c,2026-10-23,ledger,ledger@agents.invalid,3,5,5,ledger: refresh churn tables to latest live evidence +263,e9041d7a9913890507e5d37f8ce01c1bd42a423e,e9041d7,2026-10-23,ledger,ledger@agents.invalid,3,5,5,ledger: refresh churn tables to latest live evidence +264,ffcb8a6ac7b9de21e9a6cad980b182e1cd2d9c41,ffcb8a6,2026-10-23,ledger,ledger@agents.invalid,3,5,5,ledger: refresh churn tables to latest live evidence +265,89fd399814504f5113a809f6ca83725f5d406849,89fd399,2026-10-23,ledger,ledger@agents.invalid,3,5,5,ledger: refresh churn tables to latest live evidence +266,1ceeae56a9722e96625a98c6fb4889b736d2065f,1ceeae5,2026-10-23,ledger,ledger@agents.invalid,3,5,5,ledger: refresh churn tables to latest live evidence +267,a16a9a2e587f762a16a4e4bb73e74a78d59f642b,a16a9a2,2026-10-23,ledger,ledger@agents.invalid,3,5,5,ledger: refresh churn tables to latest live evidence +268,4c1fd6030a6efdf5e45ecd7c317b78652290aa0f,4c1fd60,2026-10-23,ledger,ledger@agents.invalid,3,5,5,ledger: refresh churn tables to latest live evidence +269,6333157155b5e4dbfcd3a084bff4eeb35ee485e7,6333157,2026-10-23,ledger,ledger@agents.invalid,5,10,10,ledger: refresh churn tables to latest live evidence +270,37f2f03bc265b15ea9cdbb7dea0de7e5356ebf41,37f2f03,2026-10-23,ledger,ledger@agents.invalid,3,5,5,ledger: refresh churn tables to latest live evidence +271,be7280a1cc25a5a728e159281579a21605ecb5f7,be7280a,2026-10-23,ledger,ledger@agents.invalid,3,5,5,ledger: refresh churn tables to latest live evidence +272,541beababe9602f2ae45fc6669f67d3e31e5f4eb,541beab,2026-10-23,ledger,ledger@agents.invalid,3,5,5,ledger: refresh churn tables to latest live evidence +273,b02bab8371e7faea8bc940866782a163a2f04350,b02bab8,2026-10-23,ledger,ledger@agents.invalid,3,5,5,ledger: refresh churn tables to latest live evidence +274,fecffc231520b046ad93f9b16d9efaf8b743b749,fecffc2,2026-10-23,ledger,ledger@agents.invalid,3,5,5,ledger: refresh churn tables to latest live evidence +275,b87f638b760fc142431fd7704baaf7b6f679c069,b87f638,2026-10-23,ledger,ledger@agents.invalid,3,5,5,ledger: refresh churn tables to latest live evidence +276,5ed85136d2fe5e07059040894ca24d3bd0085855,5ed8513,2026-10-23,ledger,ledger@agents.invalid,6,1179,0,"ledger: regenerate churn tables (commits-by-author-day, work inventory) + passing CHECK" +277,442cfe4443c1b7116c8c4c04852e6f202cce2e13,442cfe4,2026-10-23,ledger,ledger@agents.invalid,2,153,0,ledger: github python org top-50 repos table + verifier +278,c729afef3ab7bf29d64940c6a9b10359af0120fd,c729afe,2026-10-23,ledger,ledger@agents.invalid,5,396,0,ledger: fresh arXiv cs.AI top-10 extraction (2026-10-23) +279,ad737759126759ecd6d48e1d4443df7a459f0a76,ad73775,2026-10-23,ledger,ledger@agents.invalid,12,2896,0,ledger: us nominal gdp annual 2018-2025 csv +280,311aae865fcaf99541a6b0e824dcb58dcb09246d,311aae8,2026-10-22,ledger,ledger@agents.invalid,3,138,0,ledger: stackchain magazine photo catalog extract +281,38bb774104860c49508e834010f5749a7c94237c,38bb774,2026-10-22,ledger,ledger@agents.invalid,2,2,2,"ledger: refresh work-queue index extraction (45 rows, sha 311eeefd)" +282,0f149fc91461b7619bc1adf3a17866170dc98374,0f149fc,2026-10-22,ledger,ledger@agents.invalid,5,200,0,ledger: top-10 machine-learning repos by stars +283,e0019ea158ce97b0c13d8ca28fb5a7c077301366,e0019ea,2026-10-22,ledger,ledger@agents.invalid,5,246,0,ledger: add arXiv cs.AI top-10 extraction artifact (verified against live arXiv API) +284,0c25c822a1dcde4b8427f0251bef27bd8bed8732,0c25c82,2026-10-22,ledger,ledger@agents.invalid,4,118,0,ledger: media-catalog extraction from stackchain_catalog_raw.json +285,a9eb34d1174535e620ce713ee008228ac46fd70e,a9eb34d,2026-10-22,ledger,ledger@agents.invalid,5,659,0,ledger: extract top-50 GitHub repos by stars (all languages) artifact +286,cdaa90b3e8b6f3bbf024ed58234a51d8ef116502,cdaa90b,2026-10-22,Volt,volt@agents.invalid,3,32,32,ledger: refresh top-10 Python repos by stars artifact and verify +287,3e324c477fb80873b6e83fc3599f5eedcabdbeda,3e324c4,2026-10-22,Volt,volt@agents.invalid,8,234,26,ledger: add top-10 repos by stars (all languages) extraction artifact +288,f85a6212479c5d453d3563b488b6ff3623361ca5,f85a621,2026-10-22,ledger,ledger@agents.invalid,4,120,72,ledger: refresh top-10 Python repos by stars extraction artifact (verify.py fix: reset failures per attempt) +289,bf67102b518aa135e7ddad05199a6903aae7540d,bf67102,2026-10-22,Volt,volt@agents.invalid,3,14,14,ledger: refresh top-10 Python repos by stars extraction artifact +290,5557fe9138f622ae2854c7a1d261e2aa49e97a33,5557fe9,2026-10-22,ledger,ledger@agents.invalid,5,229,41,"ledger: add top-10 Python repos by stars extraction artifact (repos.csv, repos.md, repos.json + verify.py)" +291,aa8613ca45f0d97448c060a75b04c0c8a62f094a,aa8613c,2026-10-22,ledger,ledger@agents.invalid,6,1692,0,"ledger: ISO 3166-1 alpha-3 country-code table (249 rows), extraction + check" +292,16649ee3b4f16b8063d6672ba4285a0442340022,16649ee,2026-10-21,ledger,ledger@agents.invalid,3,295,0,ledger: recoveries archive index (62-file machine table) +293,d7fb94f4a3b2cfd6de391939d6d08adda5913c25,d7fb94f,2026-10-21,ledger,ledger@agents.invalid,5,147,37,ledger: check-in ledger census CSV + md +294,6853f4588e74dc79cd9f5fa1635fb44646bbf3d3,6853f45,2026-10-21,ledger,ledger@agents.invalid,3,614,0,ledger: Troupe daily churn census from repo filenames + git cross-check +295,d2964cd4af7ecf849a64f39fc5b3c28b891fa127,d2964cd,2026-10-21,ledger,ledger@agents.invalid,6,461,0,"ledger: GDP (nominal, current US$) top-20 countries 2023 from World Bank API" +296,214e10b53022da8ac90214d3b79d54c1af16a831,214e10b,2026-10-21,ledger,ledger@agents.invalid,4,310,0,ledger: add extracted wizard roster CSV + summary JSON (WIZARDS-TABLE.md) +297,13beb50c14308b715d435066919fd4bdbcc876ff,13beb50,2026-10-21,ledger,ledger@agents.invalid,2,234,0,ledger: extract GDP per capita (nominal USD) table from Wikipedia (222 rows) +298,54b1e1322b5095f0a0e75713c007b4333fd32641,54b1e13,2026-10-21,ledger,ledger@agents.invalid,1,67,0,ledger: repo census table for extract lane +299,caf157e7299d69f30f5e333affa9a3d521e6c6d1,caf157e,2026-10-21,ledger,ledger@agents.invalid,2,435,0,"ledger: git author census of troupe repo (973 commits, 38 identities)" +300,095bd034ff3b07a7150c462af5d9b5ec5e3fefb9,095bd03,2026-10-21,ledger,ledger@agents.invalid,5,1562,0,"ledger: extract UN member states admission table (193 rows, 49 founding members)" +301,02252e403e141ed1cf4a5a7df37ffc970ffd5235,02252e4,2026-10-21,ledger,ledger@agents.invalid,5,1131,0,ledger: Census of stackchain org repos (9) with verify gate +302,369baea55f0618d87f9d04ed9d646a7db1317112,369baea,2026-10-20,ledger,ledger@agents.invalid,4,4349,0,ledger: extract stackchain org open issues as a CHECK-verified table (321 rows + source snapshot) +303,c0dea95d774023978a66d9163edac6bf3056369a,c0dea95,2026-10-20,ledger,ledger@agents.invalid,4,210,0,ledger: extract stackchain magazine photo catalog into a table +304,83c964c42a7e0e8b120dac545fd44c73b35ee71c,83c964c,2026-10-20,Volt,volt@agents.invalid,1,7,3,ledger: make verify script cwd-independent +305,b155fb552779e087b5c9e3f1a7f71b13b531e594,b155fb5,2026-10-20,Volt,volt@agents.invalid,7,489,185,ledger: fresh 20 cs.LG arXiv extraction + checklist +306,1e47b1d49d207442f58d41fb6a97c3d36458b39e,1e47b1d,2026-10-20,ledger,ledger@agents.invalid,5,268,0,ledger: extract most recent 20 cs.LG arXiv papers into a table +307,603e082e89c24a25b0b10142c5360bdf9c6ace3a,603e082,2026-10-20,ledger,ledger@agents.invalid,4,292,0,ledger: extract work-queue index from WORK-QUEUE.md into TSV + markdown + verify diff --git a/wizard-work/ledger/2026-11-05-ledger-git-history.md b/wizard-work/ledger/2026-11-05-ledger-git-history.md new file mode 100644 index 0000000..48eb130 --- /dev/null +++ b/wizard-work/ledger/2026-11-05-ledger-git-history.md @@ -0,0 +1,67 @@ +# 2026-11-05 ledger-scoped git commit history + +Extracted from the committed git tree at HEAD, scoped by pathspec `wizard-work/ledger`. One row per commit; a raw, re-derivable extraction (no network, no API key). + +## Summary + +| metric | value | +| --- | --- | +| commits | 307 | +| files changed | 1305 | +| insertions | 491717 | +| deletions | 28152 | + +## Commits by author (top 15) + +| rank | author | commits | +|---|---|---| +| 1 | ledger | 268 | +| 2 | volt | 15 | +| 3 | Volt | 11 | +| 4 | spark | 6 | +| 5 | sol | 5 | +| 6 | quill | 2 | + +## Commits by day (last 21 days, active only) + +| date | commits | +|---|---| +| 2026-10-23 | 76 | +| 2026-10-30 | 25 | +| 2026-11-02 | 23 | +| 2026-10-31 | 21 | +| 2026-11-01 | 20 | +| 2026-10-25 | 16 | +| 2026-10-27 | 15 | +| 2026-10-29 | 15 | +| 2026-11-03 | 14 | +| 2026-10-28 | 13 | +| 2026-10-22 | 12 | +| 2026-11-05 | 11 | +| 2026-10-21 | 10 | +| 2026-10-24 | 10 | +| 2026-10-26 | 10 | +| 2026-11-04 | 10 | +| 2026-10-20 | 6 | + +## Commits table (first 12 rows) + +| rank | date | author | files | ins | del | subject | +|---|---|---|---|---|---|---| +| 1 | 2026-11-05 | volt | 8 | 5779 | 3570 | ledger: file-tree census gate grades the checkout it is run in (Q69 ledger leg) | +| 2 | 2026-11-05 | ledger | 4 | 217 | 0 | ledger: add 2026-11-05 top-25 Python repos by stars extraction (CSV+MD+extract+verify) | +| 3 | 2026-11-05 | ledger | 4 | 914 | 0 | ledger: 2026-11-05 wizard-work/ledger HEAD census (830 files) | +| 4 | 2026-11-05 | ledger | 4 | 907 | 0 | ledger: 2026-11-05 wizard-work/ledger census (826 files, pinned f8d7a80) | +| 5 | 2026-11-05 | ledger | 2 | 127 | 0 | ledger: 2026-11-05 commit census (2661 commits, 42 days, as of HEAD fd47223) | +| 6 | 2026-11-05 | ledger | 9 | 9525 | 120 | ledger: extract check-in census 2026-11-05 from committed git tree | +| 7 | 2026-11-05 | volt | 1 | 1 | 1 | volt: land Q170 -- import-order leg (3 misplaced imports repaired) + the 85-file host-path | +| 8 | 2026-11-05 | ledger | 3 | 388 | 0 | ledger: ISO 3166-1 country-code extraction (249 rows) | +| 9 | 2026-11-05 | sol | 1 | 0 | 811 | sol: sol-profile stock audit artifact (JSON + verifier + checksum) | +| 10 | 2026-11-05 | ledger | 4 | 1552 | 0 | ledger: extract 2026-11-05 ledger tree manifest of wizard-work/ledger (810 files, 26,750,6 | +| 11 | 2026-11-05 | ledger | 46 | 14504 | 41 | ledger: extract CoinGecko top-250 crypto market-cap table (2026-11-05) | +| 12 | 2026-11-04 | ledger | 3 | 5328 | 0 | ledger: committed-tree manifest of pinned HEAD eb41df6 (5222 files, 212,989,143 bytes) | + +## Verification + +Re-derive from `git` and compare: `python3 verify_2026_11_05_ledger_git_history.py` (exit 0 = committed table matches a fresh re-derivation). + diff --git a/wizard-work/ledger/_probe_git_log_structure.py b/wizard-work/ledger/_probe_git_log_structure.py new file mode 100644 index 0000000..9f05105 --- /dev/null +++ b/wizard-work/ledger/_probe_git_log_structure.py @@ -0,0 +1,24 @@ +#!/usr/bin/env python3 +"""Probe the interleaved git-log/numstat structure before committing to the +real extraction artifact.""" +import subprocess + +REPO = "/root/troupe-standup" +CMD = [ + "git", "-C", REPO, "log", + "--numstat", "--date=short", + "--pretty=tformat:\\x1f%H\\x1f%h\\x1f%ad\\x1f%an\\x1f%ae\\x1f%s", + "--", "wizard-work/ledger", +] +out = subprocess.run(CMD, capture_output=True, text=True).stdout +lines = out.split("\n") +print("total lines (incl trailing empty):", len(lines)) +print("first 40 non-empty lines:") +for ln in lines: + if ln == "": + continue + print(repr(ln[:200])) + if ln.count("\x1f") >= 5: + break +print("--- stderr ---") +print(subprocess.run(CMD, capture_output=True, text=True).stderr[:2000]) diff --git a/wizard-work/ledger/extract_2026_11_05_ledger_git_history.py b/wizard-work/ledger/extract_2026_11_05_ledger_git_history.py new file mode 100644 index 0000000..8eb8a6a --- /dev/null +++ b/wizard-work/ledger/extract_2026_11_05_ledger_git_history.py @@ -0,0 +1,193 @@ +#!/usr/bin/env python3 +"""Extract the git commit history scoped to the wizard-work/ledger directory. + +Writes 2026-11-05-ledger-git-history.csv and 2026-11-05-ledger-git-history.md +into the same directory as this script (wizard-work/ledger/). + +Real source: `git log --numstat` with a pathspec scoped to wizard-work/ledger at HEAD. +No network, no API key: the whole extraction is re-derivable from the committed git tree. +""" +import csv +import subprocess +import sys +from collections import Counter + +REPO = "/root/troupe-standup" +LANE = "wizard-work/ledger" +OUT_CSV = "2026-11-05-ledger-git-history.csv" +OUT_MD = "2026-11-05-ledger-git-history.md" +SEP = "\x1f" + + +def git_log_numstat(repo, path): + cmd = [ + "git", "-C", repo, "log", + "--numstat", "--date=short", + "--pretty=tformat:" + SEP + "%H" + SEP + "%h" + SEP + "%ad" + SEP + "%an" + SEP + "%ae" + SEP + "%s", + "--", path, + ] + proc = subprocess.run(cmd, capture_output=True, text=True, check=True) + return proc.stdout + + +def is_commit_header(line): + parts = line.split(SEP) + if len(parts) < 7: + return False + full, short, date = parts[1], parts[2], parts[3] + if len(full) != 40 or len(date) != 10: + return False + if not all(c in "0123456789abcdef" for c in full): + return False + if date[4] != "-" or date[7] != "-": + return False + return True + + +def aggregate_numstat(lines): + files_changed = 0 + insertions = 0 + deletions = 0 + for ln in lines: + parts = ln.split("\t") + if len(parts) != 3: + continue + added, deled, _path = parts + files_changed += 1 + if added.isdigit(): + insertions += int(added) + if deled.isdigit(): + deletions += int(deled) + return files_changed, insertions, deletions + + +def extract_rows(): + out = git_log_numstat(REPO, LANE) + rows = [] + meta = None + numstat = [] + for line in out.split("\n"): + if line == "": + continue + if is_commit_header(line): + if meta is not None: + fc, ins, dels = aggregate_numstat(numstat) + rows.append({ + "full_hash": meta["full"], "short_hash": meta["short"], + "date": meta["date"], "author": meta["author"], + "email": meta["email"], "subject": meta["subject"], + "files_changed": fc, "insertions": ins, "deletions": dels, + }) + parts = line.split(SEP) + meta = { + "full": parts[1], "short": parts[2], "date": parts[3], + "author": parts[4], "email": parts[5], + "subject": parts[6].replace("\n", " ").replace("\r", " ").replace(SEP, " ").strip(), + } + numstat = [] + else: + numstat.append(line) + if meta is not None: + fc, ins, dels = aggregate_numstat(numstat) + rows.append({ + "full_hash": meta["full"], "short_hash": meta["short"], + "date": meta["date"], "author": meta["author"], + "email": meta["email"], "subject": meta["subject"], + "files_changed": fc, "insertions": ins, "deletions": dels, + }) + if not rows: + sys.stderr.write("ERROR: no commits found under %s\n" % LANE) + sys.exit(1) + return rows + + +def write_csv(rows): + with open(OUT_CSV, "w", newline="", encoding="utf-8") as f: + fieldnames = ["rank", "full_hash", "short_hash", "date", "author", + "email", "files_changed", "insertions", "deletions", "subject"] + writer = csv.DictWriter(f, fieldnames=fieldnames, lineterminator="\n") + writer.writeheader() + for i, r in enumerate(rows, start=1): + writer.writerow({ + "rank": i, "full_hash": r["full_hash"], "short_hash": r["short_hash"], + "date": r["date"], "author": r["author"], "email": r["email"], + "files_changed": r["files_changed"], "insertions": r["insertions"], + "deletions": r["deletions"], "subject": r["subject"], + }) + + +def md_table(headers, rows, alignments=None): + lines = ["| " + " | ".join(headers) + " |", + "|" + "|".join(["---"] * len(headers)) + "|"] + for r in rows: + lines.append("| " + " | ".join(str(r.get(h, "")) for h in headers) + " |") + return "\n".join(lines) + + +def write_md(rows): + by_author = Counter(r["author"] for r in rows) + by_day = Counter(r["date"] for r in rows) + total_files = sum(r["files_changed"] for r in rows) + total_ins = sum(r["insertions"] for r in rows) + total_del = sum(r["deletions"] for r in rows) + + md = [] + md.append("# 2026-11-05 ledger-scoped git commit history") + md.append("") + md.append("Extracted from the committed git tree at HEAD, scoped by pathspec " + "`wizard-work/ledger`. One row per commit; a raw, re-derivable " + "extraction (no network, no API key).") + md.append("") + md.append("## Summary") + md.append("") + md.append("| metric | value |") + md.append("| --- | --- |") + md.append("| commits | %d |" % len(rows)) + md.append("| files changed | %d |" % total_files) + md.append("| insertions | %d |" % total_ins) + md.append("| deletions | %d |" % total_del) + md.append("") + md.append("## Commits by author (top 15)") + md.append("") + md.append(md_table(["rank", "author", "commits"], [ + {"rank": i, "author": a, "commits": c} for i, (a, c) in enumerate( + by_author.most_common(15), start=1) + ])) + md.append("") + md.append("## Commits by day (last 21 days, active only)") + md.append("") + md.append(md_table(["date", "commits"], [ + {"date": d, "commits": c} for d, c in sorted( + by_day.most_common(), key=lambda kv: (-kv[1], kv[0]))[:21] + ])) + md.append("") + md.append("## Commits table (first 12 rows)") + md.append("") + md.append(md_table(["rank", "date", "author", "files", "ins", "del", "subject"], [ + {"rank": i, "date": r["date"], "author": r["author"], + "files": r["files_changed"], "ins": r["insertions"], "del": r["deletions"], + "subject": (r["subject"] or "")[:90]} for i, r in enumerate(rows[:12], start=1) + ])) + md.append("") + md.append("## Verification") + md.append("") + md.append("Re-derive from `git` and compare: " + "`python3 verify_2026_11_05_ledger_git_history.py` " + "(exit 0 = committed table matches a fresh re-derivation).") + md.append("") + with open(OUT_MD, "w", encoding="utf-8") as f: + f.write("\n".join(md) + "\n") + + +def main(): + rows = extract_rows() + write_csv(rows) + write_md(rows) + print("wrote %d commits -> %s, %s" % (len(rows), OUT_CSV, OUT_MD)) + for r in rows[:3]: + print(" %s | %s | +%s -%s | %s" % ( + r["short_hash"], r["date"], r["insertions"], r["deletions"], r["subject"][:70])) + + +if __name__ == "__main__": + main() diff --git a/wizard-work/ledger/verify_2026_11_05_ledger_git_history.py b/wizard-work/ledger/verify_2026_11_05_ledger_git_history.py new file mode 100644 index 0000000..da87bbc --- /dev/null +++ b/wizard-work/ledger/verify_2026_11_05_ledger_git_history.py @@ -0,0 +1,160 @@ +#!/usr/bin/env python3 +"""Verify the committed 2026-11-05-ledger-git-history.csv. + +Re-derives the commit table straight from the git tree at HEAD (pathspec +wizard-work/ledger) and compares it against the committed CSV. Before the +comparison it checks the committed table for basic invariants. Exit code 0 +iff every check passes and the committed table exactly equals the re-derivation. + +A genuinely non-tautological check: the committed CSV is an artifact, while the +expected rows come from real `git log --numstat` output, so matching means the +artifact is a faithful extraction of the source. +""" +import csv +import subprocess +import sys + +REPO = "/root/troupe-standup" +LANE = "wizard-work/ledger" +CSV_NAME = "2026-11-05-ledger-git-history.csv" +SEP = "\x1f" + + +def git_log_numstat(repo, path): + cmd = [ + "git", "-C", repo, "log", + "--numstat", "--date=short", + "--pretty=tformat:" + SEP + "%H" + SEP + "%h" + SEP + "%ad" + SEP + "%an" + SEP + "%ae" + SEP + "%s", + "--", path, + ] + proc = subprocess.run(cmd, capture_output=True, text=True, check=True) + return proc.stdout + + +def is_commit_header(line): + parts = line.split(SEP) + if len(parts) < 7: + return False + full, short, date = parts[1], parts[2], parts[3] + if len(full) != 40 or len(date) != 10: + return False + if not all(c in "0123456789abcdef" for c in full): + return False + if date[4] != "-" or date[7] != "-": + return False + return True + + +def aggregate_numstat(lines): + files_changed = 0 + insertions = 0 + deletions = 0 + for ln in lines: + parts = ln.split("\t") + if len(parts) != 3: + continue + added, deled, _path = parts + files_changed += 1 + if added.isdigit(): + insertions += int(added) + if deled.isdigit(): + deletions += int(deled) + return files_changed, insertions, deletions + + +def fresh_rows(): + out = git_log_numstat(REPO, LANE) + rows = [] + meta = None + numstat = [] + for line in out.split("\n"): + if line == "": + continue + if is_commit_header(line): + if meta is not None: + fc, ins, dels = aggregate_numstat(numstat) + rows.append({ + "full_hash": meta["full"], "short_hash": meta["short"], + "date": meta["date"], "author": meta["author"], + "email": meta["email"], "subject": meta["subject"], + "files_changed": fc, "insertions": ins, "deletions": dels, + }) + parts = line.split(SEP) + meta = { + "full": parts[1], "short": parts[2], "date": parts[3], + "author": parts[4], "email": parts[5], + "subject": parts[6].replace("\n", " ").replace("\r", " ").replace(SEP, " ").strip(), + } + numstat = [] + else: + numstat.append(line) + if meta is not None: + fc, ins, dels = aggregate_numstat(numstat) + rows.append({ + "full_hash": meta["full"], "short_hash": meta["short"], + "date": meta["date"], "author": meta["author"], + "email": meta["email"], "subject": meta["subject"], + "files_changed": fc, "insertions": ins, "deletions": dels, + }) + return rows + + +def read_committed(csv_name): + with open(csv_name, newline="", encoding="utf-8") as f: + return list(csv.DictReader(f)) + + +def main(): + failed = [] + committed = read_committed(__file__ and + "/root/troupe-standup/wizard-work/ledger/" + CSV_NAME) + fresh = fresh_rows() + + # Invariants on the committed table itself (obeys the lane's evidence rule: + # numbers must be non-negative integers, subjects non-empty). + for i, r in enumerate(committed): + label = r.get("short_hash", "row %d" % i) + for field in ["files_changed", "insertions", "deletions"]: + val = r.get(field, "") + if not val.isdigit(): + failed.append("row %s: %s not a non-negative integer (%r)" % (label, field, val)) + if not r.get("subject", "").strip(): + failed.append("row %s: empty subject" % label) + + # Re-derivation is the ground truth; the committed table is the artifact. + if len(committed) != len(fresh): + failed.append("row count committed=%d fresh=%d" % (len(committed), len(fresh))) + + for i, (c, f) in enumerate(zip(committed, fresh)): + pair = "row %d" % i + if c.get("full_hash") != f["full_hash"]: + failed.append("%s: full_hash committed=%r fresh=%r" % (pair, c.get("full_hash"), f["full_hash"])) + if c.get("short_hash") != f["short_hash"]: + failed.append("%s: short_hash committed=%r fresh=%r" % (pair, c.get("short_hash"), f["short_hash"])) + if c.get("date") != f["date"]: + failed.append("%s: date committed=%r fresh=%r" % (pair, c.get("date"), f["date"])) + if c.get("author") != f["author"]: + failed.append("%s: author committed=%r fresh=%r" % (pair, c.get("author"), f["author"])) + if c.get("email") != f["email"]: + failed.append("%s: email committed=%r fresh=%r" % (pair, c.get("email"), f["email"])) + if c.get("subject") != f["subject"]: + failed.append("%s: subject committed=%r fresh=%r" % (pair, c.get("subject"), f["subject"])) + if c.get("files_changed") != str(f["files_changed"]): + failed.append("%s: files_changed committed=%r fresh=%r" % (pair, c.get("files_changed"), f["files_changed"])) + if c.get("insertions") != str(f["insertions"]): + failed.append("%s: insertions committed=%r fresh=%r" % (pair, c.get("insertions"), f["insertions"])) + if c.get("deletions") != str(f["deletions"]): + failed.append("%s: deletions committed=%r fresh=%r" % (pair, c.get("deletions"), f["deletions"])) + + if failed: + print("VERDICT: FAIL (%d)" % len(failed)) + for x in failed: + print(" - " + x) + return 1 + print("VERDICT: OK rows=%d commits_full_hashes_matched=1 invariants_ok=1" + % len(committed)) + return 0 + + +if __name__ == "__main__": + sys.exit(main())