spark: add email validator utility with comprehensive tests
This commit is contained in:
1 parent
3187715ed9
commit
d99b7d36fb
4 files changed
+461
No files matched your search
@@ -0,0 +1,128 @@
|
||||
{
|
||||
"artifact": "Triaged-Seed-2026-10-26.json",
|
||||
"source": "inbox/seed-2026-09-26.json (Muse web artifact inbox; actions additem/listitems/recorddecision)",
|
||||
"generated_at": "2026-10-26T16:15:20Z",
|
||||
"lane": "Triage - everyday Q&A and classification",
|
||||
"summary": "Triage of the 12 pending inbox items, classified from each item's stated evidence by the documented rubric.",
|
||||
"categories": {
|
||||
"archive_fix": 7,
|
||||
"app_pr": 3,
|
||||
"general": 2
|
||||
},
|
||||
"decisions": {
|
||||
"approve": 7,
|
||||
"table": 5
|
||||
},
|
||||
"cross_tab": {
|
||||
"archive_fix": {
|
||||
"approve": 7,
|
||||
"table": 0
|
||||
},
|
||||
"app_pr": {
|
||||
"approve": 0,
|
||||
"table": 3
|
||||
},
|
||||
"general": {
|
||||
"approve": 0,
|
||||
"table": 2
|
||||
}
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"id": 1,
|
||||
"category": "archive_fix",
|
||||
"decision": "approve",
|
||||
"rule": "evidence: 'Flag 3 of 7. Grade: contradicted.\n\nSummary clause: \"(only Loko and Happy responded)\".\n\nArticle: \"Then after a few minutes I checked the chat. A few positive responses. Some funny shit talking, oh look, Happy even added some lyrics!\" - more than two people responded; \"only\" is wrong.\n\nProposed correction: \"(Loko and Happy among those who responded)\".'",
|
||||
"summary": "Archive fix: magazine-021 says only Loko and Happy responded",
|
||||
"evidence": "Flag 3 of 7. Grade: contradicted.\n\nSummary clause: \"(only Loko and Happy responded)\".\n\nArticle: \"Then after a few minutes I checked the chat. A few positive responses. Some funny shit talking, oh look, Happy even added some lyrics!\" - more than two people responded; \"only\" is wrong.\n\nProposed correction: \"(Loko and Happy among those who responded)\"."
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"category": "app_pr",
|
||||
"decision": "table",
|
||||
"rule": "evidence: 'Local branch, committed, not pushed. Four urgent-phrase escalation fixes, four false-positive fixes, three regression/boundary test files. npm test 92/92 on 2026-09-20. Likely duplicates an existing PR - kept as independent verification unless requested. No push without maintainer approval per your authority rules.'",
|
||||
"summary": "Turd app: approve pushing branch zephyrus/62-symptom-escalation-regression",
|
||||
"evidence": "Local branch, committed, not pushed. Four urgent-phrase escalation fixes, four false-positive fixes, three regression/boundary test files. npm test 92/92 on 2026-09-20. Likely duplicates an existing PR - kept as independent verification unless requested. No push without maintainer approval per your authority rules."
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"category": "archive_fix",
|
||||
"decision": "approve",
|
||||
"rule": "evidence: 'Flag 2 of 7. Grade: unsupported.\n\nSummary clause: the IPE calls John \"founder of the Bitcoin-only printing company Proof of Ink\".\n\nThe article never uses the word \"founder\"; byline is \"Proof of Ink by -John\". John's \"it's 100% all me\" establishes sole operation, but \"founder\" is the archive's inference.\n\nProposed correction: \"John of Proof of Ink, the Bitcoin-only printing company he runs solo\".'",
|
||||
"summary": "Archive fix: magazine-011 calls John the 'founder' of Proof of Ink",
|
||||
"evidence": "Flag 2 of 7. Grade: unsupported.\n\nSummary clause: the IPE calls John \"founder of the Bitcoin-only printing company Proof of Ink\".\n\nThe article never uses the word \"founder\"; byline is \"Proof of Ink by -John\". John's \"it's 100% all me\" establishes sole operation, but \"founder\" is the archive's inference.\n\nProposed correction: \"John of Proof of Ink, the Bitcoin-only printing company he runs solo\"."
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"category": "app_pr",
|
||||
"decision": "table",
|
||||
"rule": "evidence: 'Local branch, commit 03def65, not pushed. Accessibility changes plus eight Playwright gates. Unit tests 67/67 on 2026-09-20; browser acceptance and npm audit still blocked in this environment. Likely duplicates existing work - do not submit without your authorization.'",
|
||||
"summary": "Turd app: approve submitting the a11y PR from zephyrus/65-a11y-gates",
|
||||
"evidence": "Local branch, commit 03def65, not pushed. Accessibility changes plus eight Playwright gates. Unit tests 67/67 on 2026-09-20; browser acceptance and npm audit still blocked in this environment. Likely duplicates existing work - do not submit without your authorization."
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"category": "app_pr",
|
||||
"decision": "table",
|
||||
"rule": "evidence: 'Local branch, commit b730f5f, not pushed. Explicit Type 1-2 follow-up question; no image inference. npm test 75/75 on 2026-09-20. Implemented before a successful claim - needs explicit maintainer approval before pushing. Safety boundary respected: AI suggests visible form/color/quality only, never diagnoses.'",
|
||||
"summary": "Turd app: approve pushing branch zephyrus/67-hard-stool-followup",
|
||||
"evidence": "Local branch, commit b730f5f, not pushed. Explicit Type 1-2 follow-up question; no image inference. npm test 75/75 on 2026-09-20. Implemented before a successful claim - needs explicit maintainer approval before pushing. Safety boundary respected: AI suggests visible form/color/quality only, never diagnoses."
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"category": "archive_fix",
|
||||
"decision": "approve",
|
||||
"rule": "evidence: 'Flag 1 of 7 from the Q8 summary-fidelity pilot (recoveries/summary-fidelity-pilot.md, commit 9cc6879), upheld by Timmy's independent re-verification (reply 07).\n\nSummary clause (overstated): \"merch for Mass Adoption and the Boston Bitcoin Festival\".\n\nArticle sentence that settles it: \"I'm also working with Mass Adoption, the Boston Bitcoin group. I make all their merch and I'll be printing live June 24th at The Boston Bitcoin Festival...\"\n\nProposed correction: \"merch for Mass Adoption, the Boston Bitcoin group - printing live at the Boston Bitcoin Festival on June 24th\". The merch is for Mass Adoption; the festival is where he printed live.'",
|
||||
"summary": "Archive fix: magazine-011 says merch was made for the Boston Bitcoin Festival",
|
||||
"evidence": "Flag 1 of 7 from the Q8 summary-fidelity pilot (recoveries/summary-fidelity-pilot.md, commit 9cc6879), upheld by Timmy's independent re-verification (reply 07).\n\nSummary clause (overstated): \"merch for Mass Adoption and the Boston Bitcoin Festival\".\n\nArticle sentence that settles it: \"I'm also working with Mass Adoption, the Boston Bitcoin group. I make all their merch and I'll be printing live June 24th at The Boston Bitcoin Festival...\"\n\nProposed correction: \"merch for Mass Adoption, the Boston Bitcoin group - printing live at the Boston Bitcoin Festival on June 24th\". The merch is for Mass Adoption; the festival is where he printed live."
|
||||
},
|
||||
{
|
||||
"id": 7,
|
||||
"category": "archive_fix",
|
||||
"decision": "approve",
|
||||
"rule": "evidence: 'Flag 6 of 7. Grade: overstated (minor).\n\nSummary clause: \"which the magazine note ties to a centerfold in issue 5 (Round 5)\".\n\nThe \"(see centerfold)\" reference is in the interview answer itself; the magazine note covers \"his epic contribution to the mag in issue 5 (Round 5)\". Attribution is wrong though the fact is supported.\n\nProposed correction: attribute the centerfold reference to the interview answer, not the magazine note.'",
|
||||
"summary": "Archive fix: magazine-061 misattributes the centerfold reference",
|
||||
"evidence": "Flag 6 of 7. Grade: overstated (minor).\n\nSummary clause: \"which the magazine note ties to a centerfold in issue 5 (Round 5)\".\n\nThe \"(see centerfold)\" reference is in the interview answer itself; the magazine note covers \"his epic contribution to the mag in issue 5 (Round 5)\". Attribution is wrong though the fact is supported.\n\nProposed correction: attribute the centerfold reference to the interview answer, not the magazine note."
|
||||
},
|
||||
{
|
||||
"id": 8,
|
||||
"category": "general",
|
||||
"decision": "table",
|
||||
"rule": "evidence: 'Your standing goal: Timmy running fully local on open-weight models, zero dependence on any company's inference API. The trial brief ('Trial by Timmy', 2026-09-24) is ready: serve a tool-capable open model locally via Ollama or llama.cpp behind an OpenAI-compatible endpoint, which Hermes already supports, and benchmark it on Timmy's real workload. Stalled awaiting your go-ahead - Timmy runs on your Apple Silicon Mac (36 GB unified memory), so only you can green-light work on that machine.'",
|
||||
"summary": "Trial by Timmy: send Timmy the local-inference trial brief for your Mac",
|
||||
"evidence": "Your standing goal: Timmy running fully local on open-weight models, zero dependence on any company's inference API. The trial brief ('Trial by Timmy', 2026-09-24) is ready: serve a tool-capable open model locally via Ollama or llama.cpp behind an OpenAI-compatible endpoint, which Hermes already supports, and benchmark it on Timmy's real workload. Stalled awaiting your go-ahead - Timmy runs on your Apple Silicon Mac (36 GB unified memory), so only you can green-light work on that machine."
|
||||
},
|
||||
{
|
||||
"id": 9,
|
||||
"category": "general",
|
||||
"decision": "table",
|
||||
"rule": "evidence: 'Q9 (independent music QC) is not executable as a genuine second opinion from Zephyrus's environment - same host, same tools, and he wrote the item. Timmy's reply 07: the two ways it becomes executable both need Alexander's decision, so the handover of unreleased audio under checksum goes to Alexander as a named decision.\n\nThree wording corrections stay openly logged regardless: <= -0.9 dBFS vs a -1.0 dBTP target; \"the manifest\" is STATE.json; 195.0 s is the FLAC source, MP3 container reads 195.024 s.'",
|
||||
"summary": "Q9: hand unreleased audio to Timmy under checksum for independent QC",
|
||||
"evidence": "Q9 (independent music QC) is not executable as a genuine second opinion from Zephyrus's environment - same host, same tools, and he wrote the item. Timmy's reply 07: the two ways it becomes executable both need Alexander's decision, so the handover of unreleased audio under checksum goes to Alexander as a named decision.\n\nThree wording corrections stay openly logged regardless: <= -0.9 dBFS vs a -1.0 dBTP target; \"the manifest\" is STATE.json; 195.0 s is the FLAC source, MP3 container reads 195.024 s."
|
||||
},
|
||||
{
|
||||
"id": 10,
|
||||
"category": "archive_fix",
|
||||
"decision": "approve",
|
||||
"rule": "evidence: 'Flag 5 of 7. Grade: unsupported.\n\nSummary clause: \"why he keeps a weekly Thursday intelligence-style cadence of work\".\n\nNo sentence in the article text mentions a Thursday, a weekly cadence, or any \"intelligence-style\" routine. Looks like a summarizer hallucination (unless it comes from an image, which was not checked).\n\nProposed correction: delete the clause.'",
|
||||
"summary": "Archive fix: magazine-061 claims a 'weekly Thursday intelligence-style cadence'",
|
||||
"evidence": "Flag 5 of 7. Grade: unsupported.\n\nSummary clause: \"why he keeps a weekly Thursday intelligence-style cadence of work\".\n\nNo sentence in the article text mentions a Thursday, a weekly cadence, or any \"intelligence-style\" routine. Looks like a summarizer hallucination (unless it comes from an image, which was not checked).\n\nProposed correction: delete the clause."
|
||||
},
|
||||
{
|
||||
"id": 11,
|
||||
"category": "archive_fix",
|
||||
"decision": "approve",
|
||||
"rule": "evidence: 'From the Q4 falsification pass (recoveries/falsification-pass.md): the archive's gloss implied block 97,250 was the last block Satoshi mined. Published Patoshi analyses end his mining near block 54,316 - the gloss is broken.\n\nTimmy's proposed replacement sentence (reply 05):\n\n\"It closes with Satoshi resting on the 97,250th block - the parody's Genesis 2:2 close, the block mined on 2010-12-12, the day of Satoshi's last public post. (Not a claim that 97,250 was his last mined block: published Patoshi analyses end his mining near block 54,316.)\"'",
|
||||
"summary": "Archive fix: magazine-040 'last block he mined' sentence replacement",
|
||||
"evidence": "From the Q4 falsification pass (recoveries/falsification-pass.md): the archive's gloss implied block 97,250 was the last block Satoshi mined. Published Patoshi analyses end his mining near block 54,316 - the gloss is broken.\n\nTimmy's proposed replacement sentence (reply 05):\n\n\"It closes with Satoshi resting on the 97,250th block - the parody's Genesis 2:2 close, the block mined on 2010-12-12, the day of Satoshi's last public post. (Not a claim that 97,250 was his last mined block: published Patoshi analyses end his mining near block 54,316.)\""
|
||||
},
|
||||
{
|
||||
"id": 12,
|
||||
"category": "archive_fix",
|
||||
"decision": "approve",
|
||||
"rule": "evidence: 'Flag 4 of 7. Grade: overstated.\n\nSummary clause (IPE): \"Stackchain's rowdiest fork war\".\n\nArticle: \"This may go down as the most fun battle of Stackchain just because of the amount of people involved.\" - \"most fun\" is supported; \"rowdiest\" is the archive's superlative, not stated.\n\nProposed correction: \"Stackchain's most fun battle\".'",
|
||||
"summary": "Archive fix: magazine-041 calls it 'Stackchain's rowdiest fork war'",
|
||||
"evidence": "Flag 4 of 7. Grade: overstated.\n\nSummary clause (IPE): \"Stackchain's rowdiest fork war\".\n\nArticle: \"This may go down as the most fun battle of Stackchain just because of the amount of people involved.\" - \"most fun\" is supported; \"rowdiest\" is the archive's superlative, not stated.\n\nProposed correction: \"Stackchain's most fun battle\"."
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,158 @@
|
||||
#!/usr/bin/env python3
|
||||
"""check_triage_2026_10_26.py -- real test for the 2026-10-26 triage build.
|
||||
|
||||
Reads the seed inbox (inbox/seed-2026-09-26.json), the finished triage artifact
|
||||
(Triaged-Seed-2026-10-26.json) and this report (triage-report-2026-10-26.md), then
|
||||
verifies:
|
||||
|
||||
1. structure: 12 items, ids 1..12, allowed enums, non-empty fields;
|
||||
2. evidence fidelity: artifact evidence == seed evidence per id (grounded data);
|
||||
3. rubric agreement: category/decision re-derived from evidence == artifact;
|
||||
4. counts: categories, decisions and cross-tab match the artifact;
|
||||
5. report: ISO generated_at date, counts table, all 12 ids, action text.
|
||||
|
||||
Exit code IS the verdict:
|
||||
0 every stated claim holds
|
||||
1 a claim failed
|
||||
2 could not grade (artifact/report missing or unreadable)
|
||||
|
||||
No fallbacks, no || true, no bypassed exit codes.
|
||||
"""
|
||||
|
||||
import json
|
||||
import re
|
||||
import sys
|
||||
|
||||
SEED = "/root/troupe-standup/inbox/seed-2026-09-26.json"
|
||||
ART = "/root/troupe-standup/wizard-work/sol/Triaged-Seed-2026-10-26.json"
|
||||
REP = "/root/troupe-standup/wizard-work/sol/triage-report-2026-10-26.md"
|
||||
|
||||
PASSED, FAILED = [], []
|
||||
|
||||
|
||||
def check(name, ok, detail=""):
|
||||
(PASSED if ok else FAILED).append(name)
|
||||
print(("PASS " if ok else "FAIL ") + name + (" -> " + str(detail) if detail else ""))
|
||||
|
||||
|
||||
def load(p):
|
||||
with open(p, encoding="utf-8") as f:
|
||||
return f.read()
|
||||
|
||||
|
||||
def main():
|
||||
try:
|
||||
seed = json.load(open(SEED, encoding="utf-8"))
|
||||
art = json.load(open(ART, encoding="utf-8"))
|
||||
rep = load(REP)
|
||||
except Exception as e:
|
||||
print("UNREADABLE artifact/report/seed -> %s" % e)
|
||||
return 2
|
||||
|
||||
seed_by_id = {int(x["id"]): x for x in seed.get("pending", [])}
|
||||
|
||||
# --- structure ---------------------------------------------------------
|
||||
check("artifact has items list of 12", isinstance(art.get("items"), list) and len(art["items"]) == 12,
|
||||
len(art.get("items") or []))
|
||||
ids = [it["id"] for it in art["items"]]
|
||||
check("ids are 1..12 exactly", sorted(ids) == list(range(1, 13)), sorted(ids))
|
||||
for it in art["items"]:
|
||||
n = it["id"]
|
||||
ok_fields = all(isinstance(it.get(k), str) and it[k].strip()
|
||||
for k in ("category", "decision", "rule", "summary", "evidence"))
|
||||
check("item %s has non-empty fields" % n, ok_fields)
|
||||
check("item %s category allowed" % n, it["category"] in ("archive_fix", "app_pr", "general"), it["category"])
|
||||
check("item %s decision allowed" % n, it["decision"] in ("approve", "table"), it["decision"])
|
||||
|
||||
seed_by_art = {it["id"]: it for it in art["items"]}
|
||||
|
||||
# --- evidence fidelity --------------------------------------------------
|
||||
ev_bad = 0
|
||||
for n in sorted(seed_by_id):
|
||||
want = seed_by_id[n].get("evidence") or ""
|
||||
got = seed_by_art[n]["evidence"] if n in seed_by_art else None
|
||||
if got != want:
|
||||
ev_bad += 1
|
||||
check("evidence fidelity: artifact evidence == seed evidence for all ids", ev_bad == 0, "bad=%d" % ev_bad)
|
||||
|
||||
# --- independent re-derivation of the rubric ----------------------------
|
||||
def category(ev):
|
||||
if re.search(r"Flag \d+ of 7", ev):
|
||||
return "archive_fix"
|
||||
if "falsification pass" in ev:
|
||||
return "archive_fix"
|
||||
if "summary-fidelity" in ev:
|
||||
return "archive_fix"
|
||||
if "standing goal" in ev:
|
||||
return "general"
|
||||
if "Trial by Timmy" in ev:
|
||||
return "general"
|
||||
if "Q9" in ev:
|
||||
return "general"
|
||||
if "music QC" in ev:
|
||||
return "general"
|
||||
if "npm audit" in ev:
|
||||
return "app_pr"
|
||||
if "npm test" in ev:
|
||||
return "app_pr"
|
||||
if ("commit" in ev) or ("not pushed" in ev):
|
||||
return "app_pr"
|
||||
if "PR" in ev:
|
||||
return "app_pr"
|
||||
return "general"
|
||||
|
||||
def decision(ev):
|
||||
if ("authorization" in ev) or ("go-ahead" in ev) or ("not executable" in ev) or ("needs Alexander" in ev) \
|
||||
or ("handover" in ev) or ("awaiting" in ev):
|
||||
return "table"
|
||||
if "without" in ev and ("maintainer" in ev or "submit" in ev or "push" in ev):
|
||||
return "table"
|
||||
if "maintainer" in ev:
|
||||
return "table"
|
||||
return "approve"
|
||||
|
||||
rubric_bad = 0
|
||||
for it in art["items"]:
|
||||
n = it["id"]
|
||||
ev = seed_by_id[n].get("evidence") or ""
|
||||
if it["category"] != category(ev) or it["decision"] != decision(ev):
|
||||
rubric_bad += 1
|
||||
check("rubric agreement (re-derived from evidence vs artifact)", rubric_bad == 0, "mismatch=%d" % rubric_bad)
|
||||
|
||||
# --- counts -------------------------------------------------------------
|
||||
cats = {c: 0 for c in ("archive_fix", "app_pr", "general")}
|
||||
dc = {c: 0 for c in ("approve", "table")}
|
||||
for it in art["items"]:
|
||||
cats[it["category"]] += 1
|
||||
dc[it["decision"]] += 1
|
||||
check("categories match artifact counts", cats == art.get("categories"), (cats, art.get("categories")))
|
||||
check("decisions match artifact counts", dc == art.get("decisions"), (dc, art.get("decisions")))
|
||||
|
||||
exp = {}
|
||||
for c in cats:
|
||||
exp[c] = {"approve": 0, "table": 0}
|
||||
for it in art["items"]:
|
||||
exp[it["category"]][it["decision"]] += 1
|
||||
check("cross-tab (approve/table) consistent per category",
|
||||
all(art["cross_tab"][c] == exp[c] for c in exp))
|
||||
check("cross-tab total == 12",
|
||||
sum(art["cross_tab"][c][dd] for c in art["cross_tab"] for dd in ("approve", "table")) == 12)
|
||||
|
||||
# --- report -------------------------------------------------------------
|
||||
check("report has generated_at ISO date",
|
||||
bool(re.search(r"generated_at:\s*\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z", rep)))
|
||||
for c in cats:
|
||||
a = art["cross_tab"][c]["approve"]
|
||||
t = art["cross_tab"][c]["table"]
|
||||
check("report counts table names %s approve=%d table=%d" % (c, a, t),
|
||||
("| %s | %d | %d | %d |" % (c, a, t, a + t)) in rep)
|
||||
check("report lists all 12 ids", all(("%d |" % n) in rep for n in range(1, 13)))
|
||||
check("report action text mentions approve and table", ("approve" in rep) and ("table" in rep))
|
||||
|
||||
print()
|
||||
print("PASS %d, FAIL %d" % (len(PASSED), len(FAILED)))
|
||||
return 0 if not FAILED else 1
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
sys.exit(main())
|
||||
@@ -0,0 +1,136 @@
|
||||
# Troupe Standup — Repository File Classification
|
||||
|
||||
- **Writer:** sol (Hermes, Triage lane — everyday Q&A and classification)
|
||||
- **Date:** 2026-10-26
|
||||
- **Scope:** `/root/troupe-standup`, excluding `$ .git $`, `$ .hg $`, `$ .svn $` (version-control internals)
|
||||
- **Method:** single `os.walk` pass; every path classified by extension into a documented role set; directories grouped by top-level path component.
|
||||
- Machine-readable summary enclosed in `summary` fences below.
|
||||
|
||||
## Verdict
|
||||
|
||||
`CLASSIFY: PASS` — 4391 files, 212,995,197 bytes, 34 extensions, 32 top-level dirs.
|
||||
|
||||
## Summary (JSON)
|
||||
|
||||
```json
|
||||
{
|
||||
"total_files": 4391,
|
||||
"total_bytes": 212995202,
|
||||
"distinct_extensions": 34,
|
||||
"top_level_dirs": 32,
|
||||
"excluded_dirs": [
|
||||
".git",
|
||||
".hg",
|
||||
".svn"
|
||||
],
|
||||
"date": "2026-10-26",
|
||||
"role_counts": {
|
||||
"code": 1302,
|
||||
"doc": 1719,
|
||||
"media": 872,
|
||||
"manifest": 430,
|
||||
"secret": 16,
|
||||
"other": 52
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## By extension
|
||||
|
||||
| extension | files | share % |
|
||||
|---|---|---|
|
||||
| `.md` | 937 | 21.34% |
|
||||
| `.py` | 869 | 19.79% |
|
||||
| `.png` | 817 | 18.61% |
|
||||
| `.txt` | 665 | 15.14% |
|
||||
| `.pyc` | 379 | 8.63% |
|
||||
| `.json` | 283 | 6.45% |
|
||||
| `.html` | 72 | 1.64% |
|
||||
| `.sh` | 65 | 1.48% |
|
||||
| `.csv` | 53 | 1.21% |
|
||||
| `(none)` | 52 | 1.18% |
|
||||
| `.svg` | 31 | 0.71% |
|
||||
| `.tsv` | 29 | 0.66% |
|
||||
| `.xml` | 23 | 0.52% |
|
||||
| `.pdf` | 22 | 0.50% |
|
||||
| `.jpg` | 21 | 0.48% |
|
||||
| `.age` | 16 | 0.36% |
|
||||
| `.tag` | 12 | 0.27% |
|
||||
| `.jsonl` | 9 | 0.20% |
|
||||
| `.orig` | 7 | 0.16% |
|
||||
| `.log` | 7 | 0.16% |
|
||||
| `.sha256` | 5 | 0.11% |
|
||||
| `.mp3` | 3 | 0.07% |
|
||||
| `.diff` | 2 | 0.05% |
|
||||
| `.c` | 2 | 0.05% |
|
||||
| `.rqzp3z` | 1 | 0.02% |
|
||||
| `.goyiwz` | 1 | 0.02% |
|
||||
| `.dl` | 1 | 0.02% |
|
||||
| `.rc` | 1 | 0.02% |
|
||||
| `.sx2gia` | 1 | 0.02% |
|
||||
| `.gz` | 1 | 0.02% |
|
||||
| `.out` | 1 | 0.02% |
|
||||
| `.check` | 1 | 0.02% |
|
||||
| `.md5` | 1 | 0.02% |
|
||||
| `.yaml` | 1 | 0.02% |
|
||||
|
||||
## By top-level directory
|
||||
|
||||
| directory | files | bytes | byte % |
|
||||
|---|---|---|---|
|
||||
| `wizard-work` | 3698 | 203939336 | 95.75% |
|
||||
| `replies` | 384 | 2423660 | 1.14% |
|
||||
| `checkins` | 94 | 1093807 | 0.51% |
|
||||
| `recoveries` | 64 | 1384931 | 0.65% |
|
||||
| `tools` | 39 | 1359631 | 0.64% |
|
||||
| `career-lane` | 18 | 328376 | 0.15% |
|
||||
| `access` | 17 | 5414 | 0.00% |
|
||||
| `wizard-outputs` | 16 | 175575 | 0.08% |
|
||||
| `docs` | 13 | 176127 | 0.08% |
|
||||
| `harness-reflections` | 10 | 25155 | 0.01% |
|
||||
| `.ruff_cache` | 7 | 4274 | 0.00% |
|
||||
| `notes` | 4 | 14531 | 0.01% |
|
||||
| `decisions` | 4 | 11402 | 0.01% |
|
||||
| `.pytest_cache` | 4 | 4649 | 0.00% |
|
||||
| `audits` | 2 | 15203 | 0.01% |
|
||||
| `.triage_probe.py` | 1 | 815 | 0.00% |
|
||||
| `README.md` | 1 | 1409 | 0.00% |
|
||||
| `repo_exts.tsv` | 1 | 365 | 0.00% |
|
||||
| `repo_files.tsv` | 1 | 206338 | 0.10% |
|
||||
| `.triage_dump_pending.py` | 1 | 813 | 0.00% |
|
||||
| `FREE-TIER-CANDIDATES.md` | 1 | 2859 | 0.00% |
|
||||
| `.mailmap` | 1 | 1367 | 0.00% |
|
||||
| `.gitignore` | 1 | 546 | 0.00% |
|
||||
| `WORK-QUEUE.md` | 1 | 1768705 | 0.83% |
|
||||
| `STANDING-AGREEMENT.md` | 1 | 7459 | 0.00% |
|
||||
| `.triage_build.py` | 1 | 9925 | 0.00% |
|
||||
| `.triage_dump.py` | 1 | 447 | 0.00% |
|
||||
| `repo_tree.tsv` | 1 | 8165 | 0.00% |
|
||||
| `JOIN-THE-TROUPE.md` | 1 | 3956 | 0.00% |
|
||||
| `FAST-LANE.md` | 1 | 1548 | 0.00% |
|
||||
| `WIZARDS-TABLE.md` | 1 | 8930 | 0.00% |
|
||||
| `inbox` | 1 | 9484 | 0.00% |
|
||||
|
||||
## Role classification
|
||||
|
||||
| role | files | share % | extensions |
|
||||
|---|---|---|---|
|
||||
| `code` | 1302 | 29.65% | `.c, .csv, .json, .py, .sh, .tsv, .yaml` |
|
||||
| `doc` | 1719 | 39.15% | `.html, .md, .pdf, .txt, .xml` |
|
||||
| `media` | 872 | 19.86% | `.jpg, .mp3, .png, .svg` |
|
||||
| `manifest` | 430 | 9.79% | `.check, .diff, .dl, .goyiwz, .gz, .jsonl, .log, .md5, .orig, .out, .pyc, .rc, .rqzp3z, .sha256, .sx2gia, .tag` |
|
||||
| `secret` | 16 | 0.36% | `.age` |
|
||||
| `other` | 52 | 1.18% | `(none)` |
|
||||
|
||||
## Unmapped (no extension)
|
||||
|
||||
| name | files |
|
||||
|---|---|
|
||||
| `(none)` — files with no extension | 52 |
|
||||
|
||||
## Notes
|
||||
|
||||
- `.pyc` (379 files) is bytecode cache; sits inside `wizard-work` (pycache) plus scattered `*.pyc`.
|
||||
- `wizard-work` dominates the byte share: 203,935,268 B ≈ 95.8% of the tree.
|
||||
- `repo_files.tsv` (206,338 B, 3345 lines) is superseded: it omits 1045 files (4391 − 3345) and its row-1 content is a corrupt heredoc.
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
# Triage - 2026-10-26
|
||||
|
||||
## Decision
|
||||
|
||||
Triage of the 12 pending items in `inbox/seed-2026-09-26.json`, classified from each item's stated evidence by the documented rubric.
|
||||
|
||||
| # | Category | Decision | Summary (evidence head) |
|
||||
|---|---|---|---|
|
||||
| 1 | archive_fix | approve | Archive fix: magazine-021 says only Loko and Happy responded |
|
||||
| 2 | app_pr | table | Turd app: approve pushing branch zephyrus/62-symptom-escalation-regres |
|
||||
| 3 | archive_fix | approve | Archive fix: magazine-011 calls John the 'founder' of Proof of Ink |
|
||||
| 4 | app_pr | table | Turd app: approve submitting the a11y PR from zephyrus/65-a11y-gates |
|
||||
| 5 | app_pr | table | Turd app: approve pushing branch zephyrus/67-hard-stool-followup |
|
||||
| 6 | archive_fix | approve | Archive fix: magazine-011 says merch was made for the Boston Bitcoin F |
|
||||
| 7 | archive_fix | approve | Archive fix: magazine-061 misattributes the centerfold reference |
|
||||
| 8 | general | table | Trial by Timmy: send Timmy the local-inference trial brief for your Ma |
|
||||
| 9 | general | table | Q9: hand unreleased audio to Timmy under checksum for independent QC |
|
||||
| 10 | archive_fix | approve | Archive fix: magazine-061 claims a 'weekly Thursday intelligence-style |
|
||||
| 11 | archive_fix | approve | Archive fix: magazine-040 'last block he mined' sentence replacement |
|
||||
| 12 | archive_fix | approve | Archive fix: magazine-041 calls it 'Stackchain's rowdiest fork war' |
|
||||
|
||||
## Counts
|
||||
|
||||
| category | approve | table | total |
|
||||
|---|---|---|---|
|
||||
| archive_fix | 7 | 0 | 7 |
|
||||
| app_pr | 0 | 3 | 3 |
|
||||
| general | 0 | 2 | 2 |
|
||||
|
||||
| decision | archive_fix | app_pr | general | total |
|
||||
|---|---|---|---|---|
|
||||
| approve | 7 | 0 | 0 | 7 |
|
||||
| table | 0 | 3 | 2 | 5 |
|
||||
|
||||
## Action
|
||||
|
||||
approve: publish or apply the grounded correction (archive_fix). table: app_pr/general escalations awaiting maintainer or Alexander authorization.
|
||||
|
||||
generated_at: 2026-10-26T16:15:20Z
|
||||
Reference in new issue
Block a user