# M117 Adoption Closeout

CC 2.1.117 → 4 feats + 2 issues closed as invalid-premise

      ┌─────────────────────────┐
      │    M117 PR SHAPE        │
      ├─────────────────────────┤
      │  adoption   4 commits   │
      │  closeout   2 issues    │
      │  LOC        ~580        │
      │  files      ~20         │
      │  version    7.67 → ...  │
      └─────────────────────────┘

### Adoption (4)

#1447 Monitor
#1450 PushNotification
#1448 OTEL enrichments
#1451 release-please cron

### Closeout (2)

#1449 invalid-premise
#1453 invalid-premise
Already shipped per PR #1454 verdict — handlers live in `src/hooks/src/lifecycle/`, `setup/`, `subagent-start/`, `task-created/`, `instructions-loaded/`.

### Process guardrails

verified hooks.json before coding
zero TaskOutput(block=true) residuals
split #1452 fast-check → PR-2

# M117 — CC 2.1.117 Adoption Closeout

Four real features + two close-comment tickets. Split surfaced by deep-audit before coding.

### #1447 — Monitor canonical patterns

Adds `src/skills/chain-patterns/references/monitor-patterns.md` and threads a `Read(...)` link into the four skills that background builds, tests, agents, or agent-browser plans.

Skill | Existing section | Delta
--- | --- | ---
`ork:implement` | Monitor Tool for Background Streaming | +1 ref link, +1 eval case
`ork:cover` | Monitor + Partial Results | +1 ref link, +1 eval case
`ork:verify` | Monitor + Partial Results | +1 ref link, +1 eval case
`ork:expect` | agent-browser streaming block | +1 ref link, +1 eval case

Zero `TaskOutput(block=true)` residuals found in `src/skills/` at audit time — the anti-pattern cited in the issue was already cleaned up. Real delta is doc consolidation + eval cases that assert future regressions.

### #1450 — PushNotification on completion

New canonical rule at `src/skills/chain-patterns/rules/push-notification-on-completion.md`. Wires explicit call sites into four long-running skills so outcomes surface even after context-switch.

Skill | Typical runtime | Trigger
--- | --- | ---
`ork:implement` | 10–30 min | final synthesis after PR opened
`ork:cover` | 15–45 min | Phase 6 report assembled
`ork:audit-full` | 15–60 min | report written + checklist passes
`ork:demo-producer` | 10–45 min | all variant outputs written

audit-full and demo-producer also get `PushNotification` added to their `allowed-tools` frontmatter (previously absent). Fallback behavior: the tool is a silent no-op for users without Remote Control — no capability detection needed.

### #1448 — CC 2.1.117 OTEL enrichments

Consumes three new OpenTelemetry attributes and adds a new `otel` subcommand to `ork:analytics`.

Field | Source | Panel
--- | --- | ---
`command_name` | `user_prompt` | Top slash commands
`command_source` | `user_prompt` | user-typed vs model-delegated split
`effort` | `cost.usage`, `api_request` | Per-effort cost + success-rate correlation

Every query falls back cleanly: `2>/dev/null` on missing file + `select(.field != null)` skips pre-2.1.117 events. If no OTEL files exist, the panels are omitted (not rendered empty). Canonical doc: `src/skills/analytics/references/otel-fields.md`.

### #1451 — Release-please weekly cron floor

Adds `schedule: cron '0 9 * * 1'` (Mondays 09:00 UTC) to the Release workflow. Release-please skips when there's nothing to ship, so the cron never produces empty PRs — it's a floor, not a ceiling. Documented in `CONTRIBUTING.md § Versioning → Release Cadence`.

Existing triggers unchanged: `push.main` still cuts releases on every conventional-commit merge.

### #1449 + #1453 — Closeout (no code)

Both issues were filed on a misread of `cc-version-matrix.ts`: having a matrix entry means the feature is tracked in compatibility, not that there's no hook. PR #1454 already assessed them as invalid-premise but forgot the `Closes` syntax, so they stayed open.

Issue | Premise | Reality
--- | --- | ---
`#1449` | CwdChanged/FileChanged hooks missing | Both registered: `lifecycle/cwd-changed.ts` (207 LOC), `lifecycle/file-changed.ts` (56 LOC)
`#1453` | Setup/SubagentStart/InstructionsLoaded/TaskCreated deferred | All 4 fully shipped: 7 + 6 + 9 + 4 handlers respectively

PR-1 body contains `Closes #1449 #1453` with a comment linking back to #1454's verdict.

### Deferred to PR-2 (`#1452`)

fast-check property tests: ~600 LOC / ~12 files of pure test infra. Nightly-only workflow, no PR-CI impact. Orthogonal to adoption — lands after PR-1 merges.

### Branch & commit map

    feat/m117-cc-2-1-117-adoption
    ├─ 0a89c31  chore(ci,#1451): weekly cron floor
    ├─ 2593827  feat(skills,#1450): PushNotification on completion
    ├─ 179c3cc  feat(skills,#1447): canonical Monitor patterns + eval cases
    └─ d5bb7a1  feat(skills,#1448): CC 2.1.117 OTEL enrichments
              (rebased atop 096fa465b chore: release 7.67.0)