R91A — Ratify μ Scope — Audit (Step 1 of 5)

Scope. Inventory the μ Phase 4 surface in docs/guides/implementation/task-breakdown.md at main HEAD 332feb62. R91A ratifies the 2 → 10 expansion that the R91 staging packet (PR #249, separate branch) ships at prompt-file granularity. No src/ mutation. Only task-breakdown.md + the four chain docs land in R91A.

1. Base and scope

Field Value
Base branch main
Base SHA 332feb62 (post-#248 R90 hygiene seal)
Feature branch feature/r91a-ratify-mu-scope
Worktree .worktrees/claude/r91a-ratify-mu-scope
Round R91A (predecessor to R91; isolated scope = task-breakdown.md μ reconcile)
Effort S (1–2h, docs only)

2. Source documents read

# File Reason
1 docs/guides/implementation/task-breakdown.md (full, but mostly §Phase 4 + §Task Summary + §Mermaid graph) The OUTPUT being ratified
2 .worktrees/claude/r91-mu-phase-4-staging/docs/packets/r91-mu-phase-4-staging-packet.md The 10-slice canonical source-of-truth (R91 packet §3 + §4)
3 .worktrees/claude/r91-mu-phase-4-staging/docs/audits/r91-mu-phase-4-staging-audit.md R91 audit §6 (Q1–Q7) resolves spec-divergences; cite resolutions verbatim
4 docs/3-world/physics/enforcement/integrity.md (canonical concept doc, 2026-04-16) Authoritative spec per CLAUDE.md §9.4 when newer-than-s14; used for acceptance criteria wording
5 docs/spec/s14-integrity-monitor.md Authoritative spec (older); cite Q1–Q7 wins via integrity.md
6 Live task-breakdown.md §P1, §P2, §P3 (P1.1.1 @ L466, P1.2.1 @ L509, P1.2.4 @ L556) Template format reference for entry shape

3. Current state at L971–996 (the 2-entry block being replaced)

## Phase 4: μ Integrity Monitor

#### P4.1.1 — Coercion Trap Detection
- **Depends on:** P1.3.1, P2.1.2
- **Input:** docs/concepts/μ-integrity-monitor.md
- **Output:** `src/domains/integrity/coercion-detection.ts`, `tests/domains/integrity/coercion-detection.test.ts`
- **Acceptance criteria:**
  - [ ] Enumerate all legal actions for a participant given current state
  - [ ] For each action, compute outcome via rule engine
  - [ ] Flag if: all outcomes negative, or action space is empty
  - [ ] Severity levels: INFO, WARNING, CRITICAL
  - [ ] Advisory output: `{check, result, severity, details, evidence, reasoning_trace}`
  - [ ] No veto power: detection is advisory only, cannot block actions
- **Effort:** L

#### P4.2.1 — Three Advisory Roles
- **Depends on:** P4.1.1
- **Input:** μ-integrity-monitor.md (advisory roles section)
- **Output:** `src/domains/integrity/advisory-roles.ts`, `tests/domains/integrity/advisory-roles.test.ts`
- **Acceptance criteria:**
  - [ ] Translator: sanitize natural language → structured commands
  - [ ] Sentinel: scan events for injection, coercion, axiom drift
  - [ ] Guide: explain reputation scores, available actions, consequences
  - [ ] All three are strictly read-only
  - [ ] Standard output format across all roles
- **Effort:** L

3.1 Issues with the current block (driving the replacement)

Drift Effect on R91A
Old P4.1.1 acceptance criterion “Severity levels: INFO, WARNING, CRITICAL” diverges from integrity.md L138 (LOW \| MED \| HIGH) and from λ severity bands. Replace via R91 audit Q6 resolution: adopt LOW \| MED \| HIGH.
Old P4.1.1 acceptance criterion details + evidence + reasoning_trace envelope diverges from integrity.md L130–143 envelope (role + check + result + severity + evidence + recommendation + decision_hash + timestamp_logical). Replace via R91 audit Q1 resolution: adopt integrity.md schema (canonical, 2026-04-16).
Old P4.2.1 acceptance criterion “Translator: sanitize natural language → structured commands” diverges from integrity.md L123 (“Summarize advisory reports for a human operator”). Replace via R91 audit Q3 resolution: adopt integrity.md’s role descriptions.
Old Input field cites docs/concepts/μ-integrity-monitor.md — that legacy path is non-existent in the current tree. Actual path is docs/3-world/physics/enforcement/integrity.md + docs/spec/s14-integrity-monitor.md. Replace via R91 audit Q2 resolution.
Phase 4 only carries 2 sub-tasks; the R91 packet (§3 of r91-mu-phase-4-staging-packet.md) carries 10. Roadmap precedent: κ 10 → 20 (R76), θ 7 → 13 (R89.C). R91A ratifies the 10-slice expansion.

4. Every P4 reference in task-breakdown.md at 332feb62

Verified via grep -n "P4\." docs/guides/implementation/task-breakdown.md:

Line Context R91A action
L973 #### P4.1.1 — Coercion Trap Detection (block L973–984) REPLACE — new P4.1.1 is “Advisory Record Schema + Envelope” per R91 packet §3
L986 #### P4.2.1 — Three Advisory Roles (block L986–996) REPLACE — new P4.2.1 is “Circular Logic Detector (DFS)”; the old “Three Advisory Roles” moves to P4.3.1 per R91 packet §3
L987 - **Depends on:** P4.1.1 (inside P4.2.1’s block) Subsumed by the L971–996 block replacement above.
L1068 - **Depends on:** P6.1.1, P4.1.1 (inside P6.3.1 Axiom Enforcement) UPDATE — semantic target shifts. Old P4.1.1 (“Coercion Trap Detection”) was the integrator. New P4.1.1 (“Advisory Record Schema + Envelope”) is a data-only slice and is the wrong dep target. New canonical integrator is P4.4.1 (Escalation FSM) which collects detector outputs into the 4-result + 3-invariant-mapping output that axiom enforcement consumes. Change P4.1.1P4.4.1.
L1138 \| P4 μ Integrity \| 2 tasks \| 2 weeks \| P1, P2, P3 \| (Task Summary table) UPDATE — 2 tasks10 tasks; 2 weeks3-4 weeks (matches κ’s 20-task 3-4 weeks cell; μ slices are a mix of S/M/L per R91 packet §3 effort labels).
L1142 \| **Total** \| **63 tasks** \| **25-32 weeks** \| \| UPDATE — 63 tasks71 tasks (+8 net new μ); 25-32 weeks26-34 weeks (+1-2 spread).
L1180 P1.3.1 --> P4.1.1[P4.1.1 Coercion] (mermaid) REPLACE — the 3-edge μ block at L1180–L1182 → 10-slice DAG matching R91 packet §4 wave structure (Wave 1 solo → Wave 2 3-way fan-out → Wave 3 3-way → Wave 4 3-way).
L1181 P2.1.2 --> P4.1.1 Subsumed by L1180 mermaid replacement.
L1182 P4.1.1 --> P4.2.1[P4.2.1 Advisory Roles] Subsumed by L1180 mermaid replacement.
L1195 P4.1.1 --> P6.3.1 UPDATE — replace with P4.4.1 --> P6.3.1 to match the L1068 dep-target shift. (Same rationale: P4.1.1 is now data-only; P4.4.1 is the integrator.)

No other P4 references exist outside Phase 4 §971–996, P6.3.1 (L1068), the Task Summary block (L1138/L1142), and the mermaid graph (L1180–L1195). The audit covers every site that must mutate.

5. The 10-slice canonical roadmap (source: R91 packet §3)

ID Title Effort Wave Depends on (per R91 packet §3) Output
P4.1.1 Advisory Record Schema + Envelope S 1 κ P1.5.4 (canonical), κ P1.5.1 (hash) src/domains/integrity/schema.ts + tests
P4.2.1 Circular Logic Detector (DFS) M 2 P4.1.1, ζ P0.7.1, κ P1.2.4 src/domains/integrity/detectors/circular.ts + tests
P4.2.2 Coercion Trap Detector (option-set) M 2 P4.1.1, κ P1.4.1, κ P1.3.1, λ P2.1.2 src/domains/integrity/detectors/coercion.ts + tests
P4.2.3 Axiom Drift Tracker (sliding window) L 2 P4.1.1, λ P2.2.2, κ P1.1.1 src/domains/integrity/detectors/drift.ts + tests
P4.3.1 Three Advisory Roles (Translator/Sentinel/Guide) M 3 P4.1.1 src/domains/integrity/roles.ts + tests
P4.4.1 Escalation FSM (4-result + 3 invariant mappings) M 3 P4.1.1, P4.2.1, P4.2.2, P4.2.3, κ P1.4.1, κ P1.2.4 src/domains/integrity/escalation.ts + tests
P4.5.1 Advisory Persistence (mcp_advisories migration) S 3 P4.1.1, P0.2.2 src/db/migrations/*-advisories.sql + src/domains/integrity/repository.ts + tests
P4.6.1 μ MCP Tool Surface (≥4 tools) M 4 P4.3.1, P4.4.1, P4.5.1 src/tools/integrity.ts + tests
P4.7.1 Test Corpus + Parity Harness L 4 P4.2.1, P4.2.2, P4.2.3, P4.4.1, P4.5.1 src/__tests__/integrity/parity.test.ts
P4.8.1 Fork Hook Subscriber (post-fork invariant sweep) S 4 P4.2.3, θ P3.9.1 src/domains/integrity/fork-hook-subscriber.ts + tests

5.1 Acceptance criteria sources (per slice)

The R91 audit §6 (Q1–Q7) resolves canonical wording: integrity.md (2026-04-16) wins over s14 wherever they differ. Specific reuse for the two retained slices:

Slice Acceptance criteria source
P4.1.1 (Advisory Record Schema + Envelope) integrity.md §Advisory record schema (L129–146) — 8-field envelope; decision_hash = SHA-256(role \|\| check \|\| canonical(input) \|\| result) per Q1, Q7; severity LOW \| MED \| HIGH per Q6; timestamp_logical: uint64 (Lamport) per Q1
P4.2.1 (Circular Logic Detector) integrity.md §1 Circular logic (L22–55) — DFS cycle detection; severity=HIGH on cycle hit; <1% measured FP rate on existing spec-phase corpus
P4.2.2 (Coercion Trap Detector) integrity.md §2 Coercion trap (L57–85) — option-set enumeration; negative == available OR obligates == available → emit severity=HIGH. Note: REUSES the old P4.1.1’s “enumerate all legal actions” + “compute outcome via rule engine” + “flag if all outcomes negative or empty” criteria, with severity bands corrected to LOW/MED/HIGH per Q6.
P4.2.3 (Axiom Drift Tracker) integrity.md §3 Axiom drift (L87–115) — sliding-window over 6-month periods; cumulative delta_bps per domain; 8% WARN (800 bps) / 10% HARD BLOCK (1000 bps); AX-01..AX-07 regression check pre-ENACTED
P4.3.1 (Three Advisory Roles) integrity.md §Three advisory roles (L117–127) — Translator/Sentinel/Guide all read-only. REUSES the old P4.2.1’s role-list scaffolding from L990–995, with Translator/Sentinel/Guide descriptions corrected per Q3 (integrity.md L123–125 wording).
P4.4.1 (Escalation FSM) integrity.md §Escalation mapping (L148–157) — 4 results (PASS/WARN/BLOCK/HARD BLOCK); 3 enforcement-surface mappings (κ rule loader for circular-logic-in-rule-update, κ admission for coercion-in-admission, π intake for axiom-drift). Per Q5: π hooks RECORD the event into ζ at thought_type=advisory (π integration out of scope for Phase 4).
P4.5.1 (Advisory Persistence) integrity.md §Phase 0 posture (L165–170) names the mcp_advisories table stub; Phase 4 activates it. SQLite migration; decision_hash is unique-key for dedup.
P4.6.1 (μ MCP Tool Surface) integrity.md §Phase 4 scope L174–178 names “Three detection jobs… writing to integrity_advisories table” + new colibri-integrity-monitor skill. Slice ships ≥4 MCP tools (one per detector + one for query); MCP surface 23 → 27+.
P4.7.1 (Test Corpus + Parity Harness) Precedent: κ P1.5.5 (src/domains/rules/__tests__/parity-harness.test.ts, R87 #214) and θ P3.8.1 (4-scenario multi-arbiter harness, R89 Phase B #246).
P4.8.1 (Fork Hook Subscriber) integrity.md §Phase 4 scope L177 hints at fork-hook awareness; θ P3.9.1 (ForkHookRegistry, R89 Phase B #245) provides the subscription surface.

5.2 R91 audit §6 spec-divergence resolutions (Q1–Q7)

Reproduced verbatim for traceability. All resolutions follow CLAUDE.md §9.4 (newer doc wins):

Q Issue Resolution
Q1 s14 vs integrity.md envelope shape diverges. Adopt integrity.md’s schema (newer, 2026-04-16).
Q2 task-breakdown.md §P4.1.1 cites legacy docs/concepts/μ-integrity-monitor.md. Cite the live path docs/3-world/physics/enforcement/integrity.md + docs/spec/s14-integrity-monitor.md.
Q3 task-breakdown.md §P4.2.1 Translator role wording diverges. Use integrity.md’s role descriptions (L123–125).
Q4 task-breakdown.md lists 2 sub-tasks; roadmap implies 15 files. Stage 10 slices (R91 packet §3).
Q5 μ → π BLOCK target: π Phase 6 not yet shipped. Document: BLOCK events RECORD into ζ at thought_type=advisory; π integration is out of scope for Phase 4.
Q6 Severity bands diverge. Adopt LOW \| MED \| HIGH (matches λ; minimizes drift).
Q7 decision_hash formula diverges. Use integrity.md’s SHA-256(role \|\| check \|\| canonical(input) \|\| result).

6. Adjacent updates inside task-breakdown.md (all in R91A scope)

# Site Current New
1 Task Summary row L1138 \| P4 μ Integrity \| 2 tasks \| 2 weeks \| P1, P2, P3 \| \| P4 μ Integrity \| 10 tasks \| 3-4 weeks \| P1, P2, P3 \|
2 Total row L1142 \| **Total** \| **63 tasks** \| **25-32 weeks** \| \| \| **Total** \| **71 tasks** \| **26-34 weeks** \| \|
3 P6.3.1 dep L1068 - **Depends on:** P6.1.1, P4.1.1 - **Depends on:** P6.1.1, P4.4.1
4 Mermaid μ block L1180–L1182 3 edges (P1.3.1 --> P4.1.1, P2.1.2 --> P4.1.1, P4.1.1 --> P4.2.1) 10-slice DAG matching R91 packet §4 wave structure
5 Mermaid downstream L1195 P4.1.1 --> P6.3.1 P4.4.1 --> P6.3.1

7. Forbiddens for R91A (re-asserted from dispatch packet)

  1. No src/ mutation — R91A is meta-only.
  2. Only task-breakdown.md + 4 chain docs (audit, contract, packet, verification) ship in R91A.
  3. No mutation of the R91 worktree at .worktrees/claude/r91-mu-phase-4-staging (separate branch; R91 staging file ships in PR #249).
  4. No κ/λ/θ/ι/π/ξ frontmatter touched.
  5. No μ frontmatter graduation (μ stays colibri_code: none until Phase 4 close PR).
  6. No new ADRs; ADR-002/003/005/006 statuses unchanged.
  7. No mutation of roadmap.md, integrity.md, or s14-integrity-monitor.md — they are the INPUT, not the OUTPUT.
  8. --no-verify / --amend / --force-push forbidden.

8. Test budget

npm run build && npm run lint && npm test must pass against main baseline. Docs-only round; expected: 3102/3102 unchanged (per CLAUDE.md §5, anchored at 3ba5b5ac R89 Phase B seal across 69 suites). Any regression means the worktree drifted relative to 332feb62.

9. Conclusion

The current 2-entry μ Phase 4 block in task-breakdown.md is undersized relative to the canonical surface in integrity.md (3 detectors, 3 roles, 1 envelope, 1 escalation FSM, 1 persistence schema, 1 MCP tool surface, 1 parity harness, 1 fork-hook subscriber = 10 distinct concerns). The R91 staging packet (PR #249) provides the canonical 10-slice mapping at prompt-file granularity. R91A ratifies that mapping in the roadmap.

Five sites in task-breakdown.md must mutate: §Phase 4 block (L971–996, full replacement), §Task Summary row (L1138), §Total row (L1142), §P6.3.1 dep (L1068), and the §Mermaid graph (L1180–1182 + L1195). No site outside those five is affected. Step 2 (contract) will lock the behavioral invariants.


Audit closed 2026-05-13. Base SHA at audit: 332feb62 (post-#248 R90 hygiene). Next: Step 2 contract.


Back to top

Colibri — documentation-first MCP runtime. Apache 2.0 + Commons Clause.

This site uses Just the Docs, a documentation theme for Jekyll.