I reviewed all five changed clauses (lines 1674, 1676, 1678, 1692, 1702) against the five review areas.

## Verdict: clean of substantive flaws

**Serialized operation ledger (1676)** — Sound. Single-owner service with commands submitting rather than writing (1676); the second-open refusal, open-record write, and dispatch ordering are atomic ("under one exclusive transaction ... before dispatch"); startup recovery closes orphans "before serving status or admitting an install" so no stale open state is observable; every crash window (before dispatch, after dispatch, after response before terminal commit) terminates in a conservative `outcome unknown`. Per-phone refusal scope is consistent with the one-phone session limit (1676).

**Atomic audit events (1676)** — Sound. Start event is in the same transaction as the open record; the terminal-event-same-transaction rule is stated generally and covers every enumerated closer (acknowledged success/failure, lost/interrupted/timed-out/unauthenticated/malformed, teardown at 1678, startup recovery). Losing concurrent closers write nothing, and late responses cannot reclassify — matching the 1702 race tests (teardown×response, timeout×late response).

**Retention (1676, 1678)** — Sound. Open records never expire; closure enables bounded count/time retention of detailed fields while minimal terminal metadata follows §10; the two independent retention clocks are handled at every combination — detailed-expired/outcome-retained yields "comparison is unavailable" (1678), outcome-expired displays nothing (1676). Expiry provably cannot affect an active operation or trigger a reinstall, consistent with "never runs automatically as a retry" (1678).

**Later observation (1678)** — Sound. Mandatory read before any later same-package install including within a session; observation is displayed beside, never merged into, the terminal record; version/signing match is correctly not treated as artifact-equality proof; verification unavailability must be surfaced; a new deploy gets a new operation ID and no downgrade/retry advice on mismatch. Matches the 1702 test matrix (observed expected state, unchanged state, third external state, byte-identical reinstall, unavailable verification, expired evidence).

**Admission granularity (1692, 1678)** — Sound. Three explicit policies, granularity uniform across first and subsequent installs, no policy assumed, one to be selected and tested (1692), with 1678 requiring the confirmation rule be defined and applied to every deploy.

## Minor observations (non-substantive, for wording only)

1. **1678 vs 1692 — admission enumeration mismatch.** 1678 frames the choice as binary ("whether confirmation applies per session or per install"), while 1692 offers a third option (unattended while Ready mode is active). Read contextually, 1678 governs confirmation granularity only when confirmation is chosen, so it is vacuous rather than contradictory under the unattended policy — but harmonizing the wording would remove a strict-reading conflict.
2. **1676 — refused installs leave no audit trace.** A refused second open install produces neither start nor terminal event. This is consistent with the stated audit scope ("no ... replay can omit a start or terminal transition"), so it is within spec, but denials are untraceable if that ever matters operationally.
3. **1678 — observation display is only specified relative to a retained earlier *unknown* outcome.** Behavior when the prior outcome was acknowledged (or when multiple prior terminals for the same package exist) is unspecified; trivially resolvable, no correctness impact.

No substantive flaws found in the five review areas.
