# Task26 continuous lifecycle observer v3

## Status

`BLOCKED_NOT_READY_FOR_POST_GATE_DEPLOY`

This fresh append-only root is bound to successor `e2f1699e8586ed3f835eaa2a3eaeaecaf5e52a4ad82aa931caade0ed377077ce`, core `b025a71695b620555f701f1c248545bd343428c430db37b2d8bd16148e0b0b7a`, and wheel `bd5f44592e95b152cc466446fcbb607df586dc13482d0d3413fed80a476d2a70`.

The observer is implemented, tested, and independently exercised arm-only. It must not be launched because the candidate and the supported Telegram revision path cannot produce the required corrected summary from the current unchanged durable answers.

## Source-proven normal Telegram revision

The current committed customer card is generation `24`, message `207`. The supported customer `수정` callback is publication-bound and calls `_rewind_collection(..., target_cursor=status.answer_count - 1)`. With 22 canonical fields, this reopens only index 21:

- exact field: `schedule_constraints`
- exact unchanged value: `없음`

If e2f is deployed despite this blocker, the normal UI sequence is:

1. Customer `8527916639` presses `수정` on message `207` exactly once.
2. Customer replies `없음` to the new committed `schedule_constraints` prompt.
3. Do not attest until the observer reports `READY_CUSTOMER_ATTEST` for a newer matching committed publication.

No UI action was performed while preparing this root.

## Blocking defect

The live `activity_category` authority is clarification prose beginning `활동 수준: 보통...`, not the canonical enum `moderate`. The e2f authoritative renderer maps only canonical enum values and renders every other value as `미입력`. The supported customer revision above can only reopen `schedule_constraints`; it cannot restore `activity_category`. Reopening also removes reconciliation, so a provider reconciliation is required and still cannot guarantee the required candidate-render-bound Korean/no-review surface.

The observer therefore fails closed with `STOP_CUSTOMER_SUMMARY_QUALITY` and never emits an attestation callback for this live state. Its surface gate requires:

- a body digest exactly matching candidate rendering;
- Korean `- 목표: 유지` and `- 활동: 보통`;
- `별도 검토 입력이 없습니다.`;
- no `{`, `items`, `status`, `미입력`, stale pre-clarification text, or false warning text.

## Non-authorized launch paths

These paths are fresh and absent, but this command is **not authorized** under the current candidate:

```bash
/home/cube/projects/richard/hermes-agent/.venv/bin/python \
  '/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-continuous-lifecycle-observer-v3-e2f1699e/observer_v3.py' observe \
  --profile /home/cube/.hermes/profiles/dualcoachtest \
  --ready '/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-continuous-lifecycle-observer-v3-e2f1699e/live-v3-ready.json' \
  --events '/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-continuous-lifecycle-observer-v3-e2f1699e/live-v3-events.jsonl'
```

The observer subscribes recursively before its initial capture, reconciles only authenticated durable authorities, and writes private append-only receipts. It performs no Telegram, provider, network, service, profile, cursor, or Git mutation.
