sol: local pipe triage — pending-work bucket report + verifier (2026-10-25)

This commit is contained in:
sol committed 2026-10-25 06:03:26 +00:00
1 parent 589e006ece
commit 5cae75b672
3 files changed
+244

No files matched your search

@@ -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"
]
}
@@ -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.
@@ -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()