# Close/Commit Notification Path Matrix

Chunk: `chunk-000198-close-commit-notification-path-enforcement`

## Classification

| Path | Authority source | Mutation owner | Runtime summary path | Operator notification path | Durable evidence | Notification decision |
| --- | --- | --- | --- | --- | --- | --- |
| Runtime Executor run summary with manual close recommendation | Runtime Executor | Runtime Executor creates approval only | `runtime.executor.runSummary` | Telegram run-summary plus close/commit approval question | `.tmp/telegram-dev-bridge/run-summary/**`, `.tmp/operator-notifications/post-run-approvals/**`, approved-action record | Required before canonical manual close approval |
| Runtime Executor deemed/autonomous close recommendation | explicit autonomous delegation | Runtime Executor creates deemed approval only | `runtime.executor.runSummary` | non-actionable chunk-finished and autonomously-approved notes | run-summary records, deemed question/answer, approved-action metadata | Required before dispatcher close_commit |
| Approved-action dispatcher `close_commit` manual | accepted fresh close_commit action | approved-action dispatcher + trusted daemon | inherited from Runtime Executor approval request | approval request and dispatcher result; autonomous completion note is not applicable | dispatcher result, action timeline, close-commit notification-contract record | `notification_not_applicable` recorded because manual path already had actionable approval/evidence |
| Approved-action dispatcher `close_commit` autonomous/deemed | deemed accepted close_commit action | approved-action dispatcher + trusted daemon | inherited from Runtime Executor deemed run summary | non-actionable autonomously-committed note through Runtime Executor telegram enqueue | dispatcher result, action timeline, Telegram outbox/sent receipt where bridge drains, close-commit notification-contract record | `notification_sent` recorded |
| `ai/commands/close-commit-approved.sh` under dispatcher | fresh accepted close_commit question | trusted daemon subactions | parent dispatcher/Runtime Executor | parent dispatcher owns notification/evidence after helper succeeds | close-commit notification-contract record | `covered_by_parent` recorded |
| `ai/commands/close-commit-approved.sh` direct compatibility invocation | accepted question file | trusted daemon subactions | none guaranteed | none guaranteed | close-commit notification-contract record | `notification_not_applicable` recorded with compatibility warning; canonical callers must use Runtime Executor + dispatcher |
| operator-daemon `complete_chunk` | approved daemon request or preapproved close question | trusted operator daemon | parent close path if present | none at subaction level | complete-chunk contract record from helper | subaction is archive-only; notification ownership belongs to parent close path |
| `ai/commands/complete-chunk.sh` compatibility helper | workflow approval record | compatibility archive helper | none guaranteed | none guaranteed | close-commit notification-contract record | `notification_not_applicable` recorded; helper cannot be silent |
| `workflow-approve-action.sh --action complete-chunk --execute` legacy/manual | workflow approval | compatibility approval helper + complete-chunk | none guaranteed | approval prompt only | workflow approval record plus complete-chunk contract record | compatibility fallback, not canonical close_commit |

## Enforcement

- The dispatcher writes a close/commit notification-contract evidence record on successful `close_commit`.
- Autonomous/deemed dispatcher success records `notification_sent` after enqueueing the non-actionable autonomously-committed note.
- Manual dispatcher success records `notification_not_applicable` because the operator-visible approval request and dispatcher result are the required evidence; a separate autonomous completion note is not applicable.
- `close-commit-approved.sh` records `covered_by_parent` when invoked by the dispatcher and `notification_not_applicable` when invoked directly as a compatibility helper.
- `complete-chunk.sh` records `notification_not_applicable` whenever it archives a chunk, so local compatibility completion cannot be silent.
- These evidence records are visibility metadata only. They do not approve, transition, dispatch, close, commit, or mutate authority state.
