Skip to content

<objective> Write the remaining four FOUND-03 integration gate notes (anda, omp, mcp, acp). Runs in wave 1 parallel with plan 01-01; files are disjoint.

Purpose: Close the documentation-gate set so every Phase 3/5 module has its sourced basis and its named blocker. Output: Four gate notes per D-16, each with URL(s), read date, questions, sourced answers, and "not documented" markers. </objective>

<execution_context> @~/.claude/gsd-core/workflows/execute-plan.md @~/.claude/gsd-core/templates/summary.md </execution_context>

<context> @.planning/PROJECT.md @.planning/ROADMAP.md @.planning/phases/01-scaffold-and-frozen-contracts/01-CONTEXT.md @.planning/phases/01-scaffold-and-frozen-contracts/01-PATTERNS.md </context>

<tasks>

<task type="auto"> <name>Task 1: Write docs/integration/anda.md (position check, not a finding)</name> <files>docs/integration/anda.md</files> <read_first> - .planning/phases/01-scaffold-and-frozen-contracts/01-CONTEXT.md (D-06 Anda position, D-16 layout, D-18 anda.md row: Engine boundary, version handshake, Rust shim need) - .planning/phases/01-scaffold-and-frozen-contracts/01-PATTERNS.md (note layout) </read_first> <action>Write docs/integration/anda.md per D-06 and D-16: read the official Anda documentation and source at execution time from official sources discovered then; record the evidence for or against the TypeScript-client-over-HTTP position, the version-handshake surface, and whether any TypeScript-reachable surface exists; where the docs are silent record the literal text "not documented" and state the choice reopens in Phase 3 without being changed silently; name src/anda/ as the blocked module and docs/integration/anda-decision.md as the Phase 3 record per D-18. No Rust code, no shim, no host-local paths.</action> <acceptance_criteria> - docs/integration/anda.md contains an official-source URL, an ISO 8601 read date, and the Engine-boundary question with a sourced answer or "not documented" - docs/integration/anda.md states the D-06 position is a position to be checked, not a fact - docs/integration/anda.md names src/anda/ as blocked and anda-decision.md as the Phase 3 record </acceptance_criteria> <verify> <automated>grep -cE 'http|not documented' docs/integration/anda.md</automated> <fails_when>non-zero exit, or the count prints 0</fails_when> </verify> <done>anda.md exists as a D-06/D-16 position-check note with URL, read date, and Phase 3 reopen rule.</done> </task>

<task type="auto"> <name>Task 2: Write docs/integration/omp.md (question recorded, no plugin code)</name> <files>docs/integration/omp.md</files> <read_first> - .planning/phases/01-scaffold-and-frozen-contracts/01-CONTEXT.md (D-03 host-write tools disabled only in required mode; D-18 omp.md row: manifest, lifecycle hooks, status API, spec q4) </read_first> <action>Write docs/integration/omp.md per D-16: find the official Omp plugin and status API documentation at execution time from official sources, record the URL found then or "not documented" without guessing; record manifest format, lifecycle hooks, and status-surface evidence with source quotes or sections; record the host-write-removal question (spec q4) as open for Phase 5 per D-03; name plugin/ as the blocked module. Write no plugin code and no manifest file.</action> <acceptance_criteria> - docs/integration/omp.md contains an official-source URL or "not documented" for the URL per D-17, plus an ISO 8601 read date - docs/integration/omp.md records spec q4 as open for Phase 5 per D-03 - No file under plugin/ is created by this task </acceptance_criteria> <verify> <automated>grep -cE 'http|not documented' docs/integration/omp.md; test ! -e plugin/package.json -a ! -e plugin/omp/manifest.json</automated> <fails_when>non-zero exit, or the grep count prints 0, or the plugin-file check reports existing files</fails_when> </verify> <done>omp.md exists as a gate note with q4 open for Phase 5; plugin/ remains untouched.</done> </task>

<task type="auto"> <name>Task 3: Write docs/integration/mcp.md and docs/integration/acp.md</name> <files>docs/integration/mcp.md, docs/integration/acp.md</files> <read_first> - .planning/phases/01-scaffold-and-frozen-contracts/01-CONTEXT.md (D-18 mcp.md and acp.md rows: spec version and transport; block transport code only) - docs/integration/omp.md (sibling note layout to mirror) </read_first> <action>Write docs/integration/mcp.md and docs/integration/acp.md per D-16 and D-17: find each specification's official documentation at execution time from official sources and record the URL found then, or "not documented" without guessing; record each spec version and its current transport with source quotes or sections; state that each note blocks transport code only and that the shared contract types proceed without them per D-18. No transport code, no host-local paths.</action> <acceptance_criteria> - docs/integration/mcp.md contains a spec version, a transport, an official-source URL or "not documented", and an ISO 8601 read date - docs/integration/acp.md contains a spec version, a transport, an official-source URL or "not documented", and an ISO 8601 read date - Both notes state they block transport code only </acceptance_criteria> <verify> <automated>grep -c 'transport' docs/integration/mcp.md; grep -c 'transport' docs/integration/acp.md</automated> <fails_when>non-zero exit, or either count prints 0</fails_when> </verify> <done>mcp.md and acp.md exist as D-16 gate notes blocking transport code only.</done> </task>

</tasks>

<threat_model>

Trust Boundaries ​

BoundaryDescription
docs -> repoExternal documentation content is copied as evidence quotes, never executed

STRIDE Threat Register ​

Threat IDCategoryComponentSeverityDispositionMitigation Plan
T-01-03I (Information Disclosure)docs/integration/*.mdlowmitigateGrep notes for secret-shaped content and host-local paths before finishing; repo is public
T-01-04T (Tampering)note URLslowmitigateRecord only official-source URLs found at execution; D-17 forbids guessed URLs
T-01-SCT (Tampering)npm/pip/cargo installshighmitigateNo package installs in this plan; no install command runs here
</threat_model>

<verification> grep each of the four notes for its URL marker, ISO read date, and "not documented" coverage; confirm plugin/, src/anda/, src/mcp/, src/acp/ contain no new source files. </verification>

<success_criteria> Four D-16 gate notes exist with URL(s), ISO read dates, sourced answers, "not documented" markers, and blocked modules named; no integration source code exists anywhere in the repo. </success_criteria>

<output> Create .planning/phases/01-scaffold-and-frozen-contracts/01-02-SUMMARY.md when done </output>

Artifacts this phase produces ​

  • docs/integration/anda.md (gate note; blocks src/anda/; D-06 position check)
  • docs/integration/omp.md (gate note; blocks plugin/; q4 open for Phase 5)
  • docs/integration/mcp.md (gate note; blocks MCP transport code only)
  • docs/integration/acp.md (gate note; blocks ACP transport code only)

AGPL-3.0-only. Copyright (C) 2026 Spectrum Web Co/swcstudiospace.