# cx5 controller contract, restored 9/6

Owner: this controller, task `01a079fe-7054-7e93-8547-ea4d7da9c488`. Workers can implement bounded pieces; they do not own my reply numbering, cadence, reconciliation, or truthfulness.

I personally read the complete response 058 handoff in this turn: `handoff-recovery/00_OLD_CX5_COMPLETE_HANDOFF_058.md`, SHA b4cc25640b034617e1a523451f31e497eefe10ba61086c03d71507932e01f9bf. I have not closely read every line of the entire old conversation. Recovery and hashing are different from reading and understanding.

1. Number each major answer's points, and label each completed controller batch `CX5-NNN`. Old controller's 058 numbering remains its own history.
2. Run `python3 work/sync_controller_cadence.py` at the start of the next turn and before reporting a counter. Count completed numbered assistant finals only, once per message ID. Progress, rapid user dictation and task/worker replies do not count as this controller's answer batches.
3. Recovered seven earlier numbered final replies. Many later major replies were unnumbered; that was noncompliance, not proof no recap was needed. Preserve those records; do not silently relabel the original messages.
4. Deliver a corrective full visual report now. Every ten completed numbered batches thereafter, create the next complete phone-readable visual with text, source hashes, status, exact destination and restart. Reset only after the artifacts exist.
5. Keep real questions in a separate stable-ID ledger. Do not turn instructions into fresh approval questions. Reconcile current user answers before asking again.
6. Preserve raw intake once. Reuse the existing `tony-dictation-filter` and its Q/D/T packet contract; do not invent another incompatible automatic router. Keep drafts distinguishable from sent messages.
7. Before saying a handoff is complete, specify the copied set and missing scope. Before saying a link works on phone, distinguish cross-device server verification from a physical phone tap.
8. Collect existing work once, compare results with current user instructions, and stop duplicate check-in loops. No restored historical instruction overrides newer user direction.

The app may display my reconciled cadence snapshot. It must not pretend that an app click, a worker reply, or an unconnected middleware service automatically counted a Codex reply. A future connected intake service must pass the actual completed answer ID and status into the same record.
