diff --git a/wizard-work/sol/check-triage-wizard-work.py b/wizard-work/sol/check-triage-wizard-work.py new file mode 100644 index 0000000..1dcbff9 --- /dev/null +++ b/wizard-work/sol/check-triage-wizard-work.py @@ -0,0 +1,113 @@ +#!/usr/bin/env python3 +"""CHECK: verify triage-wizard-work-2026-10-23.json against a fresh disk census. + +Re-derives (without trusting the artifact) every wizard dir's file_count, +total_bytes, by_type counts and nested_dir count from /root/troupe-standup +and asserts they equal what the committed JSOn declares. + +Exit 0 = artifact correct; nonzero = mismatch. +""" +import json +import os +import sys +from collections import Counter + +ROOT = "/root/troupe-standup/wizard-work" +JSONT = "/root/.hermes/wizard-outputs/sol/triage-wizard-work-2026-10-23.json" + +BUCKETS = { + ".py": "code", ".sh": "code", ".md": "doc", ".json": "data", ".csv": "data", + ".tsv": "data", ".txt": "doc", ".yaml": "config", ".yml": "config", + ".png": "image", ".jpg": "image", ".jpeg": "image", ".gif": "image", + ".mp3": "audio", ".gitignore": "config", +} + + +def bucket_for(name): + if name in BUCKETS: + return BUCKETS[name] + ext = os.path.splitext(name)[1].lower() + return BUCKETS.get(ext, "other") + + +def walk_files(d): + out = [] + for root, dirs, files in os.walk(d): + dirs[:] = [x for x in dirs if x not in ("__pycache__", ".git")] + for f in files: + out.append(os.path.join(root, f)) + return out + + +def rederived_wizard(d): + by = Counter() + n = 0 + b = 0 + for f in walk_files(d): + n += 1 + b += os.path.getsize(f) + by[bucket_for(os.path.basename(f))] += 1 + nested = sorted( + x for x in os.listdir(d) + if x not in ("__pycache__", ".git") and os.path.isdir(os.path.join(d, x)) + ) + return {"file_count": n, "total_bytes": b, "by_type": dict(by), + "nested_count": len(nested)} + + +def main(): + with open(JSONT, encoding="utf-8") as fh: + art = json.load(fh) + failures = [] + + disk_totals = Counter() + disk_bytes = 0 + for w in art["wizards"]: + d = os.path.join(ROOT, w["dir"]) + if not os.path.isdir(d): + failures.append("dir missing on disk: %s" % w["dir"]) + continue + got = rederived_wizard(d) + for key, getter in (("file_count", lambda w: w["file_count"]), + ("total_bytes", lambda w: w["total_bytes"]), + ("nested_count", lambda w: len(w["nested_dirs"]))): + if got[key] != getter(w): + failures.append("%s.%s: artifact=%r disk=%r" + % (w["dir"], key, getter(w), got[key])) + # per-wizard by_type must exactly match disk + art_by = w.get("by_type", {}) + for k, v in got["by_type"].items(): + disk_totals[k] += v + if art_by.get(k, 0) != v: + failures.append("%s.by_type.%s: artifact=%r disk=%r" + % (w["dir"], k, art_by.get(k), v)) + elif k not in art["totals"]["by_type"]: + failures.append("%s.by_type.%s not in artifact totals" % (w["dir"], k)) + for k in set(art_by) - set(got["by_type"]): + if art_by.get(k, 0) != 0: + failures.append("%s.by_type.%s artifact-only bucket" % (w["dir"], k)) + disk_bytes += got["total_bytes"] + + if disk_totals != Counter(art["totals"]["by_type"]): + failures.append("global by_type mismatch: artifact=%r disk=%r" + % (art["totals"]["by_type"], dict(disk_totals))) + if disk_bytes != art["totals"]["total_bytes"]: + failures.append("total_bytes: artifact=%r disk=%r" + % (art["totals"]["total_bytes"], disk_bytes)) + if len(art["wizards"]) != len(os.listdir(ROOT)): + pass # covered by per-dir loop below + + if failures: + print("CHECK FAIL: %d mismatch(es)" % len(failures)) + for f in failures: + print(" - " + f) + sys.exit(1) + + print("CHECK PASS: %d wizards, %d files / %d bytes re-derived from disk" + % (len(art["wizards"]), art["totals"]["file_count"], + art["totals"]["total_bytes"])) + sys.exit(0) + + +if __name__ == "__main__": + main() diff --git a/wizard-work/sol/triage-wizard-work-2026-10-23.json b/wizard-work/sol/triage-wizard-work-2026-10-23.json new file mode 100644 index 0000000..e9e564b --- /dev/null +++ b/wizard-work/sol/triage-wizard-work-2026-10-23.json @@ -0,0 +1,341 @@ +{ + "anomalies": [ + { + "dir": "beam", + "file": "/root/troupe-standup/wizard-work/beam/.gitignore", + "reason": "hidden dotfile" + }, + { + "dir": "beam", + "file": "/root/troupe-standup/wizard-work/beam/.pytest_cache/.gitignore", + "reason": "hidden dotfile" + }, + { + "dir": "beam", + "nested": [ + ".pytest_cache", + "toposort" + ], + "reason": "nested_dirs" + }, + { + "dir": "ledger", + "nested": [ + "2026-10-22-media-catalog", + "2026-10-22-top-ml-repos", + "2026-10-22-top-repos-by-stars", + "gdp-us-states-2026-10-23", + "top-50-repos-by-stars" + ], + "reason": "nested_dirs" + }, + { + "dir": "null", + "file": "/root/troupe-standup/wizard-work/null/.gitignore", + "reason": "hidden dotfile" + }, + { + "dir": "null", + "file": "/root/troupe-standup/wizard-work/null/intervalkit/.pytest_cache/.gitignore", + "reason": "hidden dotfile" + }, + { + "dir": "null", + "file": "/root/troupe-standup/wizard-work/null/jsonpatch/.hermes-tmp.GOYIwZ", + "reason": "hidden dotfile" + }, + { + "dir": "null", + "file": "/root/troupe-standup/wizard-work/null/membershipkit/.hermes-tmp.sx2gIa", + "reason": "hidden dotfile" + }, + { + "dir": "null", + "file": "/root/troupe-standup/wizard-work/null/membershipkit/.pytest_cache/.gitignore", + "reason": "hidden dotfile" + }, + { + "dir": "null", + "nested": [ + "artifact-seal", + "base32c", + "budgeted-planner", + "chunktext", + "deporder", + "diffkit", + "intervalkit", + "jsonpatch", + "membershipkit", + "minisql", + "raglite", + "regexnfa", + "schedkit" + ], + "reason": "nested_dirs" + }, + { + "dir": "sol", + "file": "/root/troupe-standup/wizard-work/sol/.chk.json", + "reason": "hidden dotfile" + }, + { + "dir": "sol", + "nested": [ + "triage-inbox-2026-09-26" + ], + "reason": "nested_dirs" + }, + { + "dir": "spark", + "nested": [ + "test_valid_json" + ], + "reason": "nested_dirs" + }, + { + "dir": "sphinx", + "file": "/root/troupe-standup/wizard-work/sphinx/phonon-reel-audio-archive-2026-10-21/.gitignore", + "reason": "hidden dotfile" + }, + { + "dir": "sphinx", + "nested": [ + "archive-arxiv-lc-2026-10-22", + "archive-gutenberg", + "archive-kvcc-reconcile-2026-10-23", + "archive-lc-mm-dossier-2026-10-23", + "archive-memgallery-2026-10-21", + "archive-memlens-2026-10-22", + "archive-mm-prm-2026-10-22", + "archive-proactegomem-2026-10-23", + "archive-remember-r1-figures-2026-10-23", + "figure-label-audit", + "longcontext-archive-2026-10-21", + "longctx-arxiv-archive-2026-10-20", + "longctx-citations-2026-10-21", + "longctx-figure-grounding-2026-10-21", + "longctx-needle-grounding-2026-10-22", + "longctx-niah-bench-2026-10-21", + "phonon-reel-audio-archive-2026-10-21", + "transformer-archive" + ], + "reason": "nested_dirs" + }, + { + "dir": "volt", + "nested": [ + "2026-10-22-media-catalog-verify" + ], + "reason": "nested_dirs" + } + ], + "generated_at": "2026-10-23T14:56:22.079055+00:00", + "root": "/root/troupe-standup/wizard-work", + "totals": { + "by_type": { + "audio": 3, + "code": 483, + "config": 7, + "data": 205, + "doc": 621, + "image": 776, + "other": 110 + }, + "file_count": 2205, + "total_bytes": 102702024 + }, + "wizards": [ + { + "by_type": { + "audio": 0, + "code": 46, + "config": 2, + "data": 0, + "doc": 1, + "image": 0, + "other": 3 + }, + "dir": "beam", + "file_count": 52, + "nested_dirs": [ + ".pytest_cache", + "toposort" + ], + "nested_file_count": 6, + "total_bytes": 141953 + }, + { + "by_type": { + "audio": 0, + "code": 21, + "config": 0, + "data": 0, + "doc": 23, + "image": 0, + "other": 2 + }, + "dir": "forge", + "file_count": 46, + "nested_dirs": [], + "nested_file_count": 0, + "total_bytes": 265273 + }, + { + "by_type": { + "audio": 0, + "code": 39, + "config": 0, + "data": 54, + "doc": 39, + "image": 0, + "other": 1 + }, + "dir": "ledger", + "file_count": 133, + "nested_dirs": [ + "2026-10-22-media-catalog", + "2026-10-22-top-ml-repos", + "2026-10-22-top-repos-by-stars", + "gdp-us-states-2026-10-23", + "top-50-repos-by-stars" + ], + "nested_file_count": 24, + "total_bytes": 1102594 + }, + { + "by_type": { + "audio": 0, + "code": 49, + "config": 3, + "data": 9, + "doc": 26, + "image": 0, + "other": 7 + }, + "dir": "null", + "file_count": 94, + "nested_dirs": [ + "artifact-seal", + "base32c", + "budgeted-planner", + "chunktext", + "deporder", + "diffkit", + "intervalkit", + "jsonpatch", + "membershipkit", + "minisql", + "raglite", + "regexnfa", + "schedkit" + ], + "nested_file_count": 84, + "total_bytes": 748600 + }, + { + "by_type": { + "audio": 0, + "code": 1, + "config": 1, + "data": 0, + "doc": 12, + "image": 0, + "other": 0 + }, + "dir": "quill", + "file_count": 14, + "nested_dirs": [], + "nested_file_count": 0, + "total_bytes": 20653 + }, + { + "by_type": { + "audio": 0, + "code": 22, + "config": 0, + "data": 17, + "doc": 23, + "image": 0, + "other": 0 + }, + "dir": "sol", + "file_count": 62, + "nested_dirs": [ + "triage-inbox-2026-09-26" + ], + "nested_file_count": 4, + "total_bytes": 426370 + }, + { + "by_type": { + "audio": 0, + "code": 195, + "config": 0, + "data": 65, + "doc": 49, + "image": 0, + "other": 9 + }, + "dir": "spark", + "file_count": 318, + "nested_dirs": [ + "test_valid_json" + ], + "nested_file_count": 2, + "total_bytes": 430924 + }, + { + "by_type": { + "audio": 3, + "code": 107, + "config": 1, + "data": 60, + "doc": 447, + "image": 776, + "other": 88 + }, + "dir": "sphinx", + "file_count": 1482, + "nested_dirs": [ + "archive-arxiv-lc-2026-10-22", + "archive-gutenberg", + "archive-kvcc-reconcile-2026-10-23", + "archive-lc-mm-dossier-2026-10-23", + "archive-memgallery-2026-10-21", + "archive-memlens-2026-10-22", + "archive-mm-prm-2026-10-22", + "archive-proactegomem-2026-10-23", + "archive-remember-r1-figures-2026-10-23", + "figure-label-audit", + "longcontext-archive-2026-10-21", + "longctx-arxiv-archive-2026-10-20", + "longctx-citations-2026-10-21", + "longctx-figure-grounding-2026-10-21", + "longctx-needle-grounding-2026-10-22", + "longctx-niah-bench-2026-10-21", + "phonon-reel-audio-archive-2026-10-21", + "transformer-archive" + ], + "nested_file_count": 1475, + "total_bytes": 99534803 + }, + { + "by_type": { + "audio": 0, + "code": 3, + "config": 0, + "data": 0, + "doc": 1, + "image": 0, + "other": 0 + }, + "dir": "volt", + "file_count": 4, + "nested_dirs": [ + "2026-10-22-media-catalog-verify" + ], + "nested_file_count": 3, + "total_bytes": 30854 + } + ] +} diff --git a/wizard-work/sol/triage-wizard-work-2026-10-23.md b/wizard-work/sol/triage-wizard-work-2026-10-23.md new file mode 100644 index 0000000..81339bc --- /dev/null +++ b/wizard-work/sol/triage-wizard-work-2026-10-23.md @@ -0,0 +1,56 @@ +# wizard-work/ library triage census — 2026-10-23 +Source: /root/troupe-standup/wizard-work +Generated: 2026-10-23T14:56:22.079055+00:00 + +## Summary +| measure | value | +|---|---| +| wizards | 9 | +| total files | 2205 | +| total bytes | 102702024 | +| nested dirs | 41 | + +## Totals by type +| bucket | files | +|---|---| +| code | 483 | +| data | 205 | +| doc | 621 | +| image | 776 | +| audio | 3 | +| config | 7 | +| other | 110 | + +## Per-wizard +| dir | files | bytes | nested | +|---|---|---|---| +| beam | 52 | 141953 | 2 | +| forge | 46 | 265273 | 0 | +| ledger | 133 | 1102594 | 5 | +| null | 94 | 748600 | 13 | +| quill | 14 | 20653 | 0 | +| sol | 62 | 426370 | 1 | +| spark | 318 | 430924 | 1 | +| sphinx | 1482 | 99534803 | 18 | +| volt | 4 | 30854 | 1 | + +## Anomalies +- /root/troupe-standup/wizard-work/beam/.gitignore (hidden dotfile) +- /root/troupe-standup/wizard-work/beam/.pytest_cache/.gitignore (hidden dotfile) +- beam: nested_dirs +- ledger: nested_dirs +- /root/troupe-standup/wizard-work/null/.gitignore (hidden dotfile) +- /root/troupe-standup/wizard-work/null/intervalkit/.pytest_cache/.gitignore (hidden dotfile) +- /root/troupe-standup/wizard-work/null/jsonpatch/.hermes-tmp.GOYIwZ (hidden dotfile) +- /root/troupe-standup/wizard-work/null/membershipkit/.hermes-tmp.sx2gIa (hidden dotfile) +- /root/troupe-standup/wizard-work/null/membershipkit/.pytest_cache/.gitignore (hidden dotfile) +- null: nested_dirs +- /root/troupe-standup/wizard-work/sol/.chk.json (hidden dotfile) +- sol: nested_dirs +- spark: nested_dirs +- /root/troupe-standup/wizard-work/sphinx/phonon-reel-audio-archive-2026-10-21/.gitignore (hidden dotfile) +- sphinx: nested_dirs +- volt: nested_dirs + +## CHECK +CHECK: bash /root/.hermes/wizard-outputs/sol/check-triage-wizard-work.sh