The Findings Ledger
syntaxis/context/findings.md is where defects actually live. A chat report
doesn’t survive a context clear — this file does.
Two commands write to it: /audit, coming out of a
code review, and /test-run, coming out of a
test cycle. One ledger, one gate, no matter which one wrote the entry.
What an entry looks like
Section titled “What an entry looks like”The header line is a machine-readable contract. Everything below it is prose, meant for a person to read.
### F-03 [P0] open - Retained auth volumes carry the run label
**File:** ops/agent-proof/compose.yaml:86**Found:** 2026-07-21 by /audit (scope: current; lens: security)**Why it matters:** ...**Suggested fix:** ...**Resolution:**A defect that came from a test cycle instead names its cycle and case:
**Found:** 2026-09-19 by /test-run (cycle: regression; case: TC-014)Identifiers
Section titled “Identifiers”They’re sequential within the ledger — F-01, F-02 — and never get reused
or renumbered while an entry is still living there, even once it closes.
/complete archives resolved entries under a prefix tied to the work item:
feature 12’s first F-03 turns into 12/F-03, and a second build attempt’s
becomes 12-build-2/F-03. That prefixed form is the permanent reference
going forward, which is exactly what lets a fresh ledger start back at
F-01 without ever colliding with something archived earlier.
Statuses
Section titled “Statuses”| Status | Meaning | Blocks P0/P1 at /complete |
|---|---|---|
unverified |
Suspected, with no confirming evidence yet | No |
open |
Confirmed, not yet repaired | Yes |
fixed |
Repaired, but not yet re-reviewed | Yes |
closed |
Repaired and re-reviewed against the new code | No |
accepted |
Left as-is, by your explicit decision | No |
invalid |
A re-examination showed the finding was wrong | No |
fixed still blocking completion is intentional — a repair is only a claim
until something actually goes back and checks it.
Severities
Section titled “Severities”| Level | Meaning |
|---|---|
P0 |
Data loss, a security break, or code that flatly can’t ship |
P1 |
A likely bug, a broken contract, a missing guard, risky duplication |
P2 |
A real defect that has a workaround |
P3 |
Minor or purely cosmetic |
What keeps this ledger worth trusting
Section titled “What keeps this ledger worth trusting”- Nothing closes itself. A
fixedfinding only becomesclosedonce a pass has actually re-examined its file, confirmed the original defect is gone with no new one introduced, and explicitly said so in its report. acceptedtakes your explicit decision, made in the current session, with your reasoning written down. It’s never assumed on your behalf.invalidtakes actual evidence that the finding was wrong, recorded under Resolution.- One defect, one finding. Several test cases failing for the same underlying cause share a single entry rather than each getting their own.
/test-runnever touches the status of an entry that already exists.
When work completes
Section titled “When work completes”/complete won’t proceed while any P0 or P1 sits at open or fixed.
Whatever resolved — closed, accepted, invalid — gets archived alongside
the work at its final status, and the live ledger starts fresh.
A fixed entry never gets archived, at any severity — it isn’t resolved
yet, so there’s nothing final to file away.