<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
| Boundary | Description |
|---|---|
| docs -> repo | External documentation content is copied as evidence quotes, never executed |
STRIDE Threat Register
| Threat ID | Category | Component | Severity | Disposition | Mitigation Plan |
|---|---|---|---|---|---|
| T-01-03 | I (Information Disclosure) | docs/integration/*.md | low | mitigate | Grep notes for secret-shaped content and host-local paths before finishing; repo is public |
| T-01-04 | T (Tampering) | note URLs | low | mitigate | Record only official-source URLs found at execution; D-17 forbids guessed URLs |
| T-01-SC | T (Tampering) | npm/pip/cargo installs | high | mitigate | No 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)