FME — Definition of Done (LOCKED)
No phase is "done" until its gate passes. Locked 2026-06-05 (ZW-ENGINE-V9). Discipline: one rail, prove it, then the next.
Phase 1A — Two-way messaging + mirror (Telegram ↔ KV ↔ Portal)
DONE only when ALL hold:
- ✓ 50/50 messages mirrored Telegram → KV → Portal (both directions)
- ✓ sync stable
- ✓ zero message loss
- ✓ < 3 seconds round-trip
- ✓ failure-grid handling tested (kill KV/Telegram → still captured raw)
- ✓ Family_Event_Log recording every event
- ✓ 7 days of real family usage
Only THEN does 1B (voice) begin. Same discipline cascades to 1B / 1C / 1D — each ships, proves, then the next starts.
Phase 2 — Organizer + Retrieval
DONE only when ALL hold:
- ✓ the Family Search Test passes (see FME_PHASE_1A_TEST_PLAN.md → Phase 2 section)
- ✓ 100 filed objects (incl. ≥10 PDFs, ≥10 photos, ≥10 links, ≥30 messages)
- ✓ ZERO manual hunting — if Sam can still find something faster by hand than through the system, Phase 2 failed.
Build order (do NOT violate)
1A → 1B(voice) → 1C(media) → 1D(grocery) → 2(classify) → 2(retrieval) → 2.5(timeline) → 3(digest) → 3(assistant) → 4(Mildred, +90d) → 4(clients, +90d).
🔴 The remaining risk is no longer design — it's violating this order.