# KBM-1 — dismissed: a dateless Kelly snapshot would silently skip booking forever (unreachable via any current writer)

status: dismissed · panel run 15 (2026-08-31) · reason: LOW severity,
unreachable today · reopen condition at the foot

---

**The edge, verified.** PR #120's booking guard at
`src/thales/execution/daily.py:930-937` compares the ledger's
`returns_booked_for` marker to the snapshot's date; a snapshot carrying
`prices` but a missing/None `date`, on a ledger where the marker was never
set, evaluates `None == None` → booking is permanently skipped behind a
misleading "already booked" log line.

**Why dismissed.** Both snapshot writers unconditionally stamp `date`
(`daily.py:979`, kill-switch path `:1129`), so arming requires corrupt or
hand-edited state. Consequence direction is fail-degraded (the Kelly pool
quietly stops accruing; sizing falls back to the existing pool), not
fail-dangerous. A queue row for this would be padding. The suggested durable
home is a one-line TECH_DEBT.md entry naming the arming condition and
file:line — proposed here, not written (this run edits no shared doc). Cheap
hardening if the site is ever touched anyway:
`and snapshot.get("date") is not None`.

**Reopen condition.** Any writer path that can emit a dateless snapshot is
added, OR the "already booked" log line is observed on a day the pool should
have accrued.
