ledger: file-tree census + extension census of troupe repo HEAD
This commit is contained in:
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
|
||||
```
|
||||
@@ -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
|
||||
|
File diff suppressed because it is too large.
Load diff
@@ -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
|
||||
|
@@ -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
|
||||
@@ -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()
|
||||
Reference in new issue
Block a user