The bones the vision says to keep are genuinely there and strong — one loop, deterministic routing, Temporal durability, full traces, and the receipt contract on the three worst say-do offenders is fully shipped, with real pending-alerts. But of the eight Phase-1 deliverables, only one is done; four are half-built (built-but-dark, or built-but-unwired); three don't exist. Phase 2 is essentially unstarted. And today's live testing proved the vision's core diagnosis in real time: the say-do gap is still the disease — the main escalation forward silently broke for two hours behind a green CI, exactly the failure class P1/P7 describe.
| Deliverable | Status | What the code actually shows |
|---|---|---|
| Receipt contract on the 3 worst say-do offenders + stuck-pending alerts | SHIPPED | All three real: PM forwarding (delivery-checked, reminder cadence, enrollment-failure paging), application links (atomic claim → confirm → hourly strand sweep), renewal escalate (typed fatal envelope arms the review gate). The one hole: today a validator bug upstream of the forward tool made the whole lane unreachable — receipts can't save a door that won't open (fix in review). |
| Source-of-income deterministic tripwire + pinned regression | NOT BUILT | Prompt rules and an eval yaml only — no deterministic runtime check anywhere in the guard chain. Today's live test hit this exact gap: a Section 8 question got a deflection with no forward behind it. This is the vision's own Phase-1 top item and it is still words, not a mechanism. |
| Teach-loop review gate for protected categories | CONTRADICTED | The code explicitly documents the opposite decision: "NO REVIEW GATE (owner, 2026-08-13) — a staff reply IS the policy, live immediately." The vision requires a gate; your August 13 ruling removed it. Needs a fresh ruling (below). |
| Policy gate armed repair-only at one property (≥80% precision) | BUILT, DARK | Gate + trajectory judge + offline replay all merged (#5815/#5819). But: measured only on a 30-turn smoke sample, no full-corpus precision number exists, no per-property arm mechanism (one global env var), and it is off everywhere. |
| ElevenLabs native test suites on | BUILT, UNWIRED | The native test-suite wrapper exists (PR #981) but nothing calls it — no workflow, no schedule. What runs in CI is the separate simulate-conversation suite (report-only). |
| Score store (D1) + first trend dashboard | IN FLIGHT | Nothing on main. Per your same-day D1 decision (own store, own UI), a scoring-backend branch exists as uncommitted work in a side worktree. Dashboard explicitly parked until the backend ships. |
| Judge calibration report v1 | NOT BUILT | Only ad-hoc per-task scorecards exist. No standing report comparing any production judge against human gold labels. |
| Skip-never-green fixed in CI | ONE OF TWO | The eval-budget skip correctly reports neutral (PR #4214). The vision's own "Exhibit A" — the flagship behavior sweep showing green through 40 straight non-runs — is still unfixed. |
| Deliverable | Status | Evidence |
|---|---|---|
| Blocking AI-behavior PR gates (floor + paired regression + red-team) | NOT STARTED | No agent-behavior check can block a merge today (D3 still open). |
| Distiller + corpus-runner (👎 → regression case automatically) | NOT STARTED | Grading Playground Phase 0/1 shipped (store, queue, desk); the distiller and auto-drafted cases (ADR-0128 Phases 2–3) don't exist. |
| Native merge queue | CONTRADICTED | ADR-0107 (July 21) tried it, measured it (~2,000+ runner-minutes/day, no batching), and retired it for the custom auto-merge bot. The vision asks to reinstate what an accepted ADR retired. Needs a ruling (below). |
| Durable server-side watchers (zero session-scoped) | PARTIAL | Reminder cadences and crons are durable; PR-watch and proof-loop watchers still run in agent sessions (including this one). |
| Monthly clustering job v1 | NOT STARTED | No clustering/taxonomy job anywhere. |
| Voice literal-name lint | NOT STARTED | No such lint exists. |
| Two unsynced voice agents onto CI sync | NOT STARTED | vendor-outbound and emergency-relay still have no automated sync path — the drift workflow's own header says so. |
| Fragility | Status | Evidence |
|---|---|---|
| F1 — dual module tree | UNCHANGED | 63 colliding relative paths; the two data stores are 5,554 vs 1,955 lines of genuinely divergent code behind one alias. Today's P0 review even had to check whether the validator existed twice. |
| F2 — 6,000-line loop function | WORSE | The file is now 9,045 lines; the main function ~6,035. Guards live in separate files but are invoked ad hoc — no declarative pipeline yet. |
| F3 — shared circuit breaker | FIXED | Eight isolated breakers by caller class, incident-tuned (Aug 15). The one real "fixed" on the fragility list. |
| F4 — saved-before-sent, no reconciliation | IN PROGRESS | Outbound-record construction invariant shipped (ADR-0119); Twilio delivery-status webhook + nightly coverage sweep exist. Documented gaps: Telegram, two vendor-chase lanes. |
| F5 — total loop failure = silence | UNCHANGED | A non-rate-limit loop crash still rethrows into SQS retry with no tenant-facing floor. Only the Anthropic-429 case got a quiet handler (Aug 15). |
| F7 — voice guard asymmetry | IN PROGRESS | One guard (anomaly review gate) ported to live voice routes (#5026/#5132). The rest of the chain — including hallucination — still SMS/email-only. |
Policy store with state tier (incl. the D4 California shells you decided today): nothing in the repo yet. Knowledge freshness horizons/staleness monitor: nothing. Org-isolation: two real drift-test ratchets exist (born from the Aug 13 leak audit) but no comprehensive invariant. Pricing-data firewall: nothing to firewall yet — no pooled pricing feature exists, and market data is deliberately public-source only.
The vision (P6, Phase 1) requires protected-category answers to pass a jurisdiction-aware review before becoming policy. Your August 13 ruling — written into the code — says the opposite: a staff reply IS the policy, live immediately, no gate. Both can't stand.
The vision's Phase 2 lists "native merge queue"; ADR-0107 (accepted, July 21) retired exactly that with measured cost data and replaced it with the custom auto-merge bot.
Four live findings, each mapping to a vision item: (1) the escalation-forward validator bug — a required array parameter could never validate, silently killing every text-lane forward since this afternoon's deploy (P1/P7 in the flesh; fix in review). (2) renewals never joined the tracked engine — your single-core-engine ruling is now recorded and the wiring PR is in review. (3) a Section 8 question deflected with no forward — the missing Phase-1 SOI tripwire, live. (4) a fabricated rental special ("1 month free") with no source on file — the knowledge plane's invented-vs-stale distinction, live, on the invented side.