## Summary
The stage-10 revision is a bounded, implementable four-week single-customer plan that preserves the source-spec scope and resolves the five stage-9 concerns about activation gating, canonical event ownership, the day-28 boundary, input-level safety classification, and deterministic branch fixtures. One safety-acceptance gap remains: trainer eating-risk input is declared in scope but lacks the required end-to-end escalation fixture; fix that before pilot approval.

## Claims
- The assignment binding is confirmed by `index.jsonl`: the reviewed immutable file is `stage-10-revision.md` at SHA-256 `0252b05cf79deb09e906372d248af0394237765c9a2e543f6c95b41a9500614e`.
- The source spec requires one external KRW 150,000 paid customer, an up-front 12-week plan, only a four-week daily/weekly operating loop, Telegram plus a Richard-only internal web surface, zero AI auto-send, and a four-way KPI judgement.
- Stage-9 Critic required an explicit activation guard, canonical schema/payload ownership, removal of extension behavior, customer-and-trainer input safety E2E evidence, and deterministic branch fixtures. The revision directly adds G1-G5, the canonical schema owner and typed payloads, a hard KST day-28 stop, a finalize-time rule table, and named fixtures.

## Analysis
### Spec compliance
The plan retains all material source obligations and stated deferrals: one customer, isolated records and addresses, inactive registration before activation, token rotation/test-account mis-send evidence, 60–90 second adaptive weekday check-ins, a 30-second trainer record, human review/edit/approval before sends, weekly summary, single-source KPIs, manual outage recovery, and personal/Hermes regressions. It does not introduce prohibited multi-customer, framework, deployment, auth, browser, or post-day-28 automation work.

The stage-9 implementation blockers are otherwise closed in a bounded way. `customer_admin.activate_customer` has observable G1-G5 refusal cases; the canonical JSON schema is now an owner-map target with discriminated typed event payloads and deterministic deduplication; and scheduling is explicitly limited to eligible KST weekdays through day 28, with renewal only as a KPI datum. The deterministic normal/anomaly/change fixtures provide the previously absent testable behavior for AC3, AC4, and AC10.

### Architecture and safety
The selected seams remain proportionate: the existing event stream and append/dedupe path stay canonical, reporting remains a projection, and the console is a loopback-only private operator surface sharing the approval/send path. The safety predicate is correctly preserved as consent absent/not granted OR any signal present yields no normal draft; the plan specifies raw-input classification at wizard finalization, owner notification, referral guidance, and zero sends.

However, the safety table makes S4 eating-risk applicable to the trainer note field, while the plan's named end-to-end trainer fixtures contain S2-T, S3-T, S5-T, and S6-T only. AC21 repeats that omission. This fails the stage-9 requirement for customer-and-trainer safety evidence and leaves no testable proof that a trainer's eating-risk disclosure traverses raw input through stored reason, hold, notification, referral, and zero-send behavior. The same list also omits S1-T despite declaring urgent symptoms applicable to both flows.

### Antithesis and constructive synthesis
Requiring a broader medical classifier, generic authorization system, or more deployment work would violate the bounded MVP. Conversely, relying only on unit classification tests is insufficient for this specific safety path because message routing, event persistence, grounding hold, owner notification, referral guidance, and send suppression are integration boundaries. The narrow correction is to add two table-driven trainer E2E fixtures, not redesign the safety architecture.

## Root Cause
The E2E fixture enumeration drifted from the rule table: S4 explicitly includes the trainer note field (and S1 applies to both flows), but AC21 and the sequencing/focused-verification E2E list omitted those trainer cases.

## Findings
- **HIGH — Missing trainer eating-risk escalation acceptance.** `stage-10-revision.md` Safety Classification Rule Table / AC21. S4 applies to the trainer note field, but no `SF-S4-T` fixture verifies the safety-critical end-to-end path. `SF-S1-T` is likewise absent despite S1 being declared applicable to both flows. This is a missing testable safety acceptance, not a request for broader redesign. Add both fixtures and require raw trainer input → stored class signal and reason → normal-draft hold → Richard notice with reason → referral guidance → zero customer sends. Reported as P1.

## Recommendations
1. Add `SF-S4-T` and `SF-S1-T` to the E2E fixture table, AC21, sequencing step 4, and focused verification; each must assert all six observable safety outcomes.
2. Retain the hard day-28 stop, G1-G5 activation guard, canonical event schema extension, and exact branch fixtures unchanged; they satisfactorily address the remaining stage-9 concerns without scope expansion.
3. Keep real-customer activation disabled until AC21 includes and passes the complete declared trainer safety matrix.

## Architectural Status
BLOCK

## Code Review Recommendation
REQUEST CHANGES

## Tradeoffs
- **Selected correction:** two table-driven trainer E2E fixtures. It closes the exact safety-proof gap while retaining the bounded rule-table design.
- **Rejected:** a generic safety-platform/auth/deployment redesign. It is outside the source-spec pilot and unnecessary to prove this explicit trainer-input escalation path.
