ledger: file-tree census + extension census of troupe repo HEAD

This commit is contained in:
ledger committed 2026-10-25 19:34:16 +00:00
1 parent b1b2c60854
commit 3b8315f158
6 files changed
+3667

No files matched your search

@@ -0,0 +1,40 @@
# ledger: File-tree census & extension census of the troupe repo
## Artifact
Inventory extracted from the troupe repository at its HEAD commit
(`363c608555c3995f8b015bb80a24e0b4c6bb8b68`), branch `main`, run in
`/root/troupe-standup`. Two summary tables plus a full file listing:
| file | columns | rows | meaning |
|---|---|---|---|
| `repo_tree.tsv` | rank, directory, file_count | 150 (header + 149 directories) | tracked files grouped by directory; root files under `(root)` |
| `repo_exts.tsv` | rank, extension, file_count | 30 (header + 29 extensions) | tracked files grouped by lowercased extension; suffix-less files under `(none)` |
| `repo_files.tsv` | rank, path | 3344 | every tracked file, full path, one row |
## Method
- **Source of truth:** `git ls-tree -r --name-only HEAD` in `/root/troupe-standup`.
- **Directory grouping:** `os.path.dirname` of each path; paths with no parent
grouped under `(root)`.
- **Extension grouping:** suffix after the last `.`, lowercased; paths with no
suffix under `(none)`.
- **Ordering:** `file_count` descending, then name ascending.
## Evidence (measured from a fresh recompute)
- Total tracked files: **3345** (confirmed by `git ls-files | wc -l` at HEAD).
- Directory groups: **149**; extension groups: **29**; every group sum equals 3345.
- Top directories: `wizard-work/sphinx/archive-memgallery-2026-10-21/figures`
(635), `wizard-work/spark` (372), `replies` (366).
- Top extensions: `md` (829), `png` (803), `py` (653), `txt` (551),
`json` (231).
- SHA-256 (content): repo_tree.tsv `4f9734382d845bf7…`,
repo_exts.tsv `4df53c190854c7c8…`, repo_files.tsv `6ead4a46156d2b47…`.
## Verification (the verdict gate)
`verify_tree_census.py` independently re-enumerates the repo from git and diffs
the recomputed tables field-for-field against the committed artifacts.
Exit code 0 = artifact matches a fresh source recompute (all checks passed);
nonzero = mismatch.
```
cd /root/troupe-standup && ./wizard-work/ledger/verify.sh
```
+30
View File
@@ -0,0 +1,30 @@
rank extension file_count
1 md 830
2 png 803
3 py 653
4 txt 551
5 json 231
6 sh 56
7 html 55
8 csv 43
9 svg 31
10 (none) 16
11 age 16
12 tsv 15
13 xml 12
14 log 5
15 pdf 4
16 sha256 4
17 jsonl 3
18 mp3 3
19 c 2
20 diff 2
21 jpg 2
22 check 1
23 dl 1
24 goyiwz 1
25 gz 1
26 md5 1
27 "py""" 1
28 rc 1
29 yaml 1
1 rank extension file_count
2 1 md 830
3 2 png 803
4 3 py 653
5 4 txt 551
6 5 json 231
7 6 sh 56
8 7 html 55
9 8 csv 43
10 9 svg 31
11 10 (none) 16
12 11 age 16
13 12 tsv 15
14 13 xml 12
15 14 log 5
16 15 pdf 4
17 16 sha256 4
18 17 jsonl 3
19 18 mp3 3
20 19 c 2
21 20 diff 2
22 21 jpg 2
23 22 check 1
24 23 dl 1
25 24 goyiwz 1
26 25 gz 1
27 26 md5 1
28 27 py" 1
29 28 rc 1
30 29 yaml 1
File diff suppressed because it is too large. Load diff
+150
View File
@@ -0,0 +1,150 @@
rank directory file_count
1 wizard-work/sphinx/archive-memgallery-2026-10-21/figures 635
2 wizard-work/spark 372
3 replies 366
4 wizard-work/sphinx/longctx-needle-grounding-2026-10-22/chunks 229
5 wizard-work/ledger 159
6 wizard-work/forge 104
7 wizard-work/sol 98
8 checkins 92
9 wizard-work/beam 78
10 recoveries 63
11 wizard-work/volt 58
12 wizard-work/sphinx/longctx-figure-grounding-2026-10-21/figures 50
13 wizard-work/sphinx/longctx-figure-grounding-2026-10-21/ocr 50
14 wizard-work/sphinx/longctx-figure-grounding-2026-10-21/renders 50
15 wizard-work/quill 35
16 tools 26
17 wizard-work/sphinx/arxiv-digest-verified-2026-10-25 23
18 wizard-work/sphinx/archive-gemini25-2026-10-24/figures 22
19 wizard-work/sphinx/archive-memgallery-2026-10-21 22
20 wizard-work/sphinx/archive-memlens-2026-10-22 22
21 wizard-work/sphinx/archive-mm-prm-2026-10-22/chunks 18
22 access 17
23 wizard-work/null 17
24 wizard-work/sphinx/archive-mm-prm-2026-10-22/tables 17
25 career-lane 16
26 wizard-work/sphinx/archive-lc-mm-dossier-2026-10-23/sources 16
27 wizard-work/sphinx/phonon-reel-audio-archive-2026-10-21 16
28 wizard-work/sphinx/archive-lc-mm-dossier-2026-10-23/captions 15
29 wizard-work/sphinx/archive-lc-mm-dossier-2026-10-23/corpus 15
30 wizard-work/sphinx/archive-lc-mm-dossier-2026-10-23/text 15
31 wizard-work/sphinx/archive-transformer-pdf-modality-2026-10-23/text 15
32 wizard-work/sphinx/archive-transformer-pdf-modality-2026-10-23/text-layout 15
33 wizard-work/sphinx/archive-arxiv-lc-2026-10-22 14
34 wizard-work/sphinx/archive-remember-r1-figures-2026-10-23 14
35 wizard-work/sphinx/longctx-arxiv-archive-2026-10-20 13
36 wizard-work/sphinx/longctx-citations-2026-10-21 13
37 wizard-work/sphinx/archive-kvcc-reconcile-2026-10-23/sources 12
38 wizard-work/sphinx/archive-remember-r1-figures-2026-10-23/figures 12
39 wizard-work/sphinx/longctx-arxiv-archive-2026-10-20/corpus 12
40 wizard-work/sphinx/longctx-citations-2026-10-21/sources 12
41 wizard-work/sphinx/longctx-niah-bench-2026-10-21/corpus 12
42 wizard-work/null/jsonpatch 11
43 wizard-work/sphinx/archive-lc-mm-dossier-2026-10-23 11
44 wizard-work/sphinx/longctx-figure-grounding-2026-10-21 11
45 wizard-work/sphinx/longctx-niah-bench-2026-10-21 11
46 wizard-work/sphinx/archive-gemini25-2026-10-24 10
47 wizard-work/sphinx/archive-transformer-pdf-modality-2026-10-23 10
48 wizard-work/sphinx/longctx-needle-grounding-2026-10-22 10
49 wizard-work/sphinx/longctx-needle-grounding-2026-10-22/tools 10
50 (root) 9
51 harness-reflections 9
52 wizard-work/null/base32c 9
53 wizard-work/sphinx 9
54 wizard-work/sphinx/archive-lcmm-metadata-2026-10-25 9
55 docs 8
56 wizard-work/sphinx/archive-kvcc-reconcile-2026-10-23 8
57 wizard-work/sphinx/archive-lc-coverage-crossindex-2026-10-23 8
58 wizard-work/sphinx/archive-lc-coverage-crossindex-2026-10-23/raw 8
59 wizard-work/ledger/2026-10-24-countries-gdp-nominal 7
60 wizard-work/ledger/2026-10-25-git-history-live-b1edd09 7
61 wizard-work/ledger/2026-10-25-head-20-commits 7
62 wizard-work/sphinx/archive-mmlongcite-2026-10-25 7
63 wizard-work/sphinx/figure-locator-llama3-2026-10-24 7
64 wizard-work/sphinx/longctx-needle-grounding-2026-10-22/raw 7
65 wizard-work/sphinx/longctx-needle-grounding-2026-10-22/text 7
66 wizard-work/null/diffkit 6
67 wizard-work/null/schedkit 6
68 wizard-work/sphinx/archive-agentic-memory-5paper-dossier-2026-10-25 6
69 wizard-work/sphinx/archive-gutenberg/raw 6
70 wizard-work/sphinx/archive-gutenberg/txt 6
71 wizard-work/sphinx/archive-mm-prm-2026-10-22 6
72 wizard-work/sphinx/archive-transformer-pdf-modality-2026-10-23/figures 6
73 wizard-work/sphinx/longcontext-archive-2026-10-21/raw 6
74 wizard-work/sphinx/longctx-figure-grounding-2026-10-21/figverify-egmmujuw 6
75 wizard-work/sphinx/phonon-reel-audio-archive-2026-10-21/spectra 6
76 wizard-work/sphinx/transformer-archive 6
77 wizard-work/ledger/2026-10-22-top-ml-repos 5
78 wizard-work/ledger/2026-10-22-top-repos-by-stars 5
79 wizard-work/ledger/gdp-us-states-2026-10-23 5
80 wizard-work/ledger/top-50-repos-by-stars 5
81 wizard-work/null/artifact-seal 5
82 wizard-work/null/crdtkit 5
83 wizard-work/null/datalogkit 5
84 wizard-work/null/deporder 5
85 wizard-work/null/minisql 5
86 wizard-work/sphinx/archive-agentic-memory-5paper-dossier-2026-10-25/corpus 5
87 decisions 4
88 notes 4
89 wizard-work/ledger/2026-10-22-media-catalog 4
90 wizard-work/ledger/2026-10-24-job-postings 4
91 wizard-work/null/budgeted-planner 4
92 wizard-work/null/checklint 4
93 wizard-work/null/jsonpatch/_probe_cli_tmp 4
94 wizard-work/null/schedkit/evidence 4
95 wizard-work/sol/triage-inbox-2026-09-26 4
96 wizard-work/sphinx/archive-gemini25-2026-10-24/meta 4
97 wizard-work/sphinx/archive-gutenberg 4
98 wizard-work/sphinx/archive-mmlongcite-2026-10-25/source 4
99 wizard-work/sphinx/longcontext-archive-2026-10-21/figures 4
100 wizard-work/sphinx/longcontext-archive-2026-10-21/tools 4
101 wizard-work/sphinx/longctx-figure-grounding-2026-10-21/figverify-aq5whmkm 4
102 wizard-work/null/deporder/examples 3
103 wizard-work/null/intervalkit 3
104 wizard-work/null/raglite 3
105 wizard-work/sphinx/archive-index-2026-10-23 3
106 wizard-work/sphinx/archive-lc-mm-dossier-2026-10-23/figures/2609.17688v1 3
107 wizard-work/sphinx/archive-lc-mm-dossier-2026-10-23/figures/2609.36651v1 3
108 wizard-work/sphinx/archive-lc-mm-dossier-2026-10-23/figures/2609.38154v1 3
109 wizard-work/sphinx/archive-lc-mm-dossier-2026-10-23/figures/2610.01927v1 3
110 wizard-work/sphinx/archive-lc-mm-dossier-2026-10-23/figures/2610.02181v1 3
111 wizard-work/sphinx/archive-lc-mm-dossier-2026-10-23/figures/2610.05940v1 3
112 wizard-work/sphinx/archive-lc-mm-dossier-2026-10-23/figures/2610.09027v1 3
113 wizard-work/sphinx/archive-lc-mm-dossier-2026-10-23/figures/2610.11924v1 3
114 wizard-work/sphinx/archive-lc-mm-dossier-2026-10-23/figures/2610.26431v1 3
115 wizard-work/sphinx/archive-memgallery-2026-10-21/raw 3
116 wizard-work/sphinx/archive-mm-prm-2026-10-22/figures 3
117 wizard-work/sphinx/archive-transformer-pdf-modality-2026-10-23/rasters 3
118 wizard-work/sphinx/figure-label-audit 3
119 wizard-work/sphinx/phonon-reel-audio-archive-2026-10-21/sources 3
120 wizard-work/volt/2026-10-22-media-catalog-verify 3
121 wizard-work/beam/toposort 2
122 wizard-work/null/chunktext 2
123 wizard-work/null/regexnfa 2
124 wizard-work/spark/test_valid_json 2
125 wizard-work/sphinx/archive-gemini25-2026-10-24/raw 2
126 wizard-work/sphinx/archive-lc-mm-dossier-2026-10-23/figures/2609.25611v1 2
127 wizard-work/sphinx/archive-lc-mm-dossier-2026-10-23/figures/2609.27470v1 2
128 wizard-work/sphinx/archive-lc-mm-dossier-2026-10-23/figures/2609.32182v1 2
129 wizard-work/sphinx/archive-lc-mm-dossier-2026-10-23/figures/2609.36364v1 2
130 wizard-work/sphinx/archive-lc-mm-dossier-2026-10-23/figures/2610.10156v1 2
131 wizard-work/sphinx/archive-transformer-pdf-modality-2026-10-23/cross-rendering 2
132 wizard-work/sphinx/longcontext-archive-2026-10-21 2
133 wizard-work/sphinx/phonon-reel-audio-archive-2026-10-21/evidence 2
134 """wizard-work/beam/CHECK\ncontent\"">\n#!/bin/bash\n# CHECK: verify all beam reliability primitives\nset -e\ncd \""$(dirname \""$(readlink -f \""$0\"")\"")\""\npython3 -m unittest discover -p 'test_*.py' -v\npython3 toposort" 1
135 audits 1
136 docs/q13-fix-pack 1
137 inbox 1
138 wizard-work/null/datalogkit/examples 1
139 wizard-work/null/membershipkit 1
140 wizard-work/null/minisql/_archive 1
141 wizard-work/quill/drafting-standup-reports 1
142 wizard-work/sphinx/archive-kvcc-reconcile-2026-10-23/figures 1
143 wizard-work/sphinx/archive-lc-mm-dossier-2026-10-23/figures/2610.23250v1 1
144 wizard-work/sphinx/archive-lcmm-metadata-2026-10-25/source 1
145 wizard-work/sphinx/archive-proactegomem-2026-10-23 1
146 wizard-work/sphinx/archive-transformer-pdf-modality-2026-10-23/source 1
147 wizard-work/sphinx/figure-locator-llama3-2026-10-24/source 1
148 wizard-work/sphinx/longcontext-archive-2026-10-21/manifest 1
149 wizard-work/sphinx/longctx-needle-grounding-2026-10-22/manifests 1
1 rank directory file_count
2 1 wizard-work/sphinx/archive-memgallery-2026-10-21/figures 635
3 2 wizard-work/spark 372
4 3 replies 366
5 4 wizard-work/sphinx/longctx-needle-grounding-2026-10-22/chunks 229
6 5 wizard-work/ledger 159
7 6 wizard-work/forge 104
8 7 wizard-work/sol 98
9 8 checkins 92
10 9 wizard-work/beam 78
11 10 recoveries 63
12 11 wizard-work/volt 58
13 12 wizard-work/sphinx/longctx-figure-grounding-2026-10-21/figures 50
14 13 wizard-work/sphinx/longctx-figure-grounding-2026-10-21/ocr 50
15 14 wizard-work/sphinx/longctx-figure-grounding-2026-10-21/renders 50
16 15 wizard-work/quill 35
17 16 tools 26
18 17 wizard-work/sphinx/arxiv-digest-verified-2026-10-25 23
19 18 wizard-work/sphinx/archive-gemini25-2026-10-24/figures 22
20 19 wizard-work/sphinx/archive-memgallery-2026-10-21 22
21 20 wizard-work/sphinx/archive-memlens-2026-10-22 22
22 21 wizard-work/sphinx/archive-mm-prm-2026-10-22/chunks 18
23 22 access 17
24 23 wizard-work/null 17
25 24 wizard-work/sphinx/archive-mm-prm-2026-10-22/tables 17
26 25 career-lane 16
27 26 wizard-work/sphinx/archive-lc-mm-dossier-2026-10-23/sources 16
28 27 wizard-work/sphinx/phonon-reel-audio-archive-2026-10-21 16
29 28 wizard-work/sphinx/archive-lc-mm-dossier-2026-10-23/captions 15
30 29 wizard-work/sphinx/archive-lc-mm-dossier-2026-10-23/corpus 15
31 30 wizard-work/sphinx/archive-lc-mm-dossier-2026-10-23/text 15
32 31 wizard-work/sphinx/archive-transformer-pdf-modality-2026-10-23/text 15
33 32 wizard-work/sphinx/archive-transformer-pdf-modality-2026-10-23/text-layout 15
34 33 wizard-work/sphinx/archive-arxiv-lc-2026-10-22 14
35 34 wizard-work/sphinx/archive-remember-r1-figures-2026-10-23 14
36 35 wizard-work/sphinx/longctx-arxiv-archive-2026-10-20 13
37 36 wizard-work/sphinx/longctx-citations-2026-10-21 13
38 37 wizard-work/sphinx/archive-kvcc-reconcile-2026-10-23/sources 12
39 38 wizard-work/sphinx/archive-remember-r1-figures-2026-10-23/figures 12
40 39 wizard-work/sphinx/longctx-arxiv-archive-2026-10-20/corpus 12
41 40 wizard-work/sphinx/longctx-citations-2026-10-21/sources 12
42 41 wizard-work/sphinx/longctx-niah-bench-2026-10-21/corpus 12
43 42 wizard-work/null/jsonpatch 11
44 43 wizard-work/sphinx/archive-lc-mm-dossier-2026-10-23 11
45 44 wizard-work/sphinx/longctx-figure-grounding-2026-10-21 11
46 45 wizard-work/sphinx/longctx-niah-bench-2026-10-21 11
47 46 wizard-work/sphinx/archive-gemini25-2026-10-24 10
48 47 wizard-work/sphinx/archive-transformer-pdf-modality-2026-10-23 10
49 48 wizard-work/sphinx/longctx-needle-grounding-2026-10-22 10
50 49 wizard-work/sphinx/longctx-needle-grounding-2026-10-22/tools 10
51 50 (root) 9
52 51 harness-reflections 9
53 52 wizard-work/null/base32c 9
54 53 wizard-work/sphinx 9
55 54 wizard-work/sphinx/archive-lcmm-metadata-2026-10-25 9
56 55 docs 8
57 56 wizard-work/sphinx/archive-kvcc-reconcile-2026-10-23 8
58 57 wizard-work/sphinx/archive-lc-coverage-crossindex-2026-10-23 8
59 58 wizard-work/sphinx/archive-lc-coverage-crossindex-2026-10-23/raw 8
60 59 wizard-work/ledger/2026-10-24-countries-gdp-nominal 7
61 60 wizard-work/ledger/2026-10-25-git-history-live-b1edd09 7
62 61 wizard-work/ledger/2026-10-25-head-20-commits 7
63 62 wizard-work/sphinx/archive-mmlongcite-2026-10-25 7
64 63 wizard-work/sphinx/figure-locator-llama3-2026-10-24 7
65 64 wizard-work/sphinx/longctx-needle-grounding-2026-10-22/raw 7
66 65 wizard-work/sphinx/longctx-needle-grounding-2026-10-22/text 7
67 66 wizard-work/null/diffkit 6
68 67 wizard-work/null/schedkit 6
69 68 wizard-work/sphinx/archive-agentic-memory-5paper-dossier-2026-10-25 6
70 69 wizard-work/sphinx/archive-gutenberg/raw 6
71 70 wizard-work/sphinx/archive-gutenberg/txt 6
72 71 wizard-work/sphinx/archive-mm-prm-2026-10-22 6
73 72 wizard-work/sphinx/archive-transformer-pdf-modality-2026-10-23/figures 6
74 73 wizard-work/sphinx/longcontext-archive-2026-10-21/raw 6
75 74 wizard-work/sphinx/longctx-figure-grounding-2026-10-21/figverify-egmmujuw 6
76 75 wizard-work/sphinx/phonon-reel-audio-archive-2026-10-21/spectra 6
77 76 wizard-work/sphinx/transformer-archive 6
78 77 wizard-work/ledger/2026-10-22-top-ml-repos 5
79 78 wizard-work/ledger/2026-10-22-top-repos-by-stars 5
80 79 wizard-work/ledger/gdp-us-states-2026-10-23 5
81 80 wizard-work/ledger/top-50-repos-by-stars 5
82 81 wizard-work/null/artifact-seal 5
83 82 wizard-work/null/crdtkit 5
84 83 wizard-work/null/datalogkit 5
85 84 wizard-work/null/deporder 5
86 85 wizard-work/null/minisql 5
87 86 wizard-work/sphinx/archive-agentic-memory-5paper-dossier-2026-10-25/corpus 5
88 87 decisions 4
89 88 notes 4
90 89 wizard-work/ledger/2026-10-22-media-catalog 4
91 90 wizard-work/ledger/2026-10-24-job-postings 4
92 91 wizard-work/null/budgeted-planner 4
93 92 wizard-work/null/checklint 4
94 93 wizard-work/null/jsonpatch/_probe_cli_tmp 4
95 94 wizard-work/null/schedkit/evidence 4
96 95 wizard-work/sol/triage-inbox-2026-09-26 4
97 96 wizard-work/sphinx/archive-gemini25-2026-10-24/meta 4
98 97 wizard-work/sphinx/archive-gutenberg 4
99 98 wizard-work/sphinx/archive-mmlongcite-2026-10-25/source 4
100 99 wizard-work/sphinx/longcontext-archive-2026-10-21/figures 4
101 100 wizard-work/sphinx/longcontext-archive-2026-10-21/tools 4
102 101 wizard-work/sphinx/longctx-figure-grounding-2026-10-21/figverify-aq5whmkm 4
103 102 wizard-work/null/deporder/examples 3
104 103 wizard-work/null/intervalkit 3
105 104 wizard-work/null/raglite 3
106 105 wizard-work/sphinx/archive-index-2026-10-23 3
107 106 wizard-work/sphinx/archive-lc-mm-dossier-2026-10-23/figures/2609.17688v1 3
108 107 wizard-work/sphinx/archive-lc-mm-dossier-2026-10-23/figures/2609.36651v1 3
109 108 wizard-work/sphinx/archive-lc-mm-dossier-2026-10-23/figures/2609.38154v1 3
110 109 wizard-work/sphinx/archive-lc-mm-dossier-2026-10-23/figures/2610.01927v1 3
111 110 wizard-work/sphinx/archive-lc-mm-dossier-2026-10-23/figures/2610.02181v1 3
112 111 wizard-work/sphinx/archive-lc-mm-dossier-2026-10-23/figures/2610.05940v1 3
113 112 wizard-work/sphinx/archive-lc-mm-dossier-2026-10-23/figures/2610.09027v1 3
114 113 wizard-work/sphinx/archive-lc-mm-dossier-2026-10-23/figures/2610.11924v1 3
115 114 wizard-work/sphinx/archive-lc-mm-dossier-2026-10-23/figures/2610.26431v1 3
116 115 wizard-work/sphinx/archive-memgallery-2026-10-21/raw 3
117 116 wizard-work/sphinx/archive-mm-prm-2026-10-22/figures 3
118 117 wizard-work/sphinx/archive-transformer-pdf-modality-2026-10-23/rasters 3
119 118 wizard-work/sphinx/figure-label-audit 3
120 119 wizard-work/sphinx/phonon-reel-audio-archive-2026-10-21/sources 3
121 120 wizard-work/volt/2026-10-22-media-catalog-verify 3
122 121 wizard-work/beam/toposort 2
123 122 wizard-work/null/chunktext 2
124 123 wizard-work/null/regexnfa 2
125 124 wizard-work/spark/test_valid_json 2
126 125 wizard-work/sphinx/archive-gemini25-2026-10-24/raw 2
127 126 wizard-work/sphinx/archive-lc-mm-dossier-2026-10-23/figures/2609.25611v1 2
128 127 wizard-work/sphinx/archive-lc-mm-dossier-2026-10-23/figures/2609.27470v1 2
129 128 wizard-work/sphinx/archive-lc-mm-dossier-2026-10-23/figures/2609.32182v1 2
130 129 wizard-work/sphinx/archive-lc-mm-dossier-2026-10-23/figures/2609.36364v1 2
131 130 wizard-work/sphinx/archive-lc-mm-dossier-2026-10-23/figures/2610.10156v1 2
132 131 wizard-work/sphinx/archive-transformer-pdf-modality-2026-10-23/cross-rendering 2
133 132 wizard-work/sphinx/longcontext-archive-2026-10-21 2
134 133 wizard-work/sphinx/phonon-reel-audio-archive-2026-10-21/evidence 2
135 134 "wizard-work/beam/CHECK\ncontent\">\n#!/bin/bash\n# CHECK: verify all beam reliability primitives\nset -e\ncd \"$(dirname \"$(readlink -f \"$0\")\")\"\npython3 -m unittest discover -p 'test_*.py' -v\npython3 toposort 1
136 135 audits 1
137 136 docs/q13-fix-pack 1
138 137 inbox 1
139 138 wizard-work/null/datalogkit/examples 1
140 139 wizard-work/null/membershipkit 1
141 140 wizard-work/null/minisql/_archive 1
142 141 wizard-work/quill/drafting-standup-reports 1
143 142 wizard-work/sphinx/archive-kvcc-reconcile-2026-10-23/figures 1
144 143 wizard-work/sphinx/archive-lc-mm-dossier-2026-10-23/figures/2610.23250v1 1
145 144 wizard-work/sphinx/archive-lcmm-metadata-2026-10-25/source 1
146 145 wizard-work/sphinx/archive-proactegomem-2026-10-23 1
147 146 wizard-work/sphinx/archive-transformer-pdf-modality-2026-10-23/source 1
148 147 wizard-work/sphinx/figure-locator-llama3-2026-10-24/source 1
149 148 wizard-work/sphinx/longcontext-archive-2026-10-21/manifest 1
150 149 wizard-work/sphinx/longctx-needle-grounding-2026-10-22/manifests 1
+5
View File
@@ -0,0 +1,5 @@
#!/usr/bin/env bash
# Verdict gate for the ledger file-tree census artifact.
# Exit code 0 = correct (artifact matches a fresh git recompute); nonzero = wrong.
cd /root/troupe-standup || exit 1
exec python3 wizard-work/ledger/verify_tree_census.py
+96
View File
@@ -0,0 +1,96 @@
#!/usr/bin/env python3
"""Verify the file-tree census & extension census artifact against a fresh git recompute.
Exit code 0 = artifact matches a fresh source recompute (all checks passed),
nonzero = mismatch. Not a tautology: it re-enumerates the repo from git and
compares the produced tables field-for-field against the committed files.
"""
import csv
import os
import subprocess
import sys
from collections import Counter
REPO = "/root/troupe-standup"
DEST = os.path.join(REPO, "wizard-work", "ledger")
FILES = ["repo_tree.tsv", "repo_exts.tsv", "repo_files.tsv"]
def run(args):
return subprocess.run(args, cwd=REPO, capture_output=True, text=True)
def read_tsv(name):
with open(os.path.join(DEST, name), newline="", encoding="utf-8") as f:
return list(csv.reader(f, delimiter="\t"))
def main():
failures = 0
def check(name, cond, detail=""):
nonlocal failures
print(("%s %s" % ("PASS" if cond else "FAIL", name)) + ((" " + detail) if (detail and not cond) else ""))
if not cond:
failures += 1
# 1) fresh enumeration from git
tree = run(["git", "ls-tree", "-r", "--name-only", "HEAD"])
check("git ls-tree exit 0", tree.returncode == 0, tree.stderr.strip())
paths = [l for l in tree.stdout.splitlines() if l.strip()]
check("git ls-tree lists files", len(paths) > 0, "got %d" % len(paths))
dir_counts = Counter()
ext_counts = Counter()
for p in paths:
d = os.path.dirname(p)
dir_counts[d if d else "(root)"] += 1
ext = os.path.splitext(p)[1].lstrip(".").lower() or "(none)"
ext_counts[ext] += 1
# 2) repo_tree.tsv
rows = read_tsv("repo_tree.tsv")
check("repo_tree header", rows[0] == ["rank", "directory", "file_count"], str(rows[0]))
data = rows[1:]
expected_tree = sorted(dir_counts.items(), key=lambda kv: (-kv[1], kv[0]))
check("repo_tree rows == directory groups",
len(data) == len(expected_tree),
"got %d, expected %d" % (len(data), len(expected_tree)))
check("repo_tree dir/counts match recompute",
[(r[1], int(r[2])) for r in data] == [(d, c) for d, c in expected_tree])
# 3) repo_exts.tsv
rows = read_tsv("repo_exts.tsv")
check("repo_exts header", rows[0] == ["rank", "extension", "file_count"], str(rows[0]))
data = rows[1:]
expected_ext = sorted(ext_counts.items(), key=lambda kv: (-kv[1], kv[0]))
check("repo_exts rows == extension groups",
len(data) == len(expected_ext),
"got %d, expected %d" % (len(data), len(expected_ext)))
check("repo_exts ext/counts match recompute",
[(r[1], int(r[2])) for r in data] == [(d, c) for d, c in expected_ext])
# 4) repo_files.tsv
rows = read_tsv("repo_files.tsv")
check("repo_files header", rows[0] == ["rank", "path"], str(rows[0]))
file_paths = [r[1] for r in rows[1:]]
check("repo_files data rows == git ls-tree rows",
len(file_paths) == len(paths),
"got %d, git ls-tree %d" % (len(file_paths), len(paths)))
check("repo_files rows equal git ls-tree set",
sorted(file_paths) == sorted(paths))
# 5) group sums reconcile to total
check("dir sum == total", sum(dir_counts.values()) == len(paths),
"got %d, total %d" % (sum(dir_counts.values()), len(paths)))
check("ext sum == total", sum(ext_counts.values()) == len(paths),
"got %d, total %d" % (sum(ext_counts.values()), len(paths)))
print("result:", "PASS" if failures == 0 else "FAIL")
sys.exit(1 if failures else 0)
if __name__ == "__main__":
main()