R82.G — Execution Packet

This packet specifies exact Edit operations per file. No substantive changes beyond what the audit and contract authorized.

Edit 1 — docs/spec/s17-mcp-surface.md frontmatter

1.1 colibri_code graduation

OLD:

colibri_code: none

NEW:

colibri_code: partial

Rationale: s17’s target domain (α + β + γ + ε + ζ + η) ships code at Phase 0 (28/28 non-deferred tasks merged Waves A–I). Per ADR-006 §Decision, a spec whose Phase 0 slice has merged qualifies as partial. complete is reserved for when a spec’s full phased spec ships.

Edit 2 — docs/spec/s17-mcp-surface.md opening banner (L12)

OLD:

Phase 0 target. 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.

NEW:

Phase 0 shipped. This document specifies the MCP tool surface Colibri exposes in Phase 0. The surface is live: src/server.ts and the domain controllers referenced here are shipped (P0.2.1 onward, across R75 Waves A–I). The original 19-tool plan was amended to 14 shipped tools in ADR-004 (R75 Wave H amendment); the amended catalogue is authoritative in §1 below and in docs/reference/mcp-tools-phase-0.md.

Edit 3 — docs/spec/s17-mcp-surface.md §1 opening (L16)

OLD:

Phase 0 ships 19 tools in 4 categories over one transport (MCP stdio). The full per-tool specification — Zod schemas, request/response shapes, examples — lives in docs/reference/mcp-tools-phase-0.md. S17 is the contract for how the surface behaves; the tools reference is the catalogue.

NEW:

Phase 0 ships 14 tools across 5 domains over one transport (MCP stdio) — ADR-004 R75 Wave H amendment (19 planned → 14 shipped). The full per-tool specification — Zod schemas, request/response shapes, examples — lives in docs/reference/mcp-tools-phase-0.md. S17 is the contract for how the surface behaves; the tools reference is the catalogue.

Edit 4 — docs/spec/s17-mcp-surface.md §1 surface table (L18–L23)

OLD:

| Category | Count | Tools |
|----------|------:|-------|
| **1. Task Management** (β Task Pipeline) | 8 | `task_create`, `task_update`, `task_get`, `task_list`, `task_next_actions`, `task_delete`, `task_link`, `task_assign` |
| **2. Thought & Audit** (ζ Decision Trail + η Proof Store) | 6 | `thought_record`, `thought_list`, `audit_session_start`, `audit_verify_chain`, `merkle_finalize`, `merkle_root` |
| **3. Skill** (ε Skill Registry) | 1 | `skill_list` |
| **4. System & Control** (α System Core + γ Server Lifecycle) | 4 | `unified_init`, `unified_vitals`, `unified_set_project`, `unified_mode` |

NEW:

| Domain | Count | Tools |
|--------|------:|-------|
| **β Task Pipeline** | 5 | `task_create`, `task_get`, `task_update` (accepts `status`; routes via `state-machine.ts`), `task_list`, `task_next_actions` |
| **ζ Decision Trail** | 4 | `thought_record`, `thought_record_list`, `audit_verify_chain`, (see η note for `audit_session_start`) |
| **η Proof Store** | 3 | `audit_session_start`, `merkle_finalize`, `merkle_root` |
| **ε Skill Registry** | 1 | `skill_list` |
| **α System Core + γ Lifecycle** | 2 | `server_ping`, `server_health` |

(Table totals to 15 because audit_session_start is counted once under η but referenced from ζ for narrative completeness. Shipped tool count is 14; audit_session_start is registered via registerMerkleTools in src/server.ts L571–L575, so the η row owns it.)

Refinement to avoid the double-count: make the parenthetical explicit:

NEW (v2):

| Domain | Count | Tools |
|--------|------:|-------|
| **β Task Pipeline** | 5 | `task_create`, `task_get`, `task_update` (accepts `status`; routes via `state-machine.ts`), `task_list`, `task_next_actions` |
| **ζ Decision Trail** | 3 | `thought_record`, `thought_record_list`, `audit_verify_chain` |
| **η Proof Store** | 3 | `audit_session_start`, `merkle_finalize`, `merkle_root` |
| **ε Skill Registry** | 1 | `skill_list` |
| **α System Core + γ Lifecycle** | 2 | `server_ping`, `server_health` |

**Total: 14.** `audit_session_start` is registered by the η loader (`registerMerkleTools`, `src/server.ts` L571–L575) but participates in the ζ Decision Trail chain — every `thought_record` must cite a live session started by `audit_session_start` per §ordering rule in the writeback protocol.

Edit 5 — docs/spec/s17-mcp-surface.md §3 tool lifecycle (L45)

OLD:

  1. Client calls tools/list → the server returns the 19 tool definitions with name, description, and Zod-derived JSON schema.

NEW:

  1. Client calls tools/list → the server returns the 14 tool definitions with name, description, and Zod-derived JSON schema.

Edit 6 — docs/spec/s17-mcp-surface.md §7 Relationship block (L96, L97)

OLD:

  • ζ Decision Trail — owns 4 tools in Category 2 (thought_record, thought_list, audit_session_start, audit_verify_chain).
  • η Proof Store — owns 2 tools in Category 2 (merkle_finalize, merkle_root).

NEW:

  • ζ Decision Trail — owns 3 shipped tools (thought_record, thought_record_list, audit_verify_chain). The ζ chain is anchored by an audit session started via the η tool audit_session_start.
  • η Proof Store — owns 3 shipped tools (audit_session_start, merkle_finalize, merkle_root). Sessions close implicitly on merkle_finalize; there is no explicit audit_session_end in Phase 0.

Edit 7 — docs/spec/s17-mcp-surface.md §8 acceptance criteria (L102–L110)

Flip every [ ][x] and update counts. Full replacement:

OLD:

For S17 to be considered met at the end of Phase 0:

- [ ] `src/server.ts` exposes exactly the 19 tools listed in §1, no more and no fewer.
- [ ] Every tool has a Zod schema in its owning domain.
- [ ] `tools/list` returns the 19 tool definitions with derived JSON Schema.
- [ ] Every tool call passes through all five middleware stages in order.
- [ ] Every tool call produces one `actions` enter row and one `actions` exit row linked by `sequence_no`.
- [ ] `npm test` includes at least one end-to-end test per category (4 E2E tests minimum) plus the Zod-reject tests from α.
- [ ] No tool depends on any `AMS_*` environment variable or any `src/*.js` file.

NEW:

S17 acceptance per ADR-004 R75 Wave H amendment (shipped Waves A–I):

- [x] `src/server.ts` exposes the 14 tools listed in §1.
- [x] Every tool has a Zod schema in its owning domain.
- [x] `tools/list` returns the 14 tool definitions with derived JSON Schema.
- [x] Every tool call passes through all five middleware stages in order (P0.2.4 inlined wrapper).
- [x] Every tool call produces one `actions` enter row and one `actions` exit row linked by `sequence_no`.
- [x] `npm test` includes end-to-end coverage across β, ζ, η, ε, and system domains plus Zod-reject tests (1085/1085 passing at main `77e579b8`).
- [x] No tool depends on any `AMS_*` environment variable or any `src/*.js` file.

Edit 8 — docs/spec/s17-mcp-surface.md §9 cross-references (L114–L122)

OLD:

## 9. Cross-references

- [α — System Core](../concepts/α-system-core.md) — middleware chain canon
- [β — Task Pipeline](../concepts/β-task-pipeline.md) — Category 1 tools
- [ε — Skill Registry](../concepts/ε-skill-registry.md) — `skill_list` and SKILL.md parser
- [ζ — Decision Trail](../concepts/ζ-decision-trail.md) — Category 2 audit tools
- [η — Proof Store](../concepts/η-proof-store.md) — `merkle_finalize`, `merkle_root`
- [MCP Tools (Phase 0)](/AMS/reference/mcp-tools-phase-0.html) — per-tool catalogue
- [Task Breakdown](/AMS/guides/implementation/task-breakdown.html) — Phase 0 sub-tasks
- [ADR-004 — Tool count](../architecture/decisions/ADR-004-tool-count.md)
- [ADR-005 — Multi-model defer](/AMS/architecture/decisions/ADR-005-multi-model-defer.html)

NEW: (strip broken ../concepts/ refs; keep every still-valid link)

## 9. Cross-references

- [MCP Tools (Phase 0)](/AMS/reference/mcp-tools-phase-0.html) — per-tool catalogue
- [Task Breakdown](/AMS/guides/implementation/task-breakdown.html) — Phase 0 sub-tasks
- [ADR-004 — Tool count](../architecture/decisions/ADR-004-tool-count.md) — R75 Wave H amendment (19 → 14)
- [ADR-005 — Multi-model defer](/AMS/architecture/decisions/ADR-005-multi-model-defer.html) — δ router Phase 0 stubs
- [ADR-006 — Executable meaning](/AMS/architecture/decisions/ADR-006-executable-meaning.html) — `colibri_code` graduation ladder

Rationale: the 5 ../concepts/ targets do not exist in the tree. R82.J reconciles concept-doc navigation; R82.G stays out of that mapping and simply removes the broken refs.

Edit 9 — docs/spec/index.md L30

OLD:

  1. s17-mcp-surface — the Phase 0 contract: 19 tools × 4 categories, Zod schemas

NEW:

  1. s17-mcp-surface — the Phase 0 contract: 14 tools × 5 domains, Zod schemas (ADR-004 R75 Wave H amendment)

Edit 10 — docs/spec/index.md L69 (table row s17)

OLD:

| s17 | execution   | 0            | mcp-surface              | DEEP   | Phase 0 contract: 19 tools × 4 categories, Zod schemas |

NEW:

| s17 | execution   | 0            | mcp-surface              | DEEP   | Phase 0 contract: 14 tools × 5 domains, Zod schemas |

Edit 11 — docs/spec/index.md L135

OLD:

No spec has running code today. Every spec carries status: spec-only in its frontmatter. Phase 0 (R75–R80) creates the src/ tree and the first 19 MCP tools; none of them invokes the rule engine. Specs are load-bearing for documentation and for roadmap gating, not for runtime.

NEW:

As of R75 Wave I (2026-04-18), src/server.ts registers the 14 shipped Phase 0 MCP tools across α β γ ε ζ η; none of them invokes the rule engine (κ is Phase 1). Specs in spec/ remain protocol-level documents — s17 graduates to colibri_code: partial because its Phase 0 slice shipped; every other spec retains colibri_code: none pending its own phase.

Edit 12 — docs/spec/s12-dsl.md L248

OLD:

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+).

NEW:

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+).

Edit 13 — docs/world-schema.md L20

OLD:

│       └── tools: 19                               ◄ ADR-004 R74.5 — closed surface

NEW:

│       └── tools: 14                               ◄ ADR-004 R75 Wave H amendment (19 planned → 14 shipped)

Edit 14 — docs/world-schema.md L289–L291 session table

OLD:

    │   ├── sealed with docs/session-seal-sN.md
    │   ├── Session 1–5: complete (pre-history)
    │   ├── Session 6: R53–R73 (src/ deletion → R73 unification), SEALED
    │   └── Session 7: R74+ (Phase 0 execution), ACTIVE

NEW:

    │   ├── sealed with docs/session-seal-sN.md
    │   ├── Session 1–5: complete (pre-history)
    │   ├── Session 6: R53–R73 (src/ deletion → R73 unification), SEALED
    │   ├── Session 7: R74 series (documentation finish, zone hardening), SEALED 2026-04-09
    │   └── Session 8: R75+ (Phase 0 code + R81 κ kickoff), ACTIVE

Edit 15 — docs/world-schema.md L419

OLD:

  │  ν Integrations (basic) · 19 tools · data/colibri.db

NEW:

  │  ν Integrations (basic) · 14 tools · data/colibri.db

Implementation order

  1. Run Edit 1 (s17 frontmatter graduation) — single-line YAML value.
  2. Run Edit 2 (s17 opening banner) — single blockquote replacement.
  3. Run Edit 3 (s17 §1 opening prose) — single paragraph replacement.
  4. Run Edit 4 (s17 §1 surface table v2) — table + total-line replacement.
  5. Run Edit 5 (s17 §3 L45) — single prose line.
  6. Run Edit 6 (s17 §7 two lines) — two bullet replacements.
  7. Run Edit 7 (s17 §8 full acceptance block) — full block replacement.
  8. Run Edit 8 (s17 §9 cross-refs) — full block replacement.
  9. Run Edit 9 (spec/index.md L30) — single line.
  10. Run Edit 10 (spec/index.md L69 table row) — single line.
  11. Run Edit 11 (spec/index.md L135) — single paragraph.
  12. Run Edit 12 (s12-dsl.md L248) — single line.
  13. Run Edit 13 (world-schema.md L20) — single line.
  14. Run Edit 14 (world-schema.md L289–L291 session table) — 4-line block replacement (3 rows become 4 rows).
  15. Run Edit 15 (world-schema.md L419) — single line.

Build/lint/test gate

R82.G is docs-only; no src/ files are touched. The build/lint gate will run anyway (per CLAUDE.md §5 “all three are gates”). Expected result: build green, lint green, 1085 tests passing (zero change from baseline — no TypeScript edited). If any failure surfaces, it is unrelated to R82.G and should be investigated per the standard flake-isolation path.

Verification handoff

After implement, Step 5 docs/verification/r82-g-spec-world-verification.md will:

  1. Run every §2.1 negative sweep from the contract.
  2. Run every §2.2 positive sweep.
  3. Run §2.3 frontmatter head-check.
  4. Enumerate any residual “19” hit and classify as allowed (per contract §2.5) or disallowed.
  5. Capture the build/lint/test result.
  6. Confirm the manifest path error is flagged for Sigma Phase B.

Back to top

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

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