# M139 Bundle A — close the M137 loop

Pays off scaffolding from M137 (#1773). 6 items hooks +3 async +1

## 1. continueOnBlock fires for real

$ Write src/services/auth-renamed.ts $ Edit src/other/foo.ts <old import "./services/auth"> ⛔ posttool/write/stale-import-detector Stale imports detected for auth.ts (3 references). At least one importer is in the same directory subtree. - src/services/consumer.ts:5 - src/other/foo.ts:10 - tests/bar.ts:1 Suggestion: update import paths to auth-renamed. continueOnBlock: true → reason fed back, turn continues Claude: updating the three importers and retrying… ✓ all imports resolve, turn proceeds
Conditions: ≥3 refs + same-subtree importer + no @ts-ignore-stale-import marker.

## 2. plugins/ drift gate

$ Edit src/skills/agents-view/SKILL.md ⛔ posttool/check-plugins-drift src/ edit detected but plugins/ has not been rebuilt this session. Run: npm run build continueOnBlock: true Claude: running npm run build… ✓ plugins/ regenerated, snapshot updated
SessionStart snapshots hooks.json + manifest hashes; git-log fallback detects in-session rebuilds.

## 3. agent-view titles

$ claude agents state title turns tokens ─────── ───────────────────────────────────── ───── ────── running [ork:audit-full] scanning src/hooks/ 14 42.1k running [ork:brainstorm] deeper CC integ 3 12.4k blocked [ork:design-ship] awaiting review 6 18.7k done [ork:cover] generated 8 vitest cases 9 27.5k
Was UUIDs only. SubagentStart hook derives `[ork:<name>] <verb> <object>`; dual-channel emits sessionTitle + additionalContext.

## 4. integration test harness

$ bash tests/integration/hooks/test-continue-on-block-pattern.sh [silent hook] PASS [blocking hook] PASS (continue=false, reason matches) [advisory hook] PASS (continue=true, context matches) ================================= passed: 3 failed: 0 =================================
node fixture driver + bash harness. Unblocks future hook-control-flow flag PRs.

## 5. PR template — Consumer line

Question on every PR | Outcome
--- | ---
Every new field/flag has a documented consumer? | ✓ checked
Else: `emit-only` label + follow-up issue | required

Cultural fix from the meta-analysis: emitting ≠ integrating (M137's #4 cause of shallowness).

## 6. RP feature flag policy

--- name: agents-view experimental: reason: "depends on CC 2.1.139 agent-view (RP)" ga-by: "CC 2.1.145 expected" exit-criteria: - "CC removes Research Preview label" - "≥1 OK skill consumes agent-id non-trivially" ---
Test 11 in test-skill-md.sh: warns on RP mentions without experimental:, fails on missing exit-criteria.