R82.G — spec/ + world-schema.md drift audit

0. Manifest-path reconciliation

The R82 manifest (.agents/spawns/r82-phase-0-1-stabilization/manifest.md §Group 3 and §Slices Row G) lists the spec targets as docs/spec/s03-task-pipeline.md and docs/spec/s05-decision-trail.md. Neither file exists. docs/spec/ currently contains:

index.md
s01-constitution.md       s02-event-taxonomy.md     s03-state-model.md
s04-reputation.md         s05-experience-tokens.md  s06-consensus.md
s07-fork-protocol.md      s08-gossip.md             s09-arbitration.md
s10-admission.md          s11-rule-engine.md        s12-dsl.md
s13-hardening.md          s14-integrity-monitor.md  s15-gsd-contract.md
s16-skill-taxonomy.md     s17-mcp-surface.md        s18-identity.md
s19-governance.md

The β Task Pipeline is documented in docs/3-world/execution/ and docs/reference/mcp-tools-phase-0.md, not in docs/spec/. The ζ Decision Trail likewise. The actual drift lives in s17-mcp-surface (the Phase 0 tool-surface spec), s12-dsl (one stale sentence), index.md (3 hits across the hub doc), and world-schema.md (both tool-count and Session 7 status).

R82.G therefore targets:

  • docs/spec/s17-mcp-surface.md — the dominant source of 19-tool + phantom language
  • docs/spec/index.md — 3 hits in the spec-index hub
  • docs/spec/s12-dsl.md — 1 stale sentence
  • docs/world-schema.md — 1 “19 tools” hit in Phase Roadmap + S7 ACTIVE in session table

The manifest path is treated as a transcription error in R82 Phase A. This is flagged here and in verification so Sigma Phase B gate-check is not surprised (precedent: R82.F docs/2-plugin/deploy.md → actual docs/guides/deploy.md).

1. Target surface

File Zone Role Size (lines) 19-tool hits Phantom-tool hits Session-7 hits
docs/spec/s17-mcp-surface.md CANON (spec) Phase 0 MCP tool-surface contract — the ADR-004 target 122 4 6 (task_delete, task_link, task_assign, thought_list, unified_init, unified_vitals, unified_set_project, unified_mode)
docs/spec/index.md CANON (spec hub) Law library index + reading paths + phase posture 172 3 0
docs/spec/s12-dsl.md CANON (spec) DSL grammar + WASM target spec 250 1 0
docs/world-schema.md CANON (hub) World Schema v3 organizational spine 450+ 1 0 (already carries 14-tool table L204–L221) 1 (L291 S7 ACTIVE)

2. Live 14-tool surface (ground truth)

Source: src/server.ts bootstrap() L538–L576 in the main checkout; matches wording in R82.F audit + R82.E rewrite of docs/reference/mcp-tools-phase-0.md.

  1. server_ping — α system (L538 registerColibriTool)
  2. server_health — α system (L555 registerHealthTool)
  3. thought_record — ζ trail (L559 registerThoughtTools)
  4. thought_record_list — ζ trail (same)
  5. audit_verify_chain — ζ trail (L563 registerVerifyChainTool)
  6. skill_list — ε (L567 registerSkillTools)
  7. task_create — β (L570 registerTaskTools)
  8. task_get — β (same)
  9. task_update — β (same; accepts status, routes through state-machine.ts)
  10. task_list — β (same)
  11. task_next_actions — β (same)
  12. audit_session_start — η proof (L575 registerMerkleTools)
  13. merkle_finalize — η proof (same)
  14. merkle_root — η proof (same)

Phantoms (never registered): task_delete, task_link, task_assign, thought_list (merged into thought_record_list), unified_init, unified_vitals, unified_set_project, unified_mode, server_info, server_shutdown, task_transition (merged into task_update), audit_session_end, task_depends_on.

The ADR-004 R75 Wave H amendment consolidated the plan from 19 → 14 by:

  • Dropping task_delete, task_link, task_assign (β) — out of Phase 0 scope
  • Merging task_transition into task_update status routing
  • Merging thought_listthought_record_list name
  • Dropping the 4 unified_* system tools — replaced with server_ping + server_health only
  • Dropping audit_session_end — η proof sessions close implicitly on merkle_finalize

3. File 1 — docs/spec/s17-mcp-surface.md drift

3.1 Line-by-line findings

Line Current text (excerpt) Classification Correct replacement (packet-confirmed)
5 status: spec-ready KEEP (no change — document is still a spec with amended target)
6 colibri_code: none FIX (heritage-bearing) colibri_code: partial — s17’s target domain (α + β + γ + ε + ζ + η) ships at Phase 0. Per ADR-006, a spec whose Phase 0 slice has merged qualifies for partial.
12 “This document specifies the MCP tool surface Colibri will expose at the end of Phase 0. Nothing in it is running code. colibri_code: none for every tool named below. The entry point src/server.ts and every controller referenced here are targets (P0.2.1 and onward), not files on disk.” FIX “This document specifies the MCP tool surface Colibri exposes in Phase 0. The surface is shipped: src/server.ts and the domain controllers referenced here are live (P0.2.1 and onward). The original 19-tool plan was amended to 14 shipped tools in ADR-004 R75 Wave H; the amended catalogue is authoritative below and in docs/reference/mcp-tools-phase-0.md.”
16 “Phase 0 ships 19 tools in 4 categories over one transport (MCP stdio).” FIX “Phase 0 ships 14 tools in 5 domains over one transport (MCP stdio) — ADR-004 R75 Wave H amendment.”
18–23 The 4-category table with task_delete, task_link, task_assign, thought_list, unified_init, unified_vitals, unified_set_project, unified_mode REPLACE Full rewrite to the 5-domain 14-tool shipped table (β 5 · ζ 4 · η 3 · ε 1 · α/γ 2).
25–29 Not in Phase 0.” block — agent_spawn, skill_get, no-HTTP, Claude API bridge KEEP (already historically framed as “deferred to Phase 1+”)  
31 Heritage note with AMS donor ~480 tools / target 60–80 KEEP (explicitly heritage-framed, ADR-004 citation)  
45 “Client calls tools/list → the server returns the 19 tool definitions” FIX “Client calls tools/list → the server returns the 14 tool definitions”
96 ζ Decision Trail — owns 4 tools in Category 2 (thought_record, thought_list, audit_session_start, audit_verify_chain).” FIX ζ Decision Trail — owns 4 tools (thought_record, thought_record_list, audit_session_start, audit_verify_chain).”
97 η Proof Store — owns 2 tools in Category 2 (merkle_finalize, merkle_root).” FIX η Proof Store — owns 3 tools (audit_session_start is registered via the η loader, plus merkle_finalize and merkle_root). Sessions close implicitly on merkle_finalize — there is no explicit audit_session_end.” Note: per src/server.ts L571–L575 registerMerkleTools owns audit_session_start, merkle_finalize, merkle_root. The original spec assigned audit_session_start to ζ, but the shipped code assigns it to η. Canonicalize to the code.
104 ”- [ ] src/server.ts exposes exactly the 19 tools listed in §1, no more and no fewer.” FIX ”- [x] src/server.ts exposes the 14 tools listed in §1 (ADR-004 R75 Wave H amendment; shipped Waves A–I).”
106 ”- [ ] tools/list returns the 19 tool definitions with derived JSON Schema.” FIX ”- [x] tools/list returns the 14 tool definitions with derived JSON Schema.”
105, 107–110 Other acceptance checkboxes FIX Flip [ ][x] since shipped; Zod schemas, middleware chain, actions enter/exit, E2E tests, no AMS_* dependencies are all in force.
114–118 Cross-ref block — links to ../concepts/α-system-core.md etc. KEEP structurally but FIX that the paths point to docs/concepts/ which does not exist. Map to actual concept docs under docs/3-world/.  

3.2 Heritage framing preserved

  • §1 heritage note (L31) — explicitly framed as donor comparison; retain verbatim.
  • §4 heritage note (L65) — 11-layer donor middleware comparison; retain.
  • “Not in Phase 0” block (L25–L29) — retain; this is still accurate post-amendment.

3.3 Cross-ref breakage

§9 “Cross-references” L114–L118 points to ../concepts/α-system-core.md, ../concepts/β-task-pipeline.md, ../concepts/ε-skill-registry.md, ../concepts/ζ-decision-trail.md, ../concepts/η-proof-store.md. docs/concepts/ does not exist. These are broken links. Actual concept docs live under docs/3-world/:

  • α → docs/3-world/physics/laws/system-core.md or docs/0-mutate/system-core.md (verify)
  • β → docs/3-world/execution/task-pipeline.md
  • ε → docs/3-world/execution/skills.md
  • ζ → docs/3-world/execution/decision-trail.md
  • η → docs/3-world/physics/laws/proof-store.md

Out-of-scope for R82.G: Full concept-link mapping is R82.J (colibri-system.md nav cleanup). Scope here is to remove the broken ../concepts/ links — do not attempt to re-target them. If removed, the cross-ref becomes: ADR-004 + ADR-005 + mcp-tools-phase-0 catalogue + task-breakdown (already present); no concept links. This keeps R82.G reversible and leaves R82.J’s domain untouched.

4. File 2 — docs/spec/index.md drift

4.1 Line-by-line findings

Line Current text (excerpt) Classification Correct replacement
30 s17-mcp-surface — the Phase 0 contract: 19 tools × 4 categories, Zod schemas” FIX s17-mcp-surface — the Phase 0 contract: 14 tools × 5 domains, Zod schemas (ADR-004 R75 Wave H amendment)”
69 Table row s17: “Phase 0 contract: 19 tools × 4 categories, Zod schemas” FIX “Phase 0 contract: 14 tools × 5 domains, Zod schemas”
135 “No spec has running code today. … Phase 0 (R75–R80) creates the src/ tree and the first 19 MCP tools; none of them invokes the rule engine.” FIX “Phase 0 has running code as of R75 Wave I (2026-04-18) — src/server.ts registers the 14 shipped MCP tools across α β γ ε ζ η; none of them invokes the rule engine (κ is Phase 1).”

4.2 Heritage framing preserved

  • Reading-order paths (Foundation/Legitimacy/Hardening) — unchanged except the §Foundation reference to s17 numeric. Retaining the s17 — the Phase 0 contract line simply updates the count.
  • Coverage table L79–L83 — unchanged.
  • Dependency graph L139–L156 — unchanged.
  • Amendment procedure L120–L131 — unchanged.

5. File 3 — docs/spec/s12-dsl.md drift

5.1 Line-by-line findings

Line Current text (excerpt) Classification Correct replacement
248 Summary: S12 is a pure protocol specification. Colibri’s Phase 0 codebase is a 19-tool MCP server with handwritten handlers. The DSL ships in Phase 1 (R81+).” FIX Summary: S12 is a pure protocol specification. Colibri’s Phase 0 codebase is a 14-tool MCP server with handwritten handlers (ADR-004 R75 Wave H amendment). The DSL ships in Phase 1 (R81+).”

Nothing else in s12-dsl.md touches the tool-count surface; the DSL spec is otherwise self-contained.

6. File 4 — docs/world-schema.md drift

6.1 Line-by-line findings

Line Current text (excerpt) Classification Correct replacement
20 “│ └── tools: 19” with inline comment “ADR-004 R74.5 — closed surface” FIX “│ └── tools: 14” with inline comment “ADR-004 R75 Wave H amendment — 19 planned → 14 shipped”
204–221 14-tool shipped table (β 5 · ζ 4 · η 2 · ε 1 · α/γ 2) KEEP — already correct. Note internal inconsistency: L204 table says “η Proof Store ▪ 2” but s17 refinement moves audit_session_start from ζ to η per shipped code. For world-schema, keep the ζ 4 / η 2 grouping since both reflect how the tools are conceptually owned; the per-file loader assignment is an implementation detail and the schema tree is already accurate on total count (14).  
291 “│ └── Session 7: R74+ (Phase 0 execution), ACTIVE” FIX “│ ├── Session 7: R74 series (Phase 0 execution), SEALED 2026-04-09” new line for Session 8: “│ └── Session 8: R75+ (Phase 0 code + κ kickoff), ACTIVE”
419 “│ ν Integrations (basic) · 19 tools · data/colibri.db” FIX “│ ν Integrations (basic) · 14 tools · data/colibri.db”

6.2 Session-row accuracy (MEMORY reference)

Per MEMORY.md “Colibri state at a glance”:

  • S6 (R53–R73) SEALED 2026-04-09
  • S7 (R74 series) closed 2026-04-09 with community-profile 100%
  • S8 (R75) — Phase 0 SEALED 2026-04-18 at 28/28 (100%) via Waves H + I; continued through R76 bridge seal @ ae0b78ec; now extended post-Phase-0 with R77 pages-finish @ 77e579b8. Session boundary for S9 not yet drawn.

Current world-schema L289–L291 table:

  • “Session 1–5: complete (pre-history)” — KEEP (factual)
  • “Session 6: R53–R73 (src/ deletion → R73 unification), SEALED” — KEEP (factual, matches MEMORY)
  • “Session 7: R74+ (Phase 0 execution), ACTIVE” — WRONG: S7 closed 2026-04-09; S8 carries Phase 0 execution + R81 κ kickoff; S9 not yet drawn.

Correct replacement (2 rows flipped, 1 row added):

  • “Session 7: R74 series (documentation finish, zone hardening), SEALED 2026-04-09”
  • “Session 8: R75+ (Phase 0 code + R81 κ kickoff), ACTIVE”

7. Classification summary

File FIX STRIKE KEEP-HISTORICAL REPLACE
s17-mcp-surface.md 8 prose lines + acceptance checkbox rewrite 6 phantom tools (task_delete, task_link, task_assign, thought_list, unified_* ×4) 3 heritage blocks (L25–L29, L31, L65) 1 surface table (L18–L23) + 1 cross-ref block (L114–L118)
s17-mcp-surface.md frontmatter 1 (colibri_code: nonepartial) 0 0 0
index.md 3 prose lines 0 0 0
s12-dsl.md 1 prose line 0 0 0
world-schema.md 3 prose lines 0 0 1 session-table row (3 rows after edit)

8. Acceptance criteria for R82.G

  1. grep -rn "19 tools\|all 19\|exactly 19\|19 MCP tools" docs/spec/ docs/world-schema.md returns 0 (or explicitly-historical/amendment-framing only; final verification doc enumerates exceptions).
  2. grep -rn "task_transition\|server_shutdown\|server_info\|audit_session_end\|task_delete\|task_depends_on\|task_link\|task_assign\|thought_list\b\|unified_init\|unified_vitals\|unified_set_project\|unified_mode" docs/spec/ docs/world-schema.md returns 0.
  3. world-schema.md session table reflects: S7 SEALED 2026-04-09, S8 ACTIVE (R75+).
  4. grep -F "14 tools" docs/world-schema.md returns ≥ 1 (current world-schema already has 1; will stay ≥ 1 or grow post-edit).
  5. Jekyll frontmatter preserved on every edited file.
  6. s17-mcp-surface.md frontmatter colibri_code: nonepartial (graduation per ADR-006 §Decision; shipped Phase 0 slice = partial).
  7. Broken ../concepts/ cross-refs either removed or flagged out-of-scope for R82.J.

9. Out of scope (noted here for Phase B)

  • Full ../concepts/docs/3-world/ remap across any spec — R82.J’s domain.
  • s01–s16, s18, s19 spec rewrites — no drift found in these per §1 grep.
  • docs/world-schema.md other sections (physics/social/execution subtrees, phase roadmap body, corpus audit) — unchanged; only the 4 line-level drifts listed in §6.1.
  • src/server.ts code comments naming task_transition — R82.K’s domain.
  • The internal nuance of whether audit_session_start is conceptually ζ or η (spec says ζ, code registers via η loader) — reconciled here in s17 §7 by canonicalizing to the shipped code ownership; world-schema.md already uses the ζ grouping and that remains consistent at the count level.

10. Manifest path error — callout for Sigma Phase B

R82 manifest lists:

  • docs/spec/s03-task-pipeline.mddoes not exist
  • docs/spec/s05-decision-trail.mddoes not exist

Actual spec files that match the 19-tool + phantom drift pattern:

  • docs/spec/s17-mcp-surface.md (primary)
  • docs/spec/index.md (hub, 3 hits)
  • docs/spec/s12-dsl.md (1 stale sentence)

Precedent: R82.F hit the same pattern (docs/2-plugin/deploy.mddocs/guides/deploy.md). Sigma Phase B gate-check should treat this as a manifest transcription error, not a drift regression.


Back to top

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

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