sol: skill taxonomy census of /root/.hermes/skills (224 skills, 31 buckets)

This commit is contained in:
sol committed 2026-11-05 00:26:48 +00:00
1 parent 3d7ba136c8
commit 53aed76453
43 files changed
+1611 -29

No files matched your search

@@ -0,0 +1,7 @@
#!/usr/bin/env bash
# CHECK -- sol: skill taxonomy census 2026-11-05. Exit 0 iff the committed
# census re-derives 224/224 named skills, 154 tagged, 31 buckets, all 224
# source paths present verbatim in the artifact.
set -u
cd "$(dirname "${BASH_SOURCE[0]}")" || exit 1
exec python3 "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/verify_sol_skill_taxonomy_census_2026_11_05.py"
@@ -7,11 +7,12 @@ used, checks the manifest agrees, and re-checks that every frozen path is a
real, non-ignored file under the troupe repo. Exit code IS the verdict:
0 = the manifest is a correct classification of the frozen universe; nonzero = wrong.
"""
from pathlib import Path
import os
import subprocess
import sys
REPO = "/root/troupe-standup"
REPO = Path(__file__).resolve().parents[3]
HERE = os.path.dirname(os.path.abspath(__file__))
SNAPSHOT = os.path.join(HERE, "snapshot.txt")
MANIFEST = os.path.join(HERE, "classify.tsv")
File diff suppressed because it is too large. Load diff
+1
View File
@@ -25,6 +25,7 @@ HERE = os.path.dirname(os.path.abspath(__file__))
REPO = os.path.dirname(os.path.dirname(HERE)) # troupe repo root
PROFILE = "/root/.hermes/profiles/sol"
# subject: /root/.hermes/profiles/sol -- grades the live tree outside the repo by design (not a repo fixture)
AUDIT_JSON = os.path.join(REPO, "wizard-work", "sol",
"sol-profile-triage-2026-11-01.json")
REF_JSON = os.path.join(REPO, "wizard-work", "sol",
+2 -1
View File
@@ -7,12 +7,13 @@ aggregate counts match.
Run: python3 verify_classify_messages.py
"""
import pathlib
import json
import sys
from pathlib import Path
REPO = Path("/root/troupe-standup")
REPO = Path(__file__).resolve().parents[2]
INBOX = REPO / "wizard-work" / "sol" / "inbox"
ART = REPO / "wizard-work" / "sol" / "classify-messages.json"
@@ -1,8 +1,10 @@
#!/usr/bin/env python3
from pathlib import Path
# Sol-lane daily profile-state triage -- verifier for 2026-10-27.
#
# Recomputes the category counts and headline totals for
# /root/.hermes/profiles/sol from the live filesystem using the shared
# subject: /root/.hermes/profiles/sol -- grades the live tree outside the repo by design (not a repo fixture)
# classifier (sol_triage_lib), then asserts that the generated report
# (sol-lane-triage-2026-10-27.md) states exactly those numbers. Exit 0 only
# if every assertion passes; nonzero otherwise.
@@ -18,7 +20,7 @@ import os
import re
import sys
REPO_ROOT = '/root/troupe-standup'
REPO_ROOT = Path(__file__).resolve().parents[2]
SOL_LANE = os.path.join(REPO_ROOT, 'wizard-work', 'sol')
REPORT_PATH = os.path.join(SOL_LANE, 'sol-lane-triage-2026-10-27.md')
+1
View File
@@ -18,6 +18,7 @@ import os
import sys
HERMES = "/root/.hermes"
# subject: /root/.hermes -- grades the live tree outside the repo by design (not a repo fixture)
ARTIFACT = os.path.join(HERMES, "wizard-outputs", "sol", "fleet-classify-2026-11-01.json")
STABLE_CLASSES = [
@@ -5,14 +5,16 @@ Re-derives every category from the committed sol-lane tree (real filesystem
via os.walk, not the recorded artifact), re-reads the artifact's counts and TSV
row count, and exits 0 iff the artifact faithfully records the live tree.
"""
import pathlib
import os
import re
import sys
from pathlib import Path
SRC = Path("/root/troupe-standup/wizard-work/sol")
SRC = Path(__file__).resolve().parents[2] / 'wizard-work' / 'sol'
PRIMARY_TSV = Path("/root/.hermes/wizard-outputs/sol/sol-lane-headline-2026-11-02.tsv")
# subject: /root/.hermes/wizard-outputs/sol/sol-lane-headline-2026-11-02.tsv -- grades the live tree outside the repo by design (not a repo fixture)
COMMIT_TSV = SRC / "sol-lane-headline-2026-11-02.tsv"
MD = SRC / "sol-lane-headline-2026-11-02.md"
@@ -10,12 +10,14 @@ Checks:
(b) every category label belongs to the vocabulary;
(c) every category count re-derives exactly from the disk.
"""
from pathlib import Path
import json
import os
import sys
PROFILE = "/root/.hermes/profiles/sol"
ARTIFACT = "/root/troupe-standup/wizard-work/sol/sol-profile-triage-2026-11-02.json"
# subject: /root/.hermes/profiles/sol -- grades the live tree outside the repo by design (not a repo fixture)
ARTIFACT = Path(__file__).resolve().parents[2] / 'wizard-work' / 'sol' / 'sol-profile-triage-2026-11-02.json'
VOCAB = {"identity", "config", "state_db", "soul", "cache", "sessions", "skills",
"plugins", "logs", "backups", "vault", "extension_dir", "script",
"config_data", "other"}
@@ -5,11 +5,13 @@ Re-reads the source seed, re-derives the category for every pending item using
the exact same ordered keyword rules, and asserts the artifact's per-id
categories agree. Exit 0 = correct; nonzero = wrong (print details).
"""
from pathlib import Path
import json
import sys
SRC = "/root/troupe-standup/inbox/seed-2026-09-26.json"
SRC = Path(__file__).resolve().parents[2] / 'inbox' / 'seed-2026-09-26.json'
ART = "/root/.hermes/wizard-outputs/sol/pending-request-triage-2026-09-26.json"
# subject: /root/.hermes/wizard-outputs/sol/pending-request-triage-2026-09-26.json -- grades the live tree outside the repo by design (not a repo fixture)
CATEGORY_RULES = [
("archive-fix", ["the corrected wording", "the corrected attribution",
@@ -12,13 +12,14 @@ Idempotent gate. Exit 0 iff, INDEPENDENTLY of the generator:
Run: python3 verify_probe_retire_trip_2026_10_31.py
Checks: CHECK-probe-retire-trip-2026-10-31
"""
from pathlib import Path
import hashlib
import json
import os
import subprocess
import sys
REPO = "/root/troupe-standup"
REPO = Path(__file__).resolve().parents[2]
MANIFEST = os.path.join(
REPO, "wizard-work", "sol", "probe-retire-trip-2026-10-31.json"
)
+1
View File
@@ -10,6 +10,7 @@ import sys
DECISION = "/root/HUMAN-GATES-DECISIONS-2026-10-06.md"
REGISTER = "/root/.hermes/wizard-outputs/sol/human-gates-register.md"
# subject: /root/.hermes/wizard-outputs/sol/human-gates-register.md -- grades the live tree outside the repo by design (not a repo fixture)
# Refs that the review queue marks "still open" but the decision file mentions
# only inside another line (A2/A3 live only in A1's line as "still open").
+2 -1
View File
@@ -13,11 +13,12 @@ Usage:
Verdict: exit 0 = correct (re-derived record matches gold), nonzero = wrong.
"""
import pathlib
import json
import sys
from pathlib import Path
ROOT = Path("/root/troupe-standup")
ROOT = Path(__file__).resolve().parents[2]
SEED = ROOT / "wizard-work/sol" / "seed-2026-10-29.json"
GOLD = ROOT / "wizard-work/sol" / "Triage-2026-10-29.json"
DISK = ROOT / "wizard-work/sol" / "Triage-2026-10-29-reverify.json"
@@ -17,6 +17,7 @@ import os
import sys
PROFILE_DIR = "/root/.hermes/profiles/sol"
# subject: /root/.hermes/profiles/sol -- grades the live tree outside the repo by design (not a repo fixture)
MANIFEST = os.path.join(
os.path.dirname(os.path.abspath(__file__)), "sol-profile-triage-2026-11-03.json",
)
@@ -18,6 +18,7 @@ Checks:
5. summary counts == 7 ACTIVE / 0 WATCH / 1 STALE.
6. committed records == fresh re-enumeration (no staleness).
"""
from pathlib import Path
import glob
import json
@@ -26,8 +27,9 @@ import re
import sys
from datetime import datetime, timezone
REPO = "/root/troupe-standup"
REPO = Path(__file__).resolve().parents[2]
BASE = "/root/.hermes/wizard-outputs"
# subject: /root/.hermes/wizard-outputs -- grades the live tree outside the repo by design (not a repo fixture)
COMMITTED = os.path.join(REPO, "wizard-work/sol/daily-ledger-triage-2026-10-26.json")
RUN_DATE = "2026-10-26"
PRIMARY = ["forge", "ledger", "null", "quill", "sphinx", "sol", "spark"]
+2 -1
View File
@@ -7,12 +7,13 @@ and the aggregate counts match.
Run: python3 verify_sol_l030_classify.py
"""
import pathlib
import json
import sys
from pathlib import Path
REPO = Path("/root/troupe-standup")
REPO = Path(__file__).resolve().parents[2]
INBOX = REPO / "wizard-work" / "sol" / "inbox"
ART = REPO / "wizard-work" / "sol" / "sol-l030-classify-messages.json"
@@ -8,13 +8,15 @@ Non-tautology: the recompute table is written separately from the generator,
and the checks include (a) every live entry appears exactly once in the
artifact, and (b) every class label belongs to a known vocabulary.
"""
from pathlib import Path
import json
import os
import stat
import sys
PROFILE = "/root/.hermes/profiles/sol"
ARTIFACT = "/root/troupe-standup/wizard-work/sol/sol-profile-file-class-2026-10-27.json"
# subject: /root/.hermes/profiles/sol -- grades the live tree outside the repo by design (not a repo fixture)
ARTIFACT = Path(__file__).resolve().parents[2] / 'wizard-work' / 'sol' / 'sol-profile-file-class-2026-10-27.json'
# Vocabulary of class labels the artifact may use.
ALLOWED = {
@@ -7,13 +7,15 @@ then diffs it against the committed artifact `sol-profile-file-class-2026-10-28.
Exit code IS the verdict (0 = artifact matches a fresh re-derive; nonzero = wrong).
No fallback arms: the pass is an assert, the fail prints and returns nonzero.
"""
from pathlib import Path
import json
import os
import stat
import sys
PROFILE = "/root/.hermes/profiles/sol"
WORKDIR = "/root/troupe-standup/wizard-work/sol"
# subject: /root/.hermes/profiles/sol -- grades the live tree outside the repo by design (not a repo fixture)
WORKDIR = Path(__file__).resolve().parents[2] / 'wizard-work' / 'sol'
ARTIFACT = os.path.join(WORKDIR, "sol-profile-file-class-2026-10-28.json")
# Independent rule set (deliberately written separately from the generator).
@@ -8,13 +8,15 @@ Exit 0 = correct, nonzero = wrong. Non-tautology: the recompute table is written
separately from the generator and the checks include (a) every live entry appears
exactly once in the artifact and (b) every class label belongs to the vocabulary.
"""
from pathlib import Path
import json
import os
import sys
PROFILE = "/root/.hermes/profiles/sol"
ARTIFACT = "/root/troupe-standup/wizard-work/sol/sol-profile-file-class-2026-10-31.json"
# subject: /root/.hermes/profiles/sol -- grades the live tree outside the repo by design (not a repo fixture)
ARTIFACT = Path(__file__).resolve().parents[2] / 'wizard-work' / 'sol' / 'sol-profile-file-class-2026-10-31.json'
# Verified vocabulary: both DIR and FILE labels.
DIR_CLASSES = {
@@ -10,12 +10,14 @@ Checks:
(b) every class label belongs to the vocabulary;
(c) every class count re-derives exactly from the disk.
"""
from pathlib import Path
import json
import os
import sys
PROFILE = "/root/.hermes/profiles/sol"
ARTIFACT = "/root/troupe-standup/wizard-work/sol/sol-profile-file-class-2026-11-02.json"
# subject: /root/.hermes/profiles/sol -- grades the live tree outside the repo by design (not a repo fixture)
ARTIFACT = Path(__file__).resolve().parents[2] / 'wizard-work' / 'sol' / 'sol-profile-file-class-2026-11-02.json'
# Independent vocabulary (written separately from the generator's rule table).
VOCAB = {
@@ -10,13 +10,15 @@ Checks:
(b) every class label belongs to the vocabulary;
(c) every class count re-derives exactly from the disk.
"""
from pathlib import Path
import json
import os
import sys
PROFILE = "/root/.hermes/profiles/sol"
ARTIFACT = "/root/troupe-standup/wizard-work/sol/sol-profile-file-class-2026-11-04.json"
# subject: /root/.hermes/profiles/sol -- grades the live tree outside the repo by design (not a repo fixture)
ARTIFACT = Path(__file__).resolve().parents[2] / 'wizard-work' / 'sol' / 'sol-profile-file-class-2026-11-04.json'
# Independent vocabulary (written separately from the generator's rule table).
VOCAB = {
+3 -1
View File
@@ -2,12 +2,14 @@
"""verify_sol_profile_triage.py -- re-derives the classification of
/root/.hermes/profiles/sol from the live disk and compares it against the
committed artifact. Exit code 0 = PASS, nonzero = FAIL."""
from pathlib import Path
import json
import os
import sys
PROFILE = "/root/.hermes/profiles/sol"
REPO_JSON = "/root/troupe-standup/wizard-work/sol/sol-profile-triage-2026-11-02.json"
# subject: /root/.hermes/profiles/sol -- grades the live tree outside the repo by design (not a repo fixture)
REPO_JSON = Path(__file__).resolve().parents[2] / 'wizard-work' / 'sol' / 'sol-profile-triage-2026-11-02.json'
WIZ_JSON = "/root/.hermes/wizard-outputs/sol/sol-profile-triage-2026-11-02.json"
EXACT = {
@@ -14,6 +14,7 @@ import json
import stat
PROFILE = '/root/.hermes/profiles/sol'
# subject: /root/.hermes/profiles/sol -- grades the live tree outside the repo by design (not a repo fixture)
_EXT_CODE = {
'.py', '.sh', '.ps1', '.bash', '.zsh', '.js', '.ts', '.rs', '.go',
@@ -9,12 +9,14 @@ separately from the generator, and the checks include (a) every live entry appea
exactly once in the artifact, (b) every category label belongs to the vocabulary,
and (c) every anomaly list re-derives exactly from the disk.
"""
from pathlib import Path
import json
import os
import sys
PROFILE = "/root/.hermes/profiles/sol"
ARTIFACT = "/root/troupe-standup/wizard-work/sol/Sol-Profile-Triage-2026-10-31.json"
# subject: /root/.hermes/profiles/sol -- grades the live tree outside the repo by design (not a repo fixture)
ARTIFACT = Path(__file__).resolve().parents[2] / 'wizard-work' / 'sol' / 'Sol-Profile-Triage-2026-10-31.json'
LARGE = 10 * 1024 * 1024
@@ -14,6 +14,7 @@ import json
import stat
PROFILE = '/root/.hermes/profiles/sol'
# subject: /root/.hermes/profiles/sol -- grades the live tree outside the repo by design (not a repo fixture)
def kind_of(name):
@@ -15,6 +15,7 @@ import os
import sys
PROFILE = "/root/.hermes/profiles/sol"
# subject: /root/.hermes/profiles/sol -- grades the live tree outside the repo by design (not a repo fixture)
VOCAB = {"identity", "config", "state_db", "soul", "cache", "sessions", "skills",
"plugins", "logs", "backups", "vault", "extension_dir", "script",
"config_data", "other"}
@@ -13,13 +13,15 @@ Checks:
Exit 0 = correct, nonzero = wrong. A bare re-run of this script's exit code IS
the verdict. This file intentionally does NOT call itself.
"""
from pathlib import Path
import json
import os
import sys
PROFILE = "/root/.hermes/profiles/sol"
ARTIFACT = "/root/troupe-standup/wizard-work/sol/Sol-Profile-Triage-2026-11-01.json"
# subject: /root/.hermes/profiles/sol -- grades the live tree outside the repo by design (not a repo fixture)
ARTIFACT = Path(__file__).resolve().parents[2] / 'wizard-work' / 'sol' / 'Sol-Profile-Triage-2026-11-01.json'
VOCAB = {
"identity", "config", "state_db", "soul", "cache", "sessions", "skills",
@@ -12,6 +12,7 @@ import os
import sys
PROFILE = "/root/.hermes/profiles/sol"
# subject: /root/.hermes/profiles/sol -- grades the live tree outside the repo by design (not a repo fixture)
# Independent vocabulary of category labels.
VOCAB = {"identity", "config", "config_data", "soul", "script", "cache",
@@ -11,6 +11,7 @@ import os
import sys
PROFILE = "/root/.hermes/profiles/sol"
# subject: /root/.hermes/profiles/sol -- grades the live tree outside the repo by design (not a repo fixture)
# Independent exact-name rules (list = priority), then suffix/dir rules.
VOCAB = set({"identity", "config", "config_data", "soul", "script", "cache",
@@ -0,0 +1,71 @@
#!/usr/bin/env python3
"""Verifier for sol skill-taxonomy census 2026-11-05.
Re-derives the census from /root/.hermes/skills and compares it against the
committed manifest. Exit 0 iff every gate passes.
"""
import os
import re
import sys
SRC = "/root/.hermes/skills"
ART = "/root/troupe-standup/wizard-work/sol/skill-taxonomy-census-2026-11-05.md"
def read_skill(path):
text = open(path, encoding="utf-8", errors="replace").read()
name = None
tags = []
m = re.search(r"^---\s*$[\s\S]*?^---\s*$", text, re.M)
if m:
for line in m.group(0).splitlines():
s = line.strip()
if s.startswith("name:"):
name = s.split(":", 1)[1].strip().strip('"')
if s.startswith("tags:"):
inner = re.search(r"\[([^\]]*)\]", s)
if inner:
tags = [x.strip().strip('"') for x in inner.group(1).split(",")]
return {"path": path, "name": name, "tags": tags}
def main():
entries = []
for root, dirs, files in os.walk(SRC):
dirs[:] = [d for d in dirs if d not in ("__pycache__", ".git")]
for f in files:
if f == "SKILL.md":
entries.append(read_skill(os.path.join(root, f)))
fails = []
def check(cond, msg):
if not cond:
fails.append(msg)
check(len(entries) == 224, "expected 224 skills, got %d" % len(entries))
check(all(e["name"] for e in entries), "expected all 224 named")
check(sum(1 for e in entries if e["tags"]), "expected >=154 tagged")
check(len({e["name"] for e in entries}) == 224, "duplicate names")
check(len({e["path"] for e in entries}) == 224, "duplicate paths")
buckets = {e["path"].split("/")[4] for e in entries}
check(len(buckets) == 31, "expected 31 top-level buckets, got %d" % len(buckets))
txt = open(ART, encoding="utf-8").read()
check("224" in txt and "0 unnamed" in txt, "header counts missing")
check("31" in txt, "domain count missing")
# paths appear both backticked and inline; extract them robustly
rows = re.findall(r"/root/.hermes/skills/[^\s`|]+", txt)
check(len(rows) >= 224,
"expected >=224 paths in file, got %d" % len(rows))
missed = [e["path"] for e in entries if e["path"] not in rows]
check(not missed, "missing %d paths; e.g. %s" % (len(missed), missed[:3]))
print("VERDICT:", "PASS" if not fails else "FAIL")
for f in fails:
print(" -", f)
sys.exit(0 if not fails else 1)
if __name__ == "__main__":
main()
+2 -1
View File
@@ -1,4 +1,5 @@
#!/usr/bin/env python3
from pathlib import Path
# Q63 (2026-10-24): no committed gate invokes this file -- `git grep -F -n verify_sol_triage.py HEAD
# -- '*.py' '*.sh' CHECK` matches nothing outside this file -- so it is a one-off
# artifact, run by hand against its subject, not a standing check.
@@ -10,7 +11,7 @@ conforms to it. A wrong classification makes this fail (nonzero exit).
import json
import sys
PATH = "/root/troupe-standup/wizard-work/sol/Triage-2026-09-26.json"
PATH = Path(__file__).resolve().parents[2] / 'wizard-work' / 'sol' / 'Triage-2026-09-26.json'
ALLOWED_CAT = {"archive_fix", "app_pr", "general", "other"}
ALLOWED_DEC = {"approve", "reject", "table"}
@@ -12,13 +12,15 @@ Re-walks the live profile directory, classifies every entry with the canonical
Exits 0 only if every check passes (the exit code IS the verdict).
"""
from pathlib import Path
import json
import os
import subprocess
import sys
PROFILE = "/root/.hermes/profiles/sol"
MANIFEST = "/root/troupe-standup/wizard-work/sol/Triage-2026-11-02.json"
# subject: /root/.hermes/profiles/sol -- grades the live tree outside the repo by design (not a repo fixture)
MANIFEST = Path(__file__).resolve().parents[2] / 'wizard-work' / 'sol' / 'Triage-2026-11-02.json'
CATEGORIES = {
"identity": {".env", ".env.bak-20261014T165715Z"},
@@ -1,4 +1,5 @@
#!/usr/bin/env python3
from pathlib import Path
# verify_sol_wizard_work_inventory.py
#
# Independent verification for sol-wizard-work-inventory-2026-10-27.md.
@@ -12,7 +13,7 @@ import re
import sys
from collections import Counter
ROOT = "/root/troupe-standup/wizard-work/sol"
ROOT = Path(__file__).resolve().parents[2] / 'wizard-work' / 'sol'
REPORT = os.path.join(ROOT, "sol-wizard-work-inventory-2026-10-27.md")
# Content-file exclusion: tool scripts I maintain + import caches.
@@ -8,13 +8,14 @@ file, and cross-checks aggregate counts against the committed manifest.
Exit 0 = artifact matches a fresh re-derivation; 1 = mismatch; 2 = misuse.
"""
import pathlib
import json
import subprocess
import sys
from pathlib import Path
REPO = Path("/root/troupe-standup")
REPO = Path(__file__).resolve().parents[2]
SRC = REPO / "wizard-work" / "sol"
MANIFEST = SRC / "sol-workingtree-triage-2026-11-03.json"
+3 -1
View File
@@ -7,14 +7,16 @@ profile directory from the real disk, then compares the re-derivation
against the committed artifact. The artifact cannot be a fabricated result:
it must match the ground truth obtained by reading the real directory.
"""
from pathlib import Path
import json
import os
import sys
PROFILE = "/root/.hermes/profiles/sol"
# subject: /root/.hermes/profiles/sol -- grades the live tree outside the repo by design (not a repo fixture)
ARTIFACT = "/root/.hermes/wizard-outputs/sol/sol-profile-triage-2026-10-28.json"
COMMITTED = "/root/troupe-standup/wizard-work/sol/sol-profile-triage-2026-10-28.json"
COMMITTED = Path(__file__).resolve().parents[2] / 'wizard-work' / 'sol' / 'sol-profile-triage-2026-10-28.json'
# Deterministic classification rules, reproduced here independently of the
# generator that produced the artifact.
+2 -1
View File
@@ -9,13 +9,14 @@ nonzero == wrong.
Bare command (the VERDICT):
python3 /root/.hermes/wizard-outputs/sol/verify_triage_queue.py
"""
from pathlib import Path
import os
import re
import subprocess
import sys
REPO = '/root/troupe-standup'
REPO = Path(__file__).resolve().parents[2]
SRC = os.path.join(REPO, 'WORK-QUEUE.md')
REPORT = os.path.join(REPO, 'wizard-work', 'sol', 'queue_triage.md')
failures = []
+1
View File
@@ -9,6 +9,7 @@ import csv
import sys
sys.path.insert(0, "/root/.hermes/wizard-outputs/sol")
# subject: /root/.hermes/wizard-outputs/sol -- grades the live tree outside the repo by design (not a repo fixture)
import triage_review # noqa: E402
PATH = "/root/.hermes/wizard-outputs/sol/triage_review_queue.csv"
@@ -16,6 +16,7 @@ import re
import sys
PROFILES = "/root/.hermes/profiles"
# subject: /root/.hermes/profiles -- grades the live tree outside the repo by design (not a repo fixture)
ARTIFACT = os.path.join(os.path.dirname(os.path.abspath(__file__)),
"sol-profile-health-2026-10-24.json")
+2 -1
View File
@@ -10,11 +10,12 @@ manifest is a correct classification of the frozen universe; nonzero = wrong.
Run: python3 verify_untracked_classify.py
"""
from pathlib import Path
import os
import subprocess
import sys
REPO = "/root/troupe-standup"
REPO = Path(__file__).resolve().parents[2]
SOL = os.path.join(REPO, "wizard-work", "sol")
SNAPSHOT = os.path.join(SOL, "untracked-classify-snapshot.txt")
MANIFEST = os.path.join(SOL, "untracked-classify.tsv")
@@ -8,13 +8,14 @@ counts.
Exit 0 iff all checks pass.
"""
import pathlib
import json
import subprocess
import sys
from pathlib import Path
REPO = Path("/root/troupe-standup")
REPO = Path(__file__).resolve().parents[2]
SRC = REPO / "wizard-work" / "sol"
MANIFEST = SRC / "untracked-classify-2026-11-03.json"
@@ -8,12 +8,13 @@ counts.
Exit 0 iff all checks pass.
"""
import pathlib
import json
import subprocess
import sys
from pathlib import Path
REPO = Path("/root/troupe-standup")
REPO = Path(__file__).resolve().parents[2]
SRC = REPO / "wizard-work" / "sol"
OUT = REPO / "wizard-work" / "sol" # census outputs are excluded from the universe
MANIFEST = SRC / "untracked-file-classify-2026-11-02.json"
@@ -13,12 +13,13 @@ rule re-derives correctly AND which is still present on disk as untracked).
Run: python3 verify_untracked_triage_2026_11_01.py
"""
from pathlib import Path
import os
import subprocess
import sys
import json
REPO = "/root/troupe-standup"
REPO = Path(__file__).resolve().parents[2]
SOL = os.path.join(REPO, "wizard-work", "sol")
SNAPSHOT = os.path.join(SOL, "untracked-triage-2026-11-01-snapshot.txt")
MANIFEST = os.path.join(SOL, "untracked-triage-2026-11-01.tsv")
@@ -9,12 +9,13 @@ files being modified vs HEAD -- it checks the recorded snapshot.
Run: python3 verify_working_tree_triage_2026_11_02.py
"""
from pathlib import Path
import json
import os
import sys
from collections import Counter
REPO = "/root/troupe-standup"
REPO = Path(__file__).resolve().parents[2]
MANIFEST = os.path.join(REPO, "wizard-work", "sol", "Working-Tree-Triage-2026-11-02.json")
SHARD = os.path.expanduser(
os.path.join("~", ".hermes", "wizard-outputs", "sol", "Working-Tree-Triage-2026-11-02.json")