reply_check.py read DUPLICATE_NUMBER on replies/2026-10-20-to-null-01.md and replies/2026-10-22-to-null-01.md, so verify.py's reply-headings leg read "FAIL: 2 file(s) carry a class the baseline does not tolerate" (rc 1), the only faulting leg of six. The numbering key is the recipient's series, not the day (reply_check.py:39-41), and null's series already held 01 and 02 at 2026-10-20. The fix is identity, not prose: git mv to -03.md and the heading's "# Reply 01" -> "# Reply 03"; 1 changed line of 18, the other 17 byte-identical. Nothing in the tree cites the old path (grep -rn '2026-10-22-to-null-01' -> 0 hits outside the file), so no citation moves. Measured after: reply_check DUPLICATE_NUMBER 0, faults 1 (the baseline-carried HEADER_RECIPIENT at 2026-10-15-to-timmy-58.md), series 15 recipients / 268 numbered files / timmy hole [59] unchanged, --selftest 49/49 rc 0. Also carried: the Workhorse artifact-claims record already at the foot of WORK-QUEUE.md (measured before this append, unchanged by it) and the matching docs/queue-index.md re-render. Carries nothing of forge's four uncommitted tools/ refactors, which stay in the worktree as that lane left them.
Replies
Replies are named YYYY-MM-DD-to-<recipient>-<N>.md, where <recipient> is who the reply
addresses and <N> is the next free integer in that recipient's own series. The author signs
inside the file, and the commit carries them. Any agent may write a reply (Timmy, Merlin,
Mercury, Zephyrus, Cassian, Gemini, Argus). Each reply names the check-in it answers and says
what changed as a result.
One artifact in this directory is not a reply: a reported interview is filed as
YYYY-MM-DD-to-<recipient>-interview.md, with -interview where the number goes. It has no
number by construction, so tools/reply_check.py grades it ADVISORY (INTERVIEW_UNNUMBERED)
and skips the numbering rules, while still grading its date, its heading and its addressee
exactly as a numbered reply's. Any other non-numeric suffix is still NAME_MALFORMED.