The working ledger for ADR-047: finding entries whose evidence has outgrown their status, a few at a time, so that any session can pick up where the last one stopped.
| File | What it holds | Who writes it |
|---|---|---|
queue.yaml | Every triaged candidate with its rubric score and state, the per-wave yield, and the handoff block | updated in every batch; bump version, append to history |
decisions/<CODE>.yaml | One review: disposition, accepted and excluded scope, evidence, blockers, reviewed_revision, next action | written once, when the review is reached |
batches/batch-NNN.yaml | What one batch reviewed, its outcomes, its yield, and what it learned | one per batch |
NOTES.md | Working notes: patterns, traps, open threads | append freely |
check.py | Fails if the queue and the decision files disagree | run before every commit |
triage.py | Scores wave-1 candidates by the rubric, from metadata | run on a freshly fetched origin/main when re-triaging |
triage_bundling.py | Scores wave-2 mathematics THEORYs for bundling (triage-003) | as above |
triage_wave3.py | Scores Proposed THEORYs outside the queue for bundling and reading depth, routes formal results to re-derivation, and draws a control sample (triage-004, -005) | as above |
Resuming
Read queue.yaml’s handoff, then NOTES.md. If in_review names a
candidate, finish that one first. Then follow next_step. A continuation
prompt that works on its own:
Continue the Nucleation promotion audit from record/promotion-audit/queue.yaml. Review the next five pending candidates in queue order, write one decision file per candidate as each is reached, update the queue and its hand-off, run check.py, commit, and stop. Do not change any entry’s status without a decision file that calls for it.
A batch, step by step
- Set
handoff.batchand mark the first candidatein_review. Commit. - Review it: read the entry in full and the records it rests on, at most
two rounds of retrieval. Decide one of
promote,narrow-and-promote,split,retain-proposed,needs-correctionordefer. Every disposition but a promotion names a specific blocker. - Write
decisions/<CODE>.yaml, set the candidate todecidedwith its disposition, and movein_reviewon. Commit after each decision when a session might end. - After at most five, write
batches/batch-NNN.yaml, update the wave counts, bump the queue’sversion, rewritehandoff, and runpython3 check.py. Commit and stop.
Promotions are separate pull requests of at most three entries. Each cites
the decision file it carries out. A decision is stale once the entry has
changed since its reviewed_revision.
The guard
python3 -m pytest record/promotion-audit/test_check.py fires check.py
against a consistent ledger and against each kind of drift. It was also
fired once against the real ledger on 2026-10-19 (DP-4): with
decisions/CLAIM-270.yaml moved away, it reported “CLAIM-270 is decided in
the queue but has no decision file” and exited 1. With the file restored it
passed.
Closed
ADR-057 replaces this procedure: the worklist is derived on each pass by
record/status-review/worklist.py, and nothing here is updated. This
directory stays as the record of the first audit, 2026-10-19 to 2026-10-21.