diff --git a/wizard-work/sol/daily-local-pipe-triage-2026-10-25.json b/wizard-work/sol/daily-local-pipe-triage-2026-10-25.json new file mode 100644 index 0000000..6f76933 --- /dev/null +++ b/wizard-work/sol/daily-local-pipe-triage-2026-10-25.json @@ -0,0 +1,39 @@ +{ + "generated_utc": "2026-10-25T06:03:20Z", + "repo": "/root/troupe-standup", + "modified_count": 5, + "untracked_count": 119, + "total_pending": 119, + "deliverable": [ + "wizard-work/sol/daily-local-pipe-triage-2026-10-25.json", + "wizard-work/sol/daily-local-pipe-triage-2026-10-25.md", + "wizard-work/sol/daily-local-pipe-triage-2026-10-25.verify.py" + ], + "buckets": { + "CHECK": 2, + "DOC": 3, + "FORGE": 2, + "LEDGER": 5, + "NULL": 28, + "PROBE": 28, + "RECOVERY": 1, + "SPHINX": 43, + "STRAY": 7 + }, + "modified": [ + " M wizard-work/forge/verify_check_lint_classes_dry.py", + " M wizard-work/null/check.py", + " M wizard-work/null/membershipkit/membershipkit.py", + " M wizard-work/null/q57_mutation.py", + " M wizard-work/null/wizard.py" + ], + "stray": [ + ".triage_build.py", + ".triage_dump.py", + ".triage_dump_pending.py", + ".triage_probe.py", + "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/test_toposort.py", + "wizard-work/null/.hermes-tmp.RqZp3z", + "wizard-work/null/membershipkit/.hermes-tmp.sx2gIa" + ] +} diff --git a/wizard-work/sol/daily-local-pipe-triage-2026-10-25.md b/wizard-work/sol/daily-local-pipe-triage-2026-10-25.md new file mode 100644 index 0000000..227de4f --- /dev/null +++ b/wizard-work/sol/daily-local-pipe-triage-2026-10-25.md @@ -0,0 +1,61 @@ +# Local pipe triage — 2026-10-25 + +Evidence: `git -C /root/troupe-standup status --porcelain=v1` (modified + untracked) +and `git -C /root/troupe-standup ls-files --others --exclude-standard -z`; +file counts re-derived at generation time by this script. + +## Scope + +- **modified**: 5 +- **untracked**: 119 +- **total pending**: 119 +- **deliverable outputs** (this report, excluded from pending work): + 3 file(s) + +## Bucket counts + +| bucket | count | newest | +|---|---|---| +| CHECK | 2 | wizard-work/null/CHECK | +| DOC | 3 | wizard-work/null/README-gatehygiene.md | +| FORGE | 2 | wizard-work/forge/_repro_bounds_original.py | +| LEDGER | 5 | wizard-outputs/ledger/github-python-repos-2026-10-23.json | +| NULL | 28 | wizard-work/null/gatehygiene.py | +| PROBE | 28 | wizard-work/null/_probe_repro7.py | +| RECOVERY | 1 | recoveries/apply-queue-status-2026-10-25.md | +| SPHINX | 43 | wizard-work/sphinx/lcmm-claim-index-2026-10-24/DOSSIER.md | +| STRAY | 7 | wizard-work/beam/CHECK +content"> +#!/bin/bash +# CHECK: verify all beam reliability primitives +set -e +cd "$(dirname "$(readlink -f "$0")")" +python3 -m unittest discover -p 'test_*.py' -v +python3 toposort/test_toposort.py | + +## Stray / hermetic temp artifacts (flagged for review) + +The following are hermetic temp / scaffolding artifacts: + +- `.triage_build.py` +- `.triage_dump.py` +- `.triage_dump_pending.py` +- `.triage_probe.py` +- `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/test_toposort.py` +- `wizard-work/null/.hermes-tmp.RqZp3z` +- `wizard-work/null/membershipkit/.hermes-tmp.sx2gIa` + +These are local temp files (prefix `.hermes-tmp.`, `.triage_*`, the +`beam/CHECK` newline-named artifact, and `sphinx/.../CHECK.txt` test +artifacts). They should be deleted if not wanted. + +## Bottom line + +- **119** work items are still local-only and not yet in the pipe (untracked); +- **5** file modified (not staged). +- Stray entries above are not part of any lane's real work and are + candidates for removal; lane work (sphinx/lcmm, sphinx/archive-llama3, + null/*, ledger/*, forge/*) is all valid pending contribution. +- Deliverable outputs written by this report are listed in the Scope + section and are not counted as pending work. + diff --git a/wizard-work/sol/daily-local-pipe-triage-2026-10-25.verify.py b/wizard-work/sol/daily-local-pipe-triage-2026-10-25.verify.py new file mode 100644 index 0000000..d66363e --- /dev/null +++ b/wizard-work/sol/daily-local-pipe-triage-2026-10-25.verify.py @@ -0,0 +1,144 @@ +#!/usr/bin/env python3 +"""Independent verifier for the local-pipe triage artifact. + +Re-derives the full pending-file state of /root/troupe-standup directly from git +(ls-files --others --exclude-standard -z), applies the same deterministic +classification rules, then asserts the stored artifact +(daily-local-pipe-triage-2026-10-25.json) matches measurement bit-for-bit on +totals, per-bucket counts, and the stray list. + +Exit 0 only when the artifact is correct; nonzero otherwise. +""" +import collections +import json +import os +import subprocess +import sys + +REPO = "/root/troupe-standup" +JSON_PATH = os.path.join( + REPO, "wizard-work", "sol", "daily-local-pipe-triage-2026-10-25.json" +) + + +def git(*args): + return subprocess.run( + ["git", "-C", REPO] + list(args), check=True, capture_output=True, text=True + ).stdout + + +def classify(path): + """Identical deterministic rules as the collector (measured, not claimed).""" + b = path.split("/") + base = b[-1] + if ".hermes-tmp." in path or base.startswith(".triage_"): + return "STRAY" + if "beam" in b: + return "STRAY" + if base == "CHECK" and "\n" in path: + return "STRAY" + if base.startswith("README-"): + return "DOC" + if base.startswith("CHECK"): + return "CHECK" + if base.startswith("_probe") or base.startswith("probe_"): + return "PROBE" + if "forge" in b: + return "FORGE" + if "sphinx" in b: + return "SPHINX" + if "recoveries" in b: + return "RECOVERY" + if "ledger" in b: + return "LEDGER" + if "wizard-work/null/" in ("/" + path + "/"): + return "NULL" + if path.startswith("wizard-work/"): + return "LORE" + return "MISC" + + +def main(): + errors = [] + + # --- measured from git --- + lst = git("ls-files", "--others", "--exclude-standard", "-z") + all_paths = [p for p in lst.split("\0") if p] + EXCLUDE = { + "daily-local-pipe-triage-2026-10-25.json", + "daily-local-pipe-triage-2026-10-25.md", + "daily-local-pipe-triage-2026-10-25.verify.py", + } + measured_paths = [p for p in all_paths if os.path.basename(p) not in EXCLUDE] + deliverable = sorted(p for p in all_paths if os.path.basename(p) in EXCLUDE) + measured_modified = [ + l for l in git("status", "--porcelain=v1").splitlines() if l.startswith(" M") + ] + buckets = collections.Counter() + for p in measured_paths: + buckets[classify(p)] += 1 + + measured = { + "modified_count": len(measured_modified), + "untracked_count": len(measured_paths), + "total_pending": len(measured_paths), + "buckets": {b: buckets[b] for b in sorted(buckets)}, + "stray": sorted(p for p in measured_paths if classify(p) == "STRAY"), + } + + # --- stored artifact --- + try: + with open(JSON_PATH, encoding="utf-8") as fh: + stored = json.load(fh) + except Exception as exc: # noqa: BLE001 + print("VERIFY FAIL: cannot read %s: %s" % (JSON_PATH, exc)) + sys.exit(1) + + # --- assertions --- + checks = [ + ("modified_count", stored.get("modified_count"), measured["modified_count"]), + ("untracked_count", stored.get("untracked_count"), measured["untracked_count"]), + ("total_pending", stored.get("total_pending"), measured["total_pending"]), + ("buckets", stored.get("buckets"), measured["buckets"]), + ("stray", stored.get("stray"), measured["stray"]), + ] + for key, got, want in checks: + if got != want: + errors.append("%s: artifact=%r measured=%r" % (key, got, want)) + + # report scope lines must agree with live git numbers + try: + text = open(os.path.join(REPO, "wizard-work", "sol", + "daily-local-pipe-triage-2026-10-25.md"), + encoding="utf-8").read() + except OSError: + text = "" + for marker, expected in (("**modified**: %d" % measured["modified_count"], + "**modified**: %d"), + ("**untracked**: %d" % measured["untracked_count"], + "**untracked**: %d"), + ("**total pending**: %d" % measured["total_pending"], + "**total pending**: %d")): + if marker not in text: + errors.append("report scope line missing: " + marker) + + if errors: + print("VERIFY FAIL") + for e in errors: + print(" -", e) + sys.exit(1) + + print("VERIFY PASS") + print(json.dumps({ + "generated_utc": stored.get("generated_utc"), + "modified_count": measured["modified_count"], + "untracked_count": measured["untracked_count"], + "total_pending": measured["total_pending"], + "buckets": measured["buckets"], + "stray": len(measured["stray"]), + }, indent=2)) + sys.exit(0) + + +if __name__ == "__main__": + main()