# decisions/ One entry per settled question about this pipeline. An entry names the claim, the evidence, the date, and what it forbids or permits next. No entry is a plan. `NEXT.md` holds the plan, `ROADMAP.md` holds the horizon, and a limitation that is still live belongs in `caveats/`. ## Rules for this directory * One file per topic, one `##` section per question, so the index can link an anchor. * An entry cites a file and line, a commit, or a test. No citation means it is an opinion, and an opinion gets deleted rather than defended. * **Closed** means acting on it is safe. **Open** means investigated and undecided. **Void** means the evidence turned out to be invalid and the claim must not be cited again. * Rewrite an entry when something contradicts it, and say what changed. ## Index | decision | state | | --- | --- | | [A dialogue row's speaker is `speaker_ref`, not `speaker`](audit-phase1.md#speaker-ref-is-canonical) | closed | | [Script verification must not fail on sentence-initial capitals or short quotes](audit-phase1.md#verifier-false-positives) | closed | | [Tracklet links are transitive over similarity, never across a hard constraint](audit-phase1.md#tracklet-hard-constraints) | closed | | [A detected face takes an identity only when it falls inside that character's box](audit-phase1.md#gated-face-pairing) | closed | | [A 409 from the GPU mutex is a queue signal, not a stale lease](audit-phase1.md#no-lease-stealing) | closed | | [Correctness flags resolve by flag id, and never block autonomous TTS](audit-phase1.md#flag-resolution) | closed | | [An out-of-range resolver index is `unresolved`, never a new character](audit-phase1.md#hallucinated-index) | closed | | [The session manager holds no lock across a model load](audit-phase1.md#unlocked-model-load) | closed |