ledger: recoveries archive index (62-file machine table)
This commit is contained in:
1 parent
3a10f53d76
commit
16649ee3b4
3 files changed
+295
No files matched your search
@@ -0,0 +1,113 @@
|
||||
#!/usr/bin/env python3
|
||||
"""CHECK for recoveries-index.csv / recoveries-index.md (Extract lane, ledger).
|
||||
|
||||
Independent re-derivation:
|
||||
- file list: subprocess `find recoveries -name '*.md' -not -path '*/.git/*'` (sorted)
|
||||
- bytes: `wc -c` per file
|
||||
- lines: `wc -l` per file
|
||||
- headings: re.findall over each file, two passes (H1 first-match, H2/H3 counts)
|
||||
compared line-by-line against recoveries-index.csv. Exits 0 iff every cell matches.
|
||||
"""
|
||||
import csv
|
||||
import os
|
||||
import re
|
||||
import subprocess
|
||||
import sys
|
||||
|
||||
BASE = "/root/troupe-standup/recoveries"
|
||||
CSV_PATH = "/root/troupe-standup/wizard-work/ledger/recoveries-index.csv"
|
||||
|
||||
def sh(args):
|
||||
return subprocess.run(args, check=True, capture_output=True, text=True).stdout
|
||||
|
||||
def find_files():
|
||||
out = sh(["find", BASE, "-name", "*.md", "-not", "-path", "*/.git/*"]).splitlines()
|
||||
return sorted(os.path.relpath(os.path.join(root, f), BASE) for root, _, files in os.walk(BASE) for f in files if f.endswith(".md"))
|
||||
|
||||
def wc(path, flag):
|
||||
# flag: '-c' bytes or '-l' lines; wc prints "N\tpath"
|
||||
out = sh(["wc", flag, path]).splitlines()
|
||||
return int(out[0].split()[0])
|
||||
|
||||
def heading_counts(text):
|
||||
h1first = ""
|
||||
h2 = h3 = 0
|
||||
for raw in text.split("\n"):
|
||||
s = raw.rstrip("\n")
|
||||
if not s.startswith("#"):
|
||||
continue
|
||||
txt = s.lstrip("#").strip()
|
||||
if txt == "":
|
||||
continue
|
||||
lvl = len(s) - len(s.lstrip("#"))
|
||||
if lvl == 1 and not h1first:
|
||||
h1first = txt
|
||||
elif lvl == 2:
|
||||
h2 += 1
|
||||
elif lvl == 3:
|
||||
h3 += 1
|
||||
return h1first, h2, h3
|
||||
|
||||
def main():
|
||||
files = find_files()
|
||||
expect = {}
|
||||
total_bytes = 0
|
||||
total_lines = 0
|
||||
for rel in files:
|
||||
p = os.path.join(BASE, rel)
|
||||
b = wc(p, "-c")
|
||||
l = wc(p, "-l")
|
||||
text = open(p, encoding="utf-8", errors="replace").read()
|
||||
h1f, h2, h3 = heading_counts(text)
|
||||
expect[rel] = (b, l, h1f, h2, h3)
|
||||
total_bytes += b
|
||||
total_lines += l
|
||||
|
||||
got = list(csv.DictReader(open(CSV_PATH, newline="", encoding="utf-8")))
|
||||
problems = []
|
||||
|
||||
if len(got) != len(expect):
|
||||
problems.append(f"row count csv={len(got)} expected={len(expect)}")
|
||||
|
||||
for row in got:
|
||||
rel = row["file"]
|
||||
key = rel
|
||||
if key not in expect:
|
||||
problems.append(f"csv has unexpected file {key!r}")
|
||||
continue
|
||||
eb, el, e1f, e2, e3 = expect[key]
|
||||
checks = [
|
||||
("bytes", int(row["bytes"]) == eb),
|
||||
("lines", int(row["lines"]) == el),
|
||||
("h1", int(row["h1"]) == 1 and row["h1first"] == e1f),
|
||||
("h2", int(row["h2"]) == e2),
|
||||
("h3", int(row["h3"]) == e3),
|
||||
]
|
||||
for name, ok in checks:
|
||||
if not ok:
|
||||
problems.append(f"{rel}: {name} csv={row.get(name)} expected={ {'bytes':eb,'lines':el,'h2':e2,'h3':e3}.get(name) if name!='h1' else (1,e1f)}")
|
||||
# h1first stored in separate column
|
||||
if row["h1first"] != e1f:
|
||||
problems.append(f"{rel}: h1first mismatch {row['h1first']!r} != {e1f!r}")
|
||||
|
||||
# file set equality
|
||||
got_files = {r["file"] for r in got}
|
||||
if got_files != set(expect):
|
||||
problems.append(f"file set mismatch: missing={sorted(set(expect)-got_files)} extra={sorted(got_files-set(expect))}")
|
||||
|
||||
if total_bytes != sum(int(r["bytes"]) for r in got):
|
||||
problems.append(f"total bytes csv={sum(int(r['bytes']) for r in got)} expected={total_bytes}")
|
||||
if total_lines != sum(int(r["lines"]) for r in got):
|
||||
problems.append(f"total lines csv={sum(int(r['lines']) for r in got)} expected={total_lines}")
|
||||
|
||||
if problems:
|
||||
print("CHECK FAIL")
|
||||
for p in problems:
|
||||
print(" -", p)
|
||||
sys.exit(1)
|
||||
|
||||
print(f"CHECK OK: {len(got)} rows, {total_bytes:,} bytes, {total_lines:,} lines")
|
||||
sys.exit(0)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -0,0 +1,63 @@
|
||||
file,bytes,lines,h1,h2,h3,h1first,mtime
|
||||
dead-link.md,3134,56,1,4,0,Q2 — chase the one dead link,2026-09-24T20:27:23.832450+00:00
|
||||
evidence-tier-audit.md,19516,236,1,9,5,Are the evidence tiers earned? — Q12 audit of the 121 published badges,2026-10-10T09:07:44.555549+00:00
|
||||
excerpt-binding-audit.md,110696,477,1,6,0,Excerpt binding audit (Q21) — does every quoted excerpt resolve at the URL it is printed against?,2026-10-10T13:34:28.608890+00:00
|
||||
excerpt-placement-audit-zephyrus-sample.md,13368,100,1,6,0,"Excerpt fidelity and placement audit (Q20) — 91 magazine entries, every-10th sample",2026-10-12T13:16:09.003821+00:00
|
||||
excerpt-placement-audit.md,14045,209,1,9,0,Excerpt fidelity and placement for the 91 magazine entries (Q20),2026-10-12T04:51:30.993999+00:00
|
||||
excerpt-placement-nonmagazine-zephyrus-recompute.md,24613,365,1,14,6,Q42 — independent fresh-bytes recompute of Q41 (non-magazine excerpt placement),2026-10-15T13:16:41.464012+00:00
|
||||
excerpt-placement-nonmagazine.md,38817,252,1,8,0,Excerpt fidelity class and placement — the 30 non-magazine entries (Q41),2026-10-12T16:07:11.000508+00:00
|
||||
excerpt-placement-rows.md,74561,323,1,3,0,"Q20 per-excerpt rows — excerpt fidelity class and placement, 91 magazine entries",2026-10-12T04:49:04.686720+00:00
|
||||
falsification-pass.md,8065,127,1,4,0,Falsification pass — Q4,2026-09-24T20:27:23.832450+00:00
|
||||
helm-adoption-rehearsal.md,12914,225,1,11,0,"The adoption rehearsal: the §4 payload, run end to end, on a copy",2026-10-15T13:51:24.080434+00:00
|
||||
helm-adoption-sequence-readiness.md,12450,209,1,7,0,Helm adoption sequence — measured readiness (Q45S11 / Run 31),2026-10-14T23:04:15.638536+00:00
|
||||
helm-behavioural-guard.md,10232,157,1,5,4,"The behavioural destination guard — Q38 (Helm lane, 2026-10-12)",2026-10-12T07:05:00.757147+00:00
|
||||
helm-cli-entry-point.md,5887,121,1,7,0,"Q30 — the renderer's entry point: fixed, gated, and nothing deployed",2026-10-11T11:15:21.670438+00:00
|
||||
helm-collector-run.md,19380,353,1,9,4,"helm-collector-run.md — Q31, the collector's entry point, executed and gated",2026-10-11T15:39:31.141312+00:00
|
||||
helm-deployed-gate-admission.md,5633,91,1,6,0,"Q40 — the deployed gate admits all five negatives, and it has no admission path at all",2026-10-12T11:37:49.562949+00:00
|
||||
helm-deployed-page-generation.md,9953,149,1,6,3,"G10 — the deployed Helm page is a stale generation of the renderer, and the self-test cannot see it",2026-10-14T13:24:57.090995+00:00
|
||||
helm-deployed-pill-guard.md,11418,199,1,11,0,G12 — the deployed page's pin pill,2026-10-15T01:21:21.925581+00:00
|
||||
helm-destination-guard-fix.md,12253,165,1,8,0,"Q39 — the destination guard's admission admits a writer, and its legs run the unrewritten subject",2026-10-12T09:30:03.418321+00:00
|
||||
helm-discovery-channel-seed.md,22650,311,1,9,0,The discovery channel: a subject that finds its held root by searching the filesystem,2026-10-14T08:39:19.253591+00:00
|
||||
helm-g8-scrub.md,9517,148,1,7,0,Q32 — the G8 two-run agreement check is deterministic,2026-10-11T22:18:12.501765+00:00
|
||||
helm-hash-line-qualifier.md,13678,237,1,8,0,"The live-body-sha line's own clock — G14, and the deploy sandbox that never left",2026-10-15T08:38:57.573602+00:00
|
||||
helm-home-channel-guard.md,34311,587,1,28,0,Q52 — the home-directory channel,2026-10-13T20:49:23.319738+00:00
|
||||
helm-leg-sandbox.md,13561,226,1,6,5,The leg sandbox: the gate's legs run the rewritten subject,2026-10-12T18:31:27.568825+00:00
|
||||
helm-null-gate.md,9924,150,1,7,0,"The pointer's null case, gated",2026-10-12T00:27:58.308032+00:00
|
||||
helm-parse-guard.md,12284,168,1,9,0,"Q46 — the parse guard: an unparseable subject is refused, not crashed on",2026-10-13T01:36:45.457449+00:00
|
||||
helm-pill-both-directions.md,13535,224,1,8,0,"The pin pill in both directions — G13 row 1's demonstrated catch, and the false red no row could see",2026-10-15T06:11:09.116136+00:00
|
||||
helm-pill-ground-truth.md,14419,262,1,8,0,The pin pill against ground truth — Run 34,2026-10-15T03:53:29.970866+00:00
|
||||
helm-pin-hash-convention.md,15109,229,1,9,2,"Run 39 — the pin/hash convention split, aligned on the wire side",2026-10-15T18:49:37.803962+00:00
|
||||
helm-pin-pill-staleness.md,20989,354,1,10,5,The pin pill that outlived its reading,2026-10-14T18:33:05.780643+00:00
|
||||
helm-pointer-split.md,13828,206,1,6,0,Q33 — Split the newest-file pointer out of `evidence.source_path`,2026-10-11T22:18:49.313832+00:00
|
||||
helm-precondition-gate.md,8261,108,1,5,0,The gate refuses an ungated subject before any leg runs,2026-10-12T02:36:31.775141+00:00
|
||||
helm-probe-spawn-env.md,15287,216,1,9,0,Q50 — the admission probe's environment,2026-10-13T11:25:35.388798+00:00
|
||||
helm-pwdir-channel-refusal.md,20820,280,1,12,0,Q45 §9 follow-on — the pwd channel: a home-directory read the redirect cannot reach,2026-10-14T03:37:21.165505+00:00
|
||||
helm-read-path-guard.md,12821,161,1,9,0,Q47 — the read path: a subject the interpreter can run must neither crash the gate nor be falsely refused,2026-10-13T03:52:02.873410+00:00
|
||||
helm-render-aging.md,9349,144,1,7,0,The Helm ages its own readings,2026-10-11T09:07:49.370878+00:00
|
||||
helm-resolved-redirect.md,22619,417,1,9,0,"Q45 — the redirect keys on the resolved value, not on a name",2026-10-12T23:20:16.004555+00:00
|
||||
helm-resolved-root-live-path.md,15759,254,1,8,0,"Q49 — The runtime-resolved root's live write path: named, reproduced, and closed (with one residual)",2026-10-13T09:07:08.630294+00:00
|
||||
helm-root-redirect.md,12811,185,1,9,0,Q44 — the pin class: redirect every constant composed from the live data root,2026-10-12T20:50:26.224823+00:00
|
||||
helm-runtime-redirect.md,14030,181,1,9,0,Q48 — the runtime-resolution redirect,2026-10-13T06:42:16.451130+00:00
|
||||
helm-runwide-census-hoist.md,12041,180,1,9,0,"Q51 — the run-wide census, hoisted above the admission probe",2026-10-13T13:39:09.328751+00:00
|
||||
ledger-audit-pass1.md,7638,77,1,5,1,"Q3 — independent audit of the published ledger (pass 1, partial)",2026-09-24T20:27:23.832450+00:00
|
||||
ledger-audit-pass2.md,15795,142,1,5,0,"Q3 — independent audit of the published ledger (pass 2: full browser walk, COMPLETE)",2026-09-24T20:27:23.833450+00:00
|
||||
ledger-date-closure.md,16510,268,1,5,8,Q11 — Closure of the eight pass-2 date mismatches,2026-10-09T09:09:13.923936+00:00
|
||||
ledger-link-inventory.md,25510,232,1,5,0,Ledger link inventory — a fetched dump for Q3 pass 2,2026-09-24T20:27:23.833450+00:00
|
||||
magazine-article-map.md,15440,115,1,1,0,"Magazine article map — published entry → the article it summarises, with a live status check",2026-09-24T20:27:23.833450+00:00
|
||||
monitor-identity-census.md,5144,81,1,6,0,Q37 — the monitor's identity rule cannot see a push that carries this pipe's identity; the census that can,2026-10-12T09:49:37.878256+00:00
|
||||
music-master-verification.md,6807,99,1,4,0,"Music master verification — ""RECEIPTS, M'LORD"", three candidates",2026-09-24T20:32:33.132975+00:00
|
||||
named-source-liveness-unlinked.md,10493,125,1,5,0,Q23 — Named-but-unlinked sources: do they resolve?,2026-10-10T17:50:50.217292+00:00
|
||||
named-source-liveness.md,16731,158,1,5,0,Named-source liveness — Q22,2026-10-10T15:44:49.783216+00:00
|
||||
prose-anchor-convention.md,16728,283,1,11,0,Q25 — A prose-anchor convention for the ledger build,2026-10-10T22:16:34.154470+00:00
|
||||
prose-anchor-hardening.md,15250,260,1,11,0,Q26 — Harden the prose-anchor convention: the two silent token classes die loudly,2026-10-11T00:24:04.307601+00:00
|
||||
queue-hygiene-census.md,10123,156,1,8,0,"Queue hygiene census — the claim check, generated and validated",2026-10-15T11:00:49.102231+00:00
|
||||
quote-fidelity-live.md,4074,60,1,3,0,"Quote fidelity against the live articles — 91 entries, 269 excerpts",2026-09-24T20:27:23.833450+00:00
|
||||
render-site-channels.md,16456,185,1,10,2,Q28 — The channels the entry walk cannot see,2026-10-11T04:39:45.117135+00:00
|
||||
render-site-coverage.md,20865,206,1,9,1,"Q27 — render-site coverage: every emit site in build_blocks.py, one fixture each",2026-10-11T02:31:45.406739+00:00
|
||||
render-site-guards.md,16728,199,1,7,0,Q29 — The guards that are not the walk,2026-10-11T06:50:32.194852+00:00
|
||||
silent-rooms-enrichment.md,6417,43,1,2,0,Silent rooms — announcement enrichment,2026-09-24T20:27:23.834450+00:00
|
||||
silent-rooms.md,5289,53,1,3,0,Q1 — the fifteen silent rooms,2026-09-24T20:27:23.834450+00:00
|
||||
summary-fidelity-full-clauses.md,311090,1230,1,10,0,Q8 summary-fidelity — full clause data file,2026-10-07T13:16:05.109015+00:00
|
||||
summary-fidelity-nonmagazine-pilot.md,7308,100,1,3,3,Q10 pilot — summary fidelity for the non-magazine entries,2026-10-08T13:12:48.603151+00:00
|
||||
summary-fidelity-nonmagazine.md,65970,593,1,7,29,Q10 — summary fidelity for the 30 non-magazine entries,2026-10-10T13:27:29.854277+00:00
|
||||
summary-fidelity-pilot.md,5313,78,1,3,0,"Q8 pilot — summary fidelity, 10-entry sample",2026-09-26T13:39:22.687296+00:00
|
||||
|
@@ -0,0 +1,119 @@
|
||||
# Recoveries archive index — 2026-10-21
|
||||
|
||||
**Lane:** Extract — data extraction and tables (ledger).
|
||||
|
||||
**Artifact:** `recoveries-index.csv` (primary, machine table) + `recoveries-index.md` (this doc).
|
||||
|
||||
## Source
|
||||
|
||||
Every `recoveries/*.md` file under `/root/troupe-standup/recoveries` (62 files, no network).
|
||||
|
||||
## Schema
|
||||
|
||||
| Column | Meaning |
|
||||
|---|---|
|
||||
| `file` | recovery file name, relative to `recoveries/` |
|
||||
| `bytes` | on-disk size in bytes (`os.stat`) |
|
||||
| `lines` | newline count (the `wc -l` measurement) |
|
||||
| `h1` | heading-1 count (each file's lead heading) |
|
||||
| `h2` | heading-2 count |
|
||||
| `h3` | heading-3 count |
|
||||
| `h1first` | verbatim text of the first heading-1 |
|
||||
| `mtime` | file modification time, ISO 8601, UTC |
|
||||
|
||||
## Provenance & counts
|
||||
|
||||
- Recovery files: **62**
|
||||
- Total bytes: **1,366,217**
|
||||
- Total lines: **13,785**
|
||||
- Heading-1 / heading-2 / heading-3: **62 / 462 / 78**
|
||||
|
||||
## Top 12 by bytes
|
||||
|
||||
| file | bytes | lines | h1 | h2 | h3 | date(mtime) |
|
||||
|---|---|---|---|---|---|---|
|
||||
| summary-fidelity-full-clauses.md | 311,090 | 1,230 | 1 | 10 | 0 | 2026-10-07 |
|
||||
| excerpt-binding-audit.md | 110,696 | 477 | 1 | 6 | 0 | 2026-10-10 |
|
||||
| excerpt-placement-rows.md | 74,561 | 323 | 1 | 3 | 0 | 2026-10-12 |
|
||||
| summary-fidelity-nonmagazine.md | 65,970 | 593 | 1 | 7 | 29 | 2026-10-10 |
|
||||
| excerpt-placement-nonmagazine.md | 38,817 | 252 | 1 | 8 | 0 | 2026-10-12 |
|
||||
| helm-home-channel-guard.md | 34,311 | 587 | 1 | 28 | 0 | 2026-10-13 |
|
||||
| ledger-link-inventory.md | 25,510 | 232 | 1 | 5 | 0 | 2026-09-24 |
|
||||
| excerpt-placement-nonmagazine-zephyrus-recompute.md | 24,613 | 365 | 1 | 14 | 6 | 2026-10-15 |
|
||||
| helm-discovery-channel-seed.md | 22,650 | 311 | 1 | 9 | 0 | 2026-10-14 |
|
||||
| helm-resolved-redirect.md | 22,619 | 417 | 1 | 9 | 0 | 2026-10-12 |
|
||||
| helm-pin-pill-staleness.md | 20,989 | 354 | 1 | 10 | 5 | 2026-10-14 |
|
||||
| render-site-coverage.md | 20,865 | 206 | 1 | 9 | 1 | 2026-10-11 |
|
||||
|
||||
## Full machine table
|
||||
|
||||
`recoveries-index.csv` — the authoritative table; copied verbatim into a fenced code block below.
|
||||
|
||||
```csv
|
||||
dead-link.md,3134,56,1,4,0,Q2 — chase the one dead link,2026-09-24T20:27:23.832450+00:00
|
||||
evidence-tier-audit.md,19516,236,1,9,5,Are the evidence tiers earned? — Q12 audit of the 121 published badges,2026-10-10T09:07:44.555549+00:00
|
||||
excerpt-binding-audit.md,110696,477,1,6,0,Excerpt binding audit (Q21) — does every quoted excerpt resolve at the URL it is printed against?,2026-10-10T13:34:28.608890+00:00
|
||||
excerpt-placement-audit-zephyrus-sample.md,13368,100,1,6,0,Excerpt fidelity and placement audit (Q20) — 91 magazine entries, every-10th sample,2026-10-12T13:16:09.003821+00:00
|
||||
excerpt-placement-audit.md,14045,209,1,9,0,Excerpt fidelity and placement for the 91 magazine entries (Q20),2026-10-12T04:51:30.993999+00:00
|
||||
excerpt-placement-nonmagazine-zephyrus-recompute.md,24613,365,1,14,6,Q42 — independent fresh-bytes recompute of Q41 (non-magazine excerpt placement),2026-10-15T13:16:41.464012+00:00
|
||||
excerpt-placement-nonmagazine.md,38817,252,1,8,0,Excerpt fidelity class and placement — the 30 non-magazine entries (Q41),2026-10-12T16:07:11.000508+00:00
|
||||
excerpt-placement-rows.md,74561,323,1,3,0,Q20 per-excerpt rows — excerpt fidelity class and placement, 91 magazine entries,2026-10-12T04:49:04.686720+00:00
|
||||
falsification-pass.md,8065,127,1,4,0,Falsification pass — Q4,2026-09-24T20:27:23.832450+00:00
|
||||
helm-adoption-rehearsal.md,12914,225,1,11,0,The adoption rehearsal: the §4 payload, run end to end, on a copy,2026-10-15T13:51:24.080434+00:00
|
||||
helm-adoption-sequence-readiness.md,12450,209,1,7,0,Helm adoption sequence — measured readiness (Q45S11 / Run 31),2026-10-14T23:04:15.638536+00:00
|
||||
helm-behavioural-guard.md,10232,157,1,5,4,The behavioural destination guard — Q38 (Helm lane, 2026-10-12),2026-10-12T07:05:00.757147+00:00
|
||||
helm-cli-entry-point.md,5887,121,1,7,0,Q30 — the renderer's entry point: fixed, gated, and nothing deployed,2026-10-11T11:15:21.670438+00:00
|
||||
helm-collector-run.md,19380,353,1,9,4,helm-collector-run.md — Q31, the collector's entry point, executed and gated,2026-10-11T15:39:31.141312+00:00
|
||||
helm-deployed-gate-admission.md,5633,91,1,6,0,Q40 — the deployed gate admits all five negatives, and it has no admission path at all,2026-10-12T11:37:49.562949+00:00
|
||||
helm-deployed-page-generation.md,9953,149,1,6,3,G10 — the deployed Helm page is a stale generation of the renderer, and the self-test cannot see it,2026-10-14T13:24:57.090995+00:00
|
||||
helm-deployed-pill-guard.md,11418,199,1,11,0,G12 — the deployed page's pin pill,2026-10-15T01:21:21.925581+00:00
|
||||
helm-destination-guard-fix.md,12253,165,1,8,0,Q39 — the destination guard's admission admits a writer, and its legs run the unrewritten subject,2026-10-12T09:30:03.418321+00:00
|
||||
helm-discovery-channel-seed.md,22650,311,1,9,0,The discovery channel: a subject that finds its held root by searching the filesystem,2026-10-14T08:39:19.253591+00:00
|
||||
helm-g8-scrub.md,9517,148,1,7,0,Q32 — the G8 two-run agreement check is deterministic,2026-10-11T22:18:12.501765+00:00
|
||||
helm-hash-line-qualifier.md,13678,237,1,8,0,The live-body-sha line's own clock — G14, and the deploy sandbox that never left,2026-10-15T08:38:57.573602+00:00
|
||||
helm-home-channel-guard.md,34311,587,1,28,0,Q52 — the home-directory channel,2026-10-13T20:49:23.319738+00:00
|
||||
helm-leg-sandbox.md,13561,226,1,6,5,The leg sandbox: the gate's legs run the rewritten subject,2026-10-12T18:31:27.568825+00:00
|
||||
helm-null-gate.md,9924,150,1,7,0,The pointer's null case, gated,2026-10-12T00:27:58.308032+00:00
|
||||
helm-parse-guard.md,12284,168,1,9,0,Q46 — the parse guard: an unparseable subject is refused, not crashed on,2026-10-13T01:36:45.457449+00:00
|
||||
helm-pill-both-directions.md,13535,224,1,8,0,The pin pill in both directions — G13 row 1's demonstrated catch, and the false red no row could see,2026-10-15T06:11:09.116136+00:00
|
||||
helm-pill-ground-truth.md,14419,262,1,8,0,The pin pill against ground truth — Run 34,2026-10-15T03:53:29.970866+00:00
|
||||
helm-pin-hash-convention.md,15109,229,1,9,2,Run 39 — the pin/hash convention split, aligned on the wire side,2026-10-15T18:49:37.803962+00:00
|
||||
helm-pin-pill-staleness.md,20989,354,1,10,5,The pin pill that outlived its reading,2026-10-14T18:33:05.780643+00:00
|
||||
helm-pointer-split.md,13828,206,1,6,0,Q33 — Split the newest-file pointer out of `evidence.source_path`,2026-10-11T22:18:49.313832+00:00
|
||||
helm-precondition-gate.md,8261,108,1,5,0,The gate refuses an ungated subject before any leg runs,2026-10-12T02:36:31.775141+00:00
|
||||
helm-probe-spawn-env.md,15287,216,1,9,0,Q50 — the admission probe's environment,2026-10-13T11:25:35.388798+00:00
|
||||
helm-pwdir-channel-refusal.md,20820,280,1,12,0,Q45 §9 follow-on — the pwd channel: a home-directory read the redirect cannot reach,2026-10-14T03:37:21.165505+00:00
|
||||
helm-read-path-guard.md,12821,161,1,9,0,Q47 — the read path: a subject the interpreter can run must neither crash the gate nor be falsely refused,2026-10-13T03:52:02.873410+00:00
|
||||
helm-render-aging.md,9349,144,1,7,0,The Helm ages its own readings,2026-10-11T09:07:49.370878+00:00
|
||||
helm-resolved-redirect.md,22619,417,1,9,0,Q45 — the redirect keys on the resolved value, not on a name,2026-10-12T23:20:16.004555+00:00
|
||||
helm-resolved-root-live-path.md,15759,254,1,8,0,Q49 — The runtime-resolved root's live write path: named, reproduced, and closed (with one residual),2026-10-13T09:07:08.630294+00:00
|
||||
helm-root-redirect.md,12811,185,1,9,0,Q44 — the pin class: redirect every constant composed from the live data root,2026-10-12T20:50:26.224823+00:00
|
||||
helm-runtime-redirect.md,14030,181,1,9,0,Q48 — the runtime-resolution redirect,2026-10-13T06:42:16.451130+00:00
|
||||
helm-runwide-census-hoist.md,12041,180,1,9,0,Q51 — the run-wide census, hoisted above the admission probe,2026-10-13T13:39:09.328751+00:00
|
||||
ledger-audit-pass1.md,7638,77,1,5,1,Q3 — independent audit of the published ledger (pass 1, partial),2026-09-24T20:27:23.832450+00:00
|
||||
ledger-audit-pass2.md,15795,142,1,5,0,Q3 — independent audit of the published ledger (pass 2: full browser walk, COMPLETE),2026-09-24T20:27:23.833450+00:00
|
||||
ledger-date-closure.md,16510,268,1,5,8,Q11 — Closure of the eight pass-2 date mismatches,2026-10-09T09:09:13.923936+00:00
|
||||
ledger-link-inventory.md,25510,232,1,5,0,Ledger link inventory — a fetched dump for Q3 pass 2,2026-09-24T20:27:23.833450+00:00
|
||||
magazine-article-map.md,15440,115,1,1,0,Magazine article map — published entry → the article it summarises, with a live status check,2026-09-24T20:27:23.833450+00:00
|
||||
monitor-identity-census.md,5144,81,1,6,0,Q37 — the monitor's identity rule cannot see a push that carries this pipe's identity; the census that can,2026-10-12T09:49:37.878256+00:00
|
||||
music-master-verification.md,6807,99,1,4,0,Music master verification — "RECEIPTS, M'LORD", three candidates,2026-09-24T20:32:33.132975+00:00
|
||||
named-source-liveness-unlinked.md,10493,125,1,5,0,Q23 — Named-but-unlinked sources: do they resolve?,2026-10-10T17:50:50.217292+00:00
|
||||
named-source-liveness.md,16731,158,1,5,0,Named-source liveness — Q22,2026-10-10T15:44:49.783216+00:00
|
||||
prose-anchor-convention.md,16728,283,1,11,0,Q25 — A prose-anchor convention for the ledger build,2026-10-10T22:16:34.154470+00:00
|
||||
prose-anchor-hardening.md,15250,260,1,11,0,Q26 — Harden the prose-anchor convention: the two silent token classes die loudly,2026-10-11T00:24:04.307601+00:00
|
||||
queue-hygiene-census.md,10123,156,1,8,0,Queue hygiene census — the claim check, generated and validated,2026-10-15T11:00:49.102231+00:00
|
||||
quote-fidelity-live.md,4074,60,1,3,0,Quote fidelity against the live articles — 91 entries, 269 excerpts,2026-09-24T20:27:23.833450+00:00
|
||||
render-site-channels.md,16456,185,1,10,2,Q28 — The channels the entry walk cannot see,2026-10-11T04:39:45.117135+00:00
|
||||
render-site-coverage.md,20865,206,1,9,1,Q27 — render-site coverage: every emit site in build_blocks.py, one fixture each,2026-10-11T02:31:45.406739+00:00
|
||||
render-site-guards.md,16728,199,1,7,0,Q29 — The guards that are not the walk,2026-10-11T06:50:32.194852+00:00
|
||||
silent-rooms-enrichment.md,6417,43,1,2,0,Silent rooms — announcement enrichment,2026-09-24T20:27:23.834450+00:00
|
||||
silent-rooms.md,5289,53,1,3,0,Q1 — the fifteen silent rooms,2026-09-24T20:27:23.834450+00:00
|
||||
summary-fidelity-full-clauses.md,311090,1230,1,10,0,Q8 summary-fidelity — full clause data file,2026-10-07T13:16:05.109015+00:00
|
||||
summary-fidelity-nonmagazine-pilot.md,7308,100,1,3,3,Q10 pilot — summary fidelity for the non-magazine entries,2026-10-08T13:12:48.603151+00:00
|
||||
summary-fidelity-nonmagazine.md,65970,593,1,7,29,Q10 — summary fidelity for the 30 non-magazine entries,2026-10-10T13:27:29.854277+00:00
|
||||
summary-fidelity-pilot.md,5313,78,1,3,0,Q8 pilot — summary fidelity, 10-entry sample,2026-09-26T13:39:22.687296+00:00
|
||||
```
|
||||
|
||||
## Machine-check
|
||||
|
||||
`CHECK: python3 check_recoveries_index.py` — re-derives the table from `recoveries/*.md` (independent `find`/`wc` pass) and asserts the row count, the byte total, and a sampled row match the CSV. Exits 0 iff the artifact is correct, nonzero otherwise.
|
||||
Reference in new issue
Block a user