=== Codex remediation dispatch ===
Started: 2026-05-11T10:33:11+02:00
Model: gpt-5.5 / model_reasoning_effort=high / service_tier=fast
Sandbox: workspace-write with network_access=true
Prompt: /tmp/codex-remediation-prompt.txt (   12739 bytes)

Reading additional input from stdin...
OpenAI Codex v0.130.0
--------
workdir: /Users/michelkerkmeester/MEGA/Development/Code_Environment/Public
model: gpt-5.5
provider: openai
approval: never
sandbox: workspace-write [workdir, /tmp, $TMPDIR, /Users/michelkerkmeester/.codex/memories] (network access enabled)
reasoning effort: high
reasoning summaries: none
session id: 019e162b-37d4-7ed1-9772-4cf63fedb937
--------
user
You are completing the deep-review P1+P2 remediation for spec packet `102-sk-doc-skill-readme-and-structure`.

Your task is mechanical: apply 16 specific edits across 9 files. Do NOT add commentary, do NOT introduce new architecture, do NOT touch files outside the scope list. Do NOT run any sub-process or network call. After editing, summarize what you changed in one final message.

# REPO ROOT
/Users/michelkerkmeester/MEGA/Development/Code_Environment/Public

All paths below are relative to that root.

# CONTEXT — SOURCE OF TRUTH
Read this file first to ground every edit: `.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/review/deep-review-dashboard.md`. It enumerates every finding ID, file:line citation, and remediation hint you'll need.

Also read: `.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/005-deep-review-p1-p2-remediation/tasks.md` — your task list with finding IDs mapped to edits.

# SCOPE — THE ONLY FILES YOU MAY EDIT

```
.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/spec.md
.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/001-sk-doc-reference-relocation/spec.md
.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/002-sk-doc-skill-readme-asset/spec.md
.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/002-sk-doc-skill-readme-asset/checklist.md
.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/003-markdown-agent-rename/spec.md
.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/004-sk-doc-playbook-markdown-agent-coverage/spec.md
.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/004-sk-doc-playbook-markdown-agent-coverage/checklist.md
.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/004-sk-doc-playbook-markdown-agent-coverage/implementation-summary.md
.opencode/skills/sk-doc/manual_testing_playbook/06--agent-dispatch/002-markdown-agent-cli-codex.md
```

Out of scope: every other file. If you find yourself wanting to edit something outside this list, STOP and report it in your final summary instead of editing.

# THE 16 EDITS

## P1 fixes (must complete)

### T010 — F-000-001 / F-001-001
File: `102/spec.md` (the phase parent, NOT a child).
In the "## 4. Phase Documentation Map" table, find the row for phase 2:
  `| 2 | \`002-sk-doc-skill-readme-asset/\` | Draft | Analyze ... |`
Change the status cell from `Draft` to `Complete`. Leave the description text unchanged.

### T011 — F-001-005
File: `102/spec.md`.
In the "## 5. Phase Handoffs" table, find the row "003-markdown-agent-rename → 004-sk-doc-playbook-markdown-agent-coverage". Append the following sentence to that row's "Handoff Criteria" cell (do not replace existing text): " NOTE: SD-019 surfaced a cli-codex non-interactive @markdown dispatch gap (F-001) — documented as accepted limitation in 005-deep-review-p1-p2-remediation; codex `@markdown` dispatch under `codex exec` falls back to a sub-agent path that hits Gate 3."

### T012 — F-000-002 / F-003-001
File: `002-sk-doc-skill-readme-asset/checklist.md`.
Find the CHK-003 line in the Pre-Implementation anchor. It currently reads (approximately):
  `- [x] CHK-003 [P1] Dependencies identified ... - Evidence: ...`
Append to the existing Evidence text: " Phase 1→2 handoff acceptance: `references/specific/` removed and exact-search for that string returned zero implementation-scope hits (verified 2026-05-10 during Phase 1 handoff to Phase 2)."

### T013 — F-001-002 / F-003-002
File: `004-sk-doc-playbook-markdown-agent-coverage/spec.md`.
In the "## 1. METADATA" table, change `| **Status** | Draft |` to `| **Status** | Complete |`.

### T014 — F-004-001 (and consolidates F-000-003)
File: `004-sk-doc-playbook-markdown-agent-coverage/implementation-summary.md`.
Three edits in the YAML frontmatter:
  a. Change `completion_pct: 90` to `completion_pct: 100`.
  b. Replace the `open_questions:` list with `open_questions: []` (i.e. empty array; remove the existing question line).
  c. The metadata table (further down) currently reads `| **Status** | Active — 2 PASS, 1 FAIL, awaiting deep-review pass |`. Change it to `| **Status** | Complete — 2 PASS, 1 FAIL (documented limitation), deep-review converged |`.

### T015 — Resolve open question via accepted limitation
File: `.opencode/skills/sk-doc/manual_testing_playbook/06--agent-dispatch/002-markdown-agent-cli-codex.md`.
In the YAML frontmatter (between the `---` delimiters at the top), add two new lines AFTER the existing `execution_mode: dispatch_real` line:
```
expected_skip_in_non_interactive: true
skip_rationale: "cli-codex @markdown dispatch under `codex exec` non-interactive mode falls back to a sub-agent path that hits Gate 3. Documented as accepted limitation in 102/005 (F-001). Re-enable when codex agent resolver routes @markdown directly under `codex exec`."
```
Do not modify any other field in the frontmatter or any content below it.

### T016 — F-004-003 (Known Issues section)
File: `102/spec.md`.
Append a new section at the very end of the file (after the existing "## Related Documents" list). The new section is:

```

## Known Issues

This packet's deep-review (5 iterations, converged at iter 4, dashboard at `review/deep-review-dashboard.md`) surfaced the following findings. All are tracked here for downstream discoverability.

### Confirmed pre-existing (from `004/implementation-summary.md`)

| ID | Severity | Title | Status |
|----|----------|-------|--------|
| F-001 | P1 | cli-codex non-interactive `@markdown` dispatch ergonomics gap (SD-019 FAIL) | Accepted limitation — see 005 packet + SD-019 scenario `expected_skip_in_non_interactive` field |
| F-002 | P2 | opencode `--agent general` subagent-fallback message | Accepted — harmless ergonomics noise |
| F-003 | P2 | sk-doc compact-changelog format vs Keep-a-Changelog raw shape mismatch | Documented — sk-doc compact format is canonical |

### Surfaced by 102 phase-parent deep-review (resolved in 005)

| ID | Severity | Resolution |
|----|----------|------------|
| F-000-001 / F-001-001 | P1 | Phase 2 status synced Draft → Complete (this file) |
| F-000-002 / F-003-001 | P1 | Phase 1→2 handoff acceptance evidence added to `002/checklist.md` CHK-003 |
| F-001-005 | P1 | 003→004 handoff row annotated with SD-019 dispatch-gap note (this file) |
| F-003-002 | P1 | 004 REQ-004 partial-objective ambiguity resolved by SD-019 limitation documentation |
| F-004-001 | P1 | 004 completion_pct 90 → 100; open_questions cleared; status Complete |
| F-001-002 | P2 | 004/spec.md status Draft → Complete |
| F-001-003 | P2 | 004/checklist.md items marked with evidence |
| F-001-004 / F-004-002 | P2 | 002/checklist.md frontmatter completion_pct 0 → 100 |
| F-002-001 | P2 | SD-020 session IDs in evidence — accepted runtime metadata, no edit needed |
| F-003-003 / F-004-004 | P2 | Child specs renumbered "N of 3" → "N of 5" |
| F-003-004 | P2 | 003 prior-review cross-reference added (this file) |
| F-004-003 | P2 | This Known Issues section added |

### Phase 3 prior deep-review

The Phase 3 (`003-markdown-agent-rename/`) shipped with its own 4-iteration deep-review. Findings registry at `003/review/deep-review-findings-registry.json`; iteration files at `003/review/iterations/`; final dashboard at `003/review/deep-review-dashboard.md`. All Phase 3 findings were closed during that earlier review; cross-referenced here for completeness.
```

## P2 fixes

### T020 — F-004-004
File: `001-sk-doc-reference-relocation/spec.md`.
In the "## 1. METADATA" table, change the `**Phase**` row's value from `1 of 3` to `1 of 5`.

### T021 — F-003-003 (001's row)
File: `002-sk-doc-skill-readme-asset/spec.md`.
In the "## 1. METADATA" table, change the `**Phase**` row's value from `2 of 3` to `2 of 5`.

### T022 — F-003-003 (003's row)
File: `003-markdown-agent-rename/spec.md`.
In the "## 1. METADATA" table, change `**Phase**` value from `3 of 3` to `3 of 5`.

### T023 — F-001-004 / F-004-002
File: `002-sk-doc-skill-readme-asset/checklist.md`.
In the YAML frontmatter, change `completion_pct: 0` to `completion_pct: 100`. There is only one such field; do not touch other fields.

### T024 — F-001-003
File: `004-sk-doc-playbook-markdown-agent-coverage/checklist.md`.
Every CHK-NNN line currently has the form `- [ ] CHK-NNN [PN] description.` (unchecked).
Mark these specific items as completed with the evidence text in brackets. For each, change `[ ]` to `[x]` AND append ` - Evidence: <text>` (single line, no newline mid-evidence).

Items to mark (use this exact mapping):
- CHK-001: Evidence: spec.md authored at 004/spec.md with full scope, requirements, success criteria.
- CHK-002: Evidence: plan.md authored at 004/plan.md with dispatch shapes and architecture pattern.
- CHK-003: Evidence: 4 runtime agent mirrors verified; /create:changelog command at .opencode/commands/create/changelog.md exists.
- CHK-010: Evidence: 3 scenarios created under 06--agent-dispatch/ (find returned 3 .md files).
- CHK-011: Evidence: each scenario frontmatter contains `execution_mode: dispatch_real`.
- CHK-012: Evidence: SD-018/019/020 follow SD-010 template shape with Overview / Scenario Contract / Test Execution / Setup / Expected Behavior / Success Criteria / Source Metadata sections.
- CHK-013: Evidence: same /create:changelog sk-test-dummy v0.1.0 prompt across all three scenarios.
- CHK-020: Evidence: 3 dispatches executed sequentially 2026-05-11 via cli-claude-code, cli-codex, cli-opencode; evidence files persisted under 004/evidence/.
- CHK-021: Evidence: SD-018 PASS, SD-019 FAIL, SD-020 PASS verdict footers in evidence files.
- CHK-022: Evidence: SD-018 (3 hits) and SD-020 (8 hits) show @markdown invocation; SD-019 surfaces routing gap explicitly.
- CHK-023: Evidence: SD-018 (2 resource hits) and SD-020 (8 resource hits) show sk-doc resources loaded.
- CHK-FIX-001: Evidence: scenarios classified dispatch_real per execution_mode frontmatter; SD-019 reclassified as instance-only documented limitation in 005.
- CHK-FIX-002: Evidence: 06--agent-dispatch added to manual_testing_playbook.md Categories table and Scenario Index.
- CHK-FIX-003: Evidence: manual_testing_playbook.md Global Preconditions §6 explicitly distinguishes section 6 execution-real from sections 1-5 routing-trace.
- CHK-FIX-004: Evidence: 3 scenarios dispatched sequentially (one after another), not in parallel.
- CHK-FIX-005: Evidence: matrix axes CLI × task; 3 CLIs × 1 task = 3 rows in results table.
- CHK-FIX-006: Evidence: codex scenario uses `service_tier=fast` + `sandbox_workspace_write.network_access=true`; opencode scenario uses `--pure` + `</dev/null`.
- CHK-FIX-007: Evidence: each evidence file contains verbatim transcript content; no paraphrase summaries.
- CHK-030: Evidence: SD-018/019/020 evidence files reviewed; no secrets, tokens, or API keys persisted.
- CHK-031: Evidence: stub sk-test-dummy not installed under .opencode/skills/; output files only at /tmp/.
- CHK-032: Evidence: each scenario prompt explicitly forbids installation into the skills tree.
- CHK-040: Evidence: spec.md / plan.md / tasks.md continuity blocks updated to completion_pct: 100 in 005 final pass.
- CHK-041: Evidence: implementation-summary.md results table populated with 3 rows (SD-018/019/020) + verdict + key evidence-file path each.
- CHK-042: Evidence: parent 102/spec.md Phase Documentation Map references phase 4 row.
- CHK-050: Evidence: evidence/ directory contains only SD-018-cli-claude-code.txt, SD-019-cli-codex.txt, SD-020-cli-opencode.txt.
- CHK-051: Evidence: scratch/ contains only .gitkeep.

After marking, update the Verification Summary table (anchor `<!-- ANCHOR:summary -->`) to:
| P0 Items | 12 | 12/12 |
| P1 Items | 8 | 8/8 |
| P2 Items | 1 | 1/1 |
And update "Verification Date" to `2026-05-11`.

### T025 — F-003-004 (003 prior-review cross-ref)
This is already covered inside T016 (Known Issues section §"Phase 3 prior deep-review"). No separate edit needed.

### T026, T027, T028 — accepted-defer or duplicates
No edits. Already documented as such in tasks.md.

# AFTER EDITS

After applying all edits, output a single final message with:
1. A bullet list of files modified (path only).
2. For each finding ID (T010..T028), one line: `T###: <one-sentence what-changed>` OR `T###: no-op (reason)`.
3. Any edit you could NOT apply, with the reason.

Do NOT run validate.sh. Do NOT run git diff. Do NOT touch anything outside the scope list. Do NOT add commentary, decorations, or unrequested fields.
hook: SessionStart
hook: SessionStart
hook: SessionStart Completed
hook: SessionStart Completed
hook: UserPromptSubmit
hook: UserPromptSubmit
hook: UserPromptSubmit Completed
hook: UserPromptSubmit Completed
codex
I’ll keep this tight and mechanical: first I’m reading the two source-of-truth docs and only the scoped files that need edits, then I’ll patch those files directly.
exec
/bin/zsh -lc "sed -n '1,260p' .opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/005-deep-review-p1-p2-remediation/tasks.md" in /Users/michelkerkmeester/MEGA/Development/Code_Environment/Public
 succeeded in 0ms:
---
title: "Tasks: deep-review P1+P2 remediation"
description: "16-finding remediation via single cli-codex dispatch + verification."
trigger_phrases:
  - "102 p1 p2 remediation"
importance_tier: "important"
contextType: "implementation"
_memory:
  continuity:
    packet_pointer: ".opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/005-deep-review-p1-p2-remediation"
    last_updated_at: "2026-05-11T09:35:00Z"
    last_updated_by: "claude-opus-4-7"
    recent_action: "Authored task list"
    next_safe_action: "Dispatch cli-codex"
    blockers: []
    key_files: []
    session_dedup:
      fingerprint: "sha256:0000000000000000000000000000000000000000000000000000000000000000"
      session_id: "102-005-deep-review-p1-p2-remediation"
      parent_session_id: null
    completion_pct: 0
    open_questions: []
    answered_questions: []
---
# Tasks: deep-review P1+P2 remediation

<!-- SPECKIT_LEVEL: 2 -->
<!-- SPECKIT_TEMPLATE_SOURCE: tasks-core | v2.2 -->

---

<!-- ANCHOR:notation -->
## Task Notation

| Prefix | Meaning |
|--------|---------|
| `[ ]` | Pending |
| `[x]` | Completed |
| `[P]` | Parallelizable |
| `[B]` | Blocked |

**Task Format**: `T### [P?] Description (file path)`
<!-- /ANCHOR:notation -->

---

<!-- ANCHOR:phase-1 -->
## Phase 1: Setup

- [ ] T001 Verify all 9 files in scope exist on disk.
- [ ] T002 Read `../review/deep-review-dashboard.md` to confirm 16 findings.
- [ ] T003 Baseline strict-validate state of 004 captured.
<!-- /ANCHOR:phase-1 -->

---

<!-- ANCHOR:phase-2 -->
## Phase 2: Implementation

- [ ] T004 Compose comprehensive cli-codex prompt enumerating all 16 finding → edit pairs.
- [ ] T005 Dispatch cli-codex `gpt-5.5 / high / fast` with `-c sandbox_workspace_write.network_access=true`; capture transcript.
- [ ] T006 Inspect transcript for partial application; retry any failed edits via Claude Edit.

### Findings → Edits enumerated

P1 fixes:
- [ ] T010 `102/spec.md` Phase 2 status Draft → Complete (F-000-001 / F-001-001)
- [ ] T011 `102/spec.md` 003→004 handoff row add SD-019 dispatch-gap note (F-001-005)
- [ ] T012 `002/checklist.md` CHK-003 add Phase 1→2 handoff acceptance evidence (F-000-002 / F-003-001)
- [ ] T013 `004/spec.md` Status Draft → Complete (F-001-002 promoted; closes F-003-002 ambiguity)
- [ ] T014 `004/implementation-summary.md` completion_pct 90→100; close open_questions; status Active→Complete (F-004-001)
- [ ] T015 `06--agent-dispatch/002-markdown-agent-cli-codex.md` add `expected_skip_in_non_interactive: true` + rationale (closes the open question)
- [ ] T016 `102/spec.md` add Known Issues section referencing F-001/F-002/F-003 + new review P1 IDs (F-004-003)

P2 fixes:
- [ ] T020 `001/spec.md` "1 of 3" → "1 of 5" (F-004-004)
- [ ] T021 `002/spec.md` "2 of 3" → "2 of 5" (F-003-003)
- [ ] T022 `003/spec.md` "3 of 3" → "3 of 5" (F-003-003)
- [ ] T023 `002/checklist.md` frontmatter completion_pct 0 → 100 (F-001-004 / F-004-002)
- [ ] T024 `004/checklist.md` mark all CHK items with evidence references (F-001-003)
- [ ] T025 `102/spec.md` add 003-prior-review cross-reference (F-003-004)
- [ ] T026 No edit for F-002-001 (SD-020 session-id noise — accepted runtime metadata; document in implementation-summary)
- [ ] T027 No edit for F-000-003 (duplicate of F-004-001)
- [ ] T028 No edit for F-001-001 (consolidated with F-000-001 in T010)
<!-- /ANCHOR:phase-2 -->

---

<!-- ANCHOR:phase-3 -->
## Phase 3: Verification

- [ ] T030 Run `validate.sh --strict` against 004; exit 0.
- [ ] T031 Run `validate.sh --strict` against 005; exit 0.
- [ ] T032 Grep matrix: "of 5" hits in 001/002/003/004 spec.md.
- [ ] T033 Grep matrix: `grep -n "Known Issues" 102/spec.md` (1 hit).
- [ ] T034 Grep matrix: `grep -n "expected_skip_in_non_interactive: true" 06--agent-dispatch/002-*.md` (1 hit).
- [ ] T035 Populate `implementation-summary.md` with per-finding closure rows.
- [ ] T036 Update parent `102/spec.md` Phase 4 + Phase 5 status rows to Complete (final pass).
- [ ] T037 Update parent `102/graph-metadata.json` `derived.status` active → completed.
<!-- /ANCHOR:phase-3 -->

---

<!-- ANCHOR:completion -->
## Completion Criteria

- [ ] All tasks marked `[x]`
- [ ] No `[B]` blocked tasks remaining
- [ ] Strict-validate exit 0 on 004 AND 005
- [ ] `implementation-summary.md` enumerates closure evidence for all 16 dashboard findings
<!-- /ANCHOR:completion -->

---

<!-- ANCHOR:cross-refs -->
## Cross-References

- **Specification**: See `spec.md`
- **Plan**: See `plan.md`
- **Checklist**: See `checklist.md`
- **Source of findings**: `../review/deep-review-dashboard.md` and `../review/review-report.md`
- **Memory hints**: `feedback_codex_cli_fast_mode.md`, `feedback_codex_sandbox_blocks_network.md`, `feedback_cli_codex_for_grunt_work.md`
<!-- /ANCHOR:cross-refs -->

exec
/bin/zsh -lc "sed -n '1,260p' .opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/review/deep-review-dashboard.md" in /Users/michelkerkmeester/MEGA/Development/Code_Environment/Public
 succeeded in 0ms:
# Deep Review Dashboard

**Review Target:** specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure
**Type:** Phase parent (4 child phases + parent coordination)
**Date:** 2026-05-11
**Session ID:** 2026-05-11T10-00-00Z
**Stop Reason:** CONVERGED — all dimensions covered, weighted score >= 0.60
**Iterations:** 5 (0=inventory, 1=correctness, 2=security, 3=traceability, 4=maintainability)
**Max Iterations:** 10

---

## Verdict: CONDITIONAL

**Justification:** No P0 findings. 7 P1 findings require remediation before shipping. All P1s have concrete file:line evidence and remediation paths.

---

## Findings by Severity

| Severity | Count | Blocking? |
|----------|-------|-----------|
| **P0** | 0 | No |
| **P1** | 7 | Yes — must resolve for PASS |
| **P2** | 9 | No — advisories only |

---

## All Findings

### P1 — Must Resolve

| ID | Iteration | Category | Title | File |
|----|-----------|----------|-------|------|
| F-000-001 | 000 | correctness | Parent spec Phase 2 status "Draft" but child spec says "Complete" | `102/spec.md:64` |
| F-000-002 | 000 | traceability | Phase 1→2 handoff verification not explicitly cited | `102/spec.md:73` |
| F-001-001 | 001 | correctness | Same as F-000-001 (consolidated) | — |
| F-001-005 | 001 | correctness | Parent 003→004 handoff doesn't reflect SD-019 gap surfaced by Phase 4 | `102/spec.md:74` |
| F-003-001 | 003 | traceability | Phase 1→2 handoff closure not formally documented | `102/spec.md:72` |
| F-003-002 | 003 | traceability | Phase 004 REQ-004 SD-019 FAIL creates partial-objective gap | `004/spec.md:103` |
| F-004-001 | 004 | maintainability | Phase 004 at 90% with unresolved remediation-path question | `004/implementation-summary.md:27` |

### P2 — Advisories

| ID | Category | Title | File |
|----|----------|-------|------|
| F-000-003 | maintainability | Phase 004 completion_pct=90 with open question | `004/implementation-summary.md:14` |
| F-001-002 | correctness | Phase 004 spec.md status "Draft" but implementation shipped | `004/spec.md:40` |
| F-001-003 | correctness | Phase 004 checklist 0/21 checked despite evidence | `004/checklist.md` |
| F-001-004 | correctness | Phase 002 checklist completion_pct:0 | `002/checklist.md:21` |
| F-002-001 | security | SD-020 session IDs in evidence (acceptable noise) | `evidence/SD-020-cli-opencode.txt` |
| F-003-003 | traceability | Phases 001-003 child specs still say "3 of 3" | `001/spec.md:43` |
| F-003-004 | traceability | Phase 003 prior review findings not cross-referenced | `003/review/` |
| F-004-002 | maintainability | Phase 002 checklist completion_pct:0 | `002/checklist.md:21` |
| F-004-003 | maintainability | Known findings not uniformly referenced at parent level | `102/spec.md` |
| F-004-004 | maintainability | Phase 001 spec says "1 of 3" after Phase 4 addition | `001/spec.md:43` |

---

## Dimension Coverage

| Dimension | Iterations | Findings | Coverage |
|-----------|------------|----------|----------|
| Correctness | 001 | P0:0 P1:2 P2:3 | 100% |
| Security | 002 | P0:0 P1:0 P2:1 | 100% |
| Traceability | 003 | P0:0 P1:2 P2:2 | 100% |
| Maintainability | 004 | P0:0 P1:1 P2:3 | 100% |
| Inventory | 000 | P0:0 P1:2 P2:1 | N/A (pre-pass) |

---

## Convergence Metrics

| Metric | Value |
|--------|-------|
| New findings ratio trend | 1.0 → 0.2 → 0.57 → 0.44 |
| Rolling average (last 2) | 0.505 |
| Dimension coverage | 4/4 (100%) |
| Weighted stop score | 0.798 (redistributed) |
| P0 resolution | 0 active |
| Evidence density | All P1s have file:line |
| Stuck count | 0 |

---

## Pre-Existing Findings (from 004/implementation-summary.md)

| ID | Severity | Title |
|----|----------|-------|
| F-001 | P1 | cli-codex non-interactive @markdown dispatch ergonomics gap (SD-019 FAIL) |
| F-002 | P2 | opencode --agent general subagent-fallback message |
| F-003 | P2 | sk-doc compact-changelog vs Keep-a-Changelog format mismatch |

---

## Remediation Plan

### Quick Fixes (P2, ~15 min)
1. Update `102/spec.md:64`: Phase 2 Draft → Complete
2. Update `004/spec.md:40`: Draft → Active
3. Update `002/checklist.md` frontmatter: completion_pct → 100
4. Update `001/spec.md:43`: "1 of 3" → "1 of 4"; same for 002, 003
5. Mark 004/checklist.md items verified (at minimum CHK-010, CHK-020, CHK-021, CHK-030-032, CHK-050)

### Structural (P1, ~30 min)
6. Add handoff acceptance evidence to 002/checklist CHK-003
7. Add parent-level "Known Issues" register referencing F-001/F-002/F-003 + this review's findings
8. Resolve 004 open question: file remediation packet or document SD-019 as accepted limitation
9. Update 003→004 handoff row with note about SD-019 runtime gap discovery

---

## Release Readiness

**State:** CONDITIONAL
**Blockers:** 7 P1 findings
**Recommendation:** Remediate P1 findings (items 6-9 above), then mark phase 004 Complete and parent as Complete.

codex
The dashboard and task packet match the requested finding set. I’m now reading only the editable targets so the patch can stay inside the requested scope.
exec
/bin/zsh -lc "sed -n '1,240p' .opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/spec.md" in /Users/michelkerkmeester/MEGA/Development/Code_Environment/Public
 succeeded in 0ms:
---
title: "Feature Specification: sk-doc skill README and structure"
description: "Phase parent for sk-doc reference relocation, sk-doc skill README asset creation, and markdown-agent rename planning."
trigger_phrases:
  - "sk-doc skill README"
  - "sk-doc references relocation"
  - "markdown agent rename"
importance_tier: "important"
contextType: "implementation"
_memory:
  continuity:
    packet_pointer: "skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure"
    last_updated_at: "2026-05-10T00:00:00Z"
    last_updated_by: "gpt-5.5"
    recent_action: "Prepared phase parent"
    next_safe_action: "Implement phase one"
    blockers: []
    key_files: []
    session_dedup:
      fingerprint: "sha256:0000000000000000000000000000000000000000000000000000000000000000"
      session_id: "102-sk-doc-skill-readme-and-structure-parent"
      parent_session_id: null
    completion_pct: 0
    open_questions: []
    answered_questions: []
---
<!-- SPECKIT_TEMPLATE_SOURCE: phase-parent.spec.md | v2.2 -->

# Feature Specification: sk-doc skill README and structure

<!-- SPECKIT_LEVEL: phase-parent -->

## 1. Metadata

| Field | Value |
| --- | --- |
| **Status** | Active |
| **Priority** | P1 |
| **Created** | 2026-05-10 |
| **Phase Count** | 5 |
| **Last Active Child** | `005-deep-review-p1-p2-remediation/` |

## 2. Purpose

This packet coordinates the documentation and agent-structure work needed to make `sk-doc` easier to maintain and to rename the create documentation agent into the markdown agent identity. The parent stays lean; all implementation details live in the child phase folders.

## 3. Scope

In scope:
- Relocate `sk-doc` creation guides out of `references/specific/` and update references.
- Add a dedicated skill README asset for `sk-doc` skill creation guidance.
- Rename the create documentation agent identity to markdown across runtime surfaces and references.

Out of scope:
- Performing implementation at the parent level.
- Renaming `/create:*` command names unless a later product decision explicitly changes the command family.
- Changing unrelated skill, command, or agent behavior.

## 4. Phase Documentation Map

| Phase | Folder | Status | Description |
| --- | --- | --- | --- |
| 1 | `001-sk-doc-reference-relocation/` | Active | Move `sk-doc/references/specific` documents to `sk-doc/references` root and update all old-path references. |
| 2 | `002-sk-doc-skill-readme-asset/` | Draft | Analyze skill README conventions and create a dedicated sk-doc skill README asset with references from sk-doc docs and tests. |
| 3 | `003-markdown-agent-rename/` | Complete | Rename create-agent identity to markdown-agent identity across runtime agent mirrors and references while preserving `/create:*` commands. |
| 4 | `004-sk-doc-playbook-markdown-agent-coverage/` | Active | Add `06--agent-dispatch/` section to the sk-doc manual testing playbook with three scenarios that dispatch `@markdown` across cli-claude-code, cli-codex, and cli-opencode; execute and capture evidence. |
| 5 | `005-deep-review-p1-p2-remediation/` | Active | Remediate all 7 P1 and 9 P2 findings from the 102 phase-parent deep-review: status sync, handoff documentation, checklist marking, parent-level known-issues register, and SD-019 limitation documentation. |

## 5. Phase Handoffs

| From | To | Handoff Criteria | Verification |
| --- | --- | --- | --- |
| `001-sk-doc-reference-relocation` | `002-sk-doc-skill-readme-asset` | `references/specific` is removed, files are in `references/`, and old path references are gone. | Exact search for `references/specific` returns no implementation-scope hits. |
| `002-sk-doc-skill-readme-asset` | `003-markdown-agent-rename` | Dedicated skill README asset exists and is referenced from sk-doc creation guidance and testing docs. | File exists under `assets/skill/` and references resolve from `SKILL.md`, `references/skill_creation.md`, and manual testing docs. |
| `003-markdown-agent-rename` | `004-sk-doc-playbook-markdown-agent-coverage` | `@markdown` agent is wired across 4 runtime mirrors and routed by orchestrate.md. | `ls .opencode/agents/markdown.md .claude/agents/markdown.md .gemini/agents/markdown.md .codex/agents/markdown.toml` resolves all four. |
| `004-sk-doc-playbook-markdown-agent-coverage` | `005-deep-review-p1-p2-remediation` | Deep-review converged with verdict CONDITIONAL: 0 P0, 7 P1, 9 P2 findings; SD-019 cli-codex `@markdown` dispatch gap surfaced as F-001. | `.opencode/specs/.../102/review/deep-review-dashboard.md` exists; `004/implementation-summary.md` Review Outcome section cites 7 P1 + 9 P2. |

## 6. Success Criteria

- Each child phase has Level 2 documentation, a checklist, and a detailed resource map.
- Implementation runs phase-by-phase with explicit verification before handoff.
- Parent validation can locate child phase folders and metadata.

## Related Documents

- `001-sk-doc-reference-relocation/spec.md`
- `002-sk-doc-skill-readme-asset/spec.md`
- `003-markdown-agent-rename/spec.md`
- `004-sk-doc-playbook-markdown-agent-coverage/spec.md`
- `005-deep-review-p1-p2-remediation/spec.md`
- `graph-metadata.json`

exec
/bin/zsh -lc "sed -n '1,180p' .opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/001-sk-doc-reference-relocation/spec.md" in /Users/michelkerkmeester/MEGA/Development/Code_Environment/Public
 succeeded in 0ms:
---
title: "Feature Specification: sk-doc reference relocation"
description: "Move sk-doc creation guides from references specific into the references root and update all old path references."
trigger_phrases:
  - "sk-doc reference relocation"
importance_tier: "important"
contextType: "implementation"
_memory:
  continuity:
    packet_pointer: ".opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure"
    last_updated_at: "2026-05-10T00:00:00Z"
    last_updated_by: "gpt-5.5"
    recent_action: "Relocated sk-doc creation references and updated stale paths"
    next_safe_action: "Continue with Phase 2 after reviewing Phase 1 handoff"
    blockers: []
    key_files: []
    session_dedup:
      fingerprint: "sha256:0000000000000000000000000000000000000000000000000000000000000000"
      session_id: "102-sk-doc-skill-readme-and-structure"
      parent_session_id: null
    completion_pct: 100
    open_questions: []
    answered_questions: []
---
# Feature Specification: sk-doc reference relocation

<!-- SPECKIT_LEVEL: 2 -->
<!-- SPECKIT_TEMPLATE_SOURCE: spec-core | v2.2 -->

---

<!-- ANCHOR:metadata -->
## 1. METADATA

| Field | Value |
|-------|-------|
| **Level** | 2 |
| **Priority** | P1 |
| **Status** | Complete |
| **Created** | 2026-05-10 |
| **Branch** | `main` |
| **Parent Spec** | ../spec.md |
| **Phase** | 1 of 3 |
| **Predecessor** | None |
| **Successor** | 002-sk-doc-skill-readme-asset |
<!-- /ANCHOR:metadata -->

---

<!-- ANCHOR:problem -->
## 2. PROBLEM & PURPOSE

### Problem Statement
sk-doc keeps creation guides in references specific, but the requested structure moves those guides to the root references folder. Old path references exist in sk-doc docs and create command assets, so relocation must include a complete reference update.

### Purpose
Relocate the creation guides and make every path reference point to the new root references location.
<!-- /ANCHOR:problem -->

---

<!-- ANCHOR:scope -->
## 3. SCOPE

### In Scope
- Move six creation guides from .opencode/skills/sk-doc/references/specific/ to .opencode/skills/sk-doc/references/.
- Remove the now-empty .opencode/skills/sk-doc/references/specific/ directory.
- Update old path references in .opencode/skills/sk-doc, .opencode/agents, and .opencode/commands.

### Out of Scope
- Dedicated skill README asset creation belongs to Phase 2.
- Create-agent rename belongs to Phase 3.

### Files to Change

| File Path | Change Type | Description |
|-----------|-------------|-------------|
| .opencode/skills/sk-doc/references/specific/*.md | Move | Move six creation guides to references root. |
| .opencode/skills/sk-doc/SKILL.md | Modify | Update guide paths. |
| .opencode/commands/create/** | Modify | Update create command references. |
<!-- /ANCHOR:scope -->

---

<!-- ANCHOR:requirements -->
## 4. REQUIREMENTS

### P0 - Blockers (MUST complete)

| ID | Requirement | Acceptance Criteria |
|----|-------------|---------------------|
| REQ-001 | Move all six creation guides to references root. | Each file exists at the root references path and no duplicate remains under specific. |

### P1 - Required (complete OR user-approved deferral)

| ID | Requirement | Acceptance Criteria |
|----|-------------|---------------------|
| REQ-002 | Remove the specific folder after relocation. | Directory no longer exists after implementation. |
| REQ-003 | Update old path references in requested scopes. | Exact search for sk-doc references specific returns no implementation-scope hits. |
<!-- /ANCHOR:requirements -->

---

<!-- ANCHOR:success-criteria -->
## 5. SUCCESS CRITERIA

- **SC-001**: Phase deliverables are implemented and verified.
- **SC-002**: Handoff criteria are ready for the next phase.
<!-- /ANCHOR:success-criteria -->

---

<!-- ANCHOR:risks -->
## 6. RISKS & DEPENDENCIES

| Type | Item | Impact | Mitigation |
|------|------|--------|------------|
| Dependency | Phase 2 uses relocated skill_creation.md | Phase 2 cannot start safely until Phase 1 lands | Complete this phase before Phase 2. |
| Risk | Stale singular skill path in create README | Link checks can fail after relocation | Search for both specific and singular skill path forms. |
<!-- /ANCHOR:risks -->

---

<!-- ANCHOR:questions -->

---

<!-- ANCHOR:nfr -->
## L2: NON-FUNCTIONAL REQUIREMENTS

### Performance
- **NFR-P01**: Reference searches complete within normal repo-search time.
- **NFR-P02**: Documentation changes avoid duplicate source-of-truth files.

### Security
- **NFR-S01**: No secrets or credentials are introduced.
- **NFR-S02**: Agent policy changes preserve explicit write-scope boundaries.

### Reliability
- **NFR-R01**: All referenced paths resolve after implementation.
- **NFR-R02**: Runtime mirror updates remain consistent where mirrors exist.
<!-- /ANCHOR:nfr -->

---

<!-- ANCHOR:edge-cases -->
## L2: EDGE CASES

### Data Boundaries
- Missing optional runtime mirror: document as not applicable.
- Existing command-family references: preserve when they refer to create commands.
- Historical notes: leave only if explicitly marked historical.

### Error Scenarios
- Validation failure: stop and fix within this phase.
- Search ambiguity: classify matches before editing.
- Partial completion: do not start the next phase until handoff criteria pass.

### State Transitions
- Draft to active: implementation begins.
- Active to complete: validation evidence recorded.
<!-- /ANCHOR:edge-cases -->

---

<!-- ANCHOR:complexity -->
## L2: COMPLEXITY ASSESSMENT

| Dimension | Score | Notes |
|-----------|-------|-------|
| Scope | 18/25 | Multi-file documentation and runtime-surface changes. |
| Risk | 16/25 | Path/reference drift is the main risk. |
| Research | 14/20 | Requires exact searches and pattern review. |
| **Total** | **48/70** | **Level 2** |
<!-- /ANCHOR:complexity -->

---

## 10. OPEN QUESTIONS


exec
/bin/zsh -lc "sed -n '1,220p' .opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/002-sk-doc-skill-readme-asset/spec.md" in /Users/michelkerkmeester/MEGA/Development/Code_Environment/Public
 succeeded in 0ms:
---
title: "Feature Specification: sk-doc skill README asset"
description: "Analyze skill README conventions and create a dedicated sk-doc skill README asset."
trigger_phrases:
  - "sk-doc skill README asset"
importance_tier: "important"
contextType: "implementation"
_memory:
  continuity:
    packet_pointer: ".opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure"
    last_updated_at: "2026-05-10T00:00:00Z"
    last_updated_by: "gpt-5.5"
    recent_action: "Prepared planning documentation"
    next_safe_action: "Run implementation phase"
    blockers: []
    key_files: []
    session_dedup:
      fingerprint: "sha256:0000000000000000000000000000000000000000000000000000000000000000"
      session_id: "102-sk-doc-skill-readme-and-structure"
      parent_session_id: null
    completion_pct: 0
    open_questions: []
    answered_questions: []
---
# Feature Specification: sk-doc skill README asset

<!-- SPECKIT_LEVEL: 2 -->
<!-- SPECKIT_TEMPLATE_SOURCE: spec-core | v2.2 -->

---

<!-- ANCHOR:metadata -->
## 1. METADATA

| Field | Value |
|-------|-------|
| **Level** | 2 |
| **Priority** | P1 |
| **Status** | Complete |
| **Created** | 2026-05-10 |
| **Branch** | `main` |
| **Parent Spec** | ../spec.md |
| **Phase** | 2 of 3 |
| **Predecessor** | 001-sk-doc-reference-relocation |
| **Successor** | 003-markdown-agent-rename |
<!-- /ANCHOR:metadata -->

---

<!-- ANCHOR:problem -->
## 2. PROBLEM & PURPOSE

### Problem Statement
sk-doc has README templates and skill creation guidance, but lacks a dedicated skill README asset for skill packages. README creation for skills currently relies on generic folder README guidance and repeated interpretation.

### Purpose
Create a reusable sk-doc skill README asset and wire it into the skill creation workflow and manual testing documentation.
<!-- /ANCHOR:problem -->

---

<!-- ANCHOR:scope -->
## 3. SCOPE

### In Scope
- Analyze README patterns across .opencode/skills.
- Create a dedicated sk-doc skill README asset under .opencode/skills/sk-doc/assets/skill/.
- Derive the asset from .opencode/skills/sk-doc/assets/readme/readme_template.md, not readme_code_template.md.
- Reference the asset from relocated references/skill_creation.md, SKILL.md, and manual testing docs.

### Out of Scope
- Moving references specific files belongs to Phase 1.
- Create-agent rename belongs to Phase 3.

### Files to Change

| File Path | Change Type | Description |
|-----------|-------------|-------------|
| .opencode/skills/*/README.md | Read | Analyze skill README conventions. |
| .opencode/skills/sk-doc/assets/skill/skill_readme_template.md | Create | Dedicated skill README asset. |
| .opencode/skills/sk-doc/SKILL.md | Modify | Reference new asset. |
<!-- /ANCHOR:scope -->

---

<!-- ANCHOR:requirements -->
## 4. REQUIREMENTS

### P0 - Blockers (MUST complete)

| ID | Requirement | Acceptance Criteria |
|----|-------------|---------------------|
| REQ-001 | Analyze existing skill README structures. | Findings inform asset sections. |

### P1 - Required (complete OR user-approved deferral)

| ID | Requirement | Acceptance Criteria |
|----|-------------|---------------------|
| REQ-002 | Create a dedicated skill README asset. | New markdown asset exists under assets/skill. |
| REQ-003 | Reference the asset from sk-doc creation guidance. | SKILL.md, references/skill_creation.md, and testing docs point to the asset. |
<!-- /ANCHOR:requirements -->

---

<!-- ANCHOR:success-criteria -->
## 5. SUCCESS CRITERIA

- **SC-001**: Phase deliverables are implemented and verified with package, search and alignment checks.
- **SC-002**: Handoff criteria are ready for the next phase.
<!-- /ANCHOR:success-criteria -->

---

<!-- ANCHOR:risks -->
## 6. RISKS & DEPENDENCIES

| Type | Item | Impact | Mitigation |
|------|------|--------|------------|
| Dependency | Phase 1 relocation | References should target root references path | Start only after Phase 1 handoff. |
| Risk | Generic README template overfit | Asset may duplicate folder README guidance | Sample real skill READMEs first. |
<!-- /ANCHOR:risks -->

---

<!-- ANCHOR:questions -->

---

<!-- ANCHOR:nfr -->
## L2: NON-FUNCTIONAL REQUIREMENTS

### Performance
- **NFR-P01**: Reference searches complete within normal repo-search time.
- **NFR-P02**: Documentation changes avoid duplicate source-of-truth files.

### Security
- **NFR-S01**: No secrets or credentials are introduced.
- **NFR-S02**: Agent policy changes preserve explicit write-scope boundaries.

### Reliability
- **NFR-R01**: All referenced paths resolve after implementation.
- **NFR-R02**: Runtime mirror updates remain consistent where mirrors exist.
<!-- /ANCHOR:nfr -->

---

<!-- ANCHOR:edge-cases -->
## L2: EDGE CASES

### Data Boundaries
- Missing optional runtime mirror: document as not applicable.
- Existing command-family references: preserve when they refer to create commands.
- Historical notes: leave only if explicitly marked historical.

### Error Scenarios
- Validation failure: stop and fix within this phase.
- Search ambiguity: classify matches before editing.
- Partial completion: do not start the next phase until handoff criteria pass.

### State Transitions
- Draft to active: implementation begins.
- Active to complete: validation evidence recorded.
<!-- /ANCHOR:edge-cases -->

---

<!-- ANCHOR:complexity -->
## L2: COMPLEXITY ASSESSMENT

| Dimension | Score | Notes |
|-----------|-------|-------|
| Scope | 18/25 | Multi-file documentation and runtime-surface changes. |
| Risk | 16/25 | Path/reference drift is the main risk. |
| Research | 14/20 | Requires exact searches and pattern review. |
| **Total** | **48/70** | **Level 2** |
<!-- /ANCHOR:complexity -->

---

## 10. OPEN QUESTIONS

- None blocking planning.
<!-- /ANCHOR:questions -->

exec
/bin/zsh -lc "sed -n '1,260p' .opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/002-sk-doc-skill-readme-asset/checklist.md" in /Users/michelkerkmeester/MEGA/Development/Code_Environment/Public
 succeeded in 0ms:
---
title: "Verification Checklist: sk-doc skill README asset"
description: "Verification checklist for sk-doc skill README asset."
trigger_phrases:
  - "sk-doc skill README asset"
importance_tier: "important"
contextType: "validation"
_memory:
  continuity:
    packet_pointer: ".opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure"
    last_updated_at: "2026-05-10T00:00:00Z"
    last_updated_by: "gpt-5.5"
    recent_action: "Prepared planning documentation"
    next_safe_action: "Run implementation phase"
    blockers: []
    key_files: []
    session_dedup:
      fingerprint: "sha256:0000000000000000000000000000000000000000000000000000000000000000"
      session_id: "102-sk-doc-skill-readme-and-structure"
      parent_session_id: null
    completion_pct: 0
    open_questions: []
    answered_questions: []
---
# Verification Checklist: sk-doc skill README asset

<!-- SPECKIT_LEVEL: 2 -->
<!-- SPECKIT_TEMPLATE_SOURCE: checklist | v2.2 -->

---

<!-- ANCHOR:protocol -->
## Verification Protocol

| Priority | Handling | Completion Impact |
|----------|----------|-------------------|
| **[P0]** | HARD BLOCKER | Cannot claim done until complete |
| **[P1]** | Required | Must complete OR get user approval |
| **[P2]** | Optional | Can defer with documented reason |
<!-- /ANCHOR:protocol -->

---

<!-- ANCHOR:pre-impl -->
## Pre-Implementation

- [x] CHK-001 [P0] Requirements documented in spec.md - REQ-001 through REQ-003 define README analysis, asset creation and wiring.
- [x] CHK-002 [P0] Technical approach defined in plan.md - Plan uses template-first documentation maintenance and exact reference verification.
- [x] CHK-003 [P1] Dependencies identified and available - Phase 1 relocation completed and target sk-doc files existed.
<!-- /ANCHOR:pre-impl -->

---

<!-- ANCHOR:code-quality -->
## Code Quality

- [x] CHK-010 [P0] Documentation paths are valid - `rg -n "skill_readme|assets/skill/.*readme" .opencode/skills/sk-doc` and `test -f .../skill_readme_template.md` passed.
- [x] CHK-011 [P0] No stale references remain - stale playbook grep for `3 resources`, `both skill asset templates`, `all 21 enumerated`, `SKILL_CREATION query, 3`, `median (3 resources)` returned no files.
- [x] CHK-012 [P1] Error handling implemented where scripts change - N/A; no scripts changed.
- [x] CHK-013 [P1] Changes follow project patterns - `skill_readme_template.md` now mirrors `skill_asset_template.md` intro and OVERVIEW pattern.
<!-- /ANCHOR:code-quality -->

---

<!-- ANCHOR:testing -->
## Testing

- [x] CHK-020 [P0] All acceptance criteria met - asset exists and is referenced from `SKILL.md`, `references/skill_creation.md` and manual testing docs.
- [x] CHK-021 [P0] Manual verification complete - package validation and alignment drift checks passed.
- [x] CHK-022 [P1] Edge cases tested - checked stale token-baseline wording and old `## 1. WHEN TO USE` heading absence in the new template.
- [x] CHK-023 [P1] Error scenarios validated - initial patch miss was corrected with smaller context patches, then validations passed.
<!-- /ANCHOR:testing -->

---

<!-- ANCHOR:fix-completeness -->
## Fix Completeness

- [x] CHK-FIX-001 [P0] Each actionable item has a finding class or scope classification - Phase scope classified as asset creation plus routing, guidance and playbook consumer updates.
- [x] CHK-FIX-002 [P0] Same-class producer inventory completed, or instance-only status proven by grep - skill README patterns inventoried via `.opencode/skills/*/README.md` headings.
- [x] CHK-FIX-003 [P0] Consumer inventory completed for changed paths and docs - consumers updated in `SKILL.md`, `skill_creation.md` and relevant playbook scenarios.
- [x] CHK-FIX-004 [P0] Path fixes include adversarial checks for old and new locations - exact searches verified new `skill_readme_template.md` references and stale playbook wording absence.
- [x] CHK-FIX-005 [P1] Matrix axes and row count are listed before completion is claimed - manual testing rows updated for intent, cross-CLI and token-cost axes.
- [x] CHK-FIX-006 [P1] Runtime mirror variant executed where runtime files change - N/A; no runtime mirror files changed.
- [x] CHK-FIX-007 [P1] Evidence is pinned to explicit command output - verification commands and results recorded in `implementation-summary.md`.
<!-- /ANCHOR:fix-completeness -->

---

<!-- ANCHOR:security -->
## Security

- [x] CHK-030 [P0] No hardcoded secrets - documentation/template-only changes contain no credentials.
- [x] CHK-031 [P0] Input validation implemented where commands change - N/A; no commands changed.
- [x] CHK-032 [P1] Agent write-scope boundaries remain explicit - template keeps `SKILL.md` runtime scope distinct from README human orientation.
<!-- /ANCHOR:security -->

---

<!-- ANCHOR:docs -->
## Documentation

- [x] CHK-040 [P1] Spec/plan/tasks synchronized - status, task completion and implementation summary updated.
- [x] CHK-041 [P1] Resource map updated - resource map includes package and alignment verification commands.
- [x] CHK-042 [P2] README updated if applicable - N/A; phase created a README template asset rather than updating an existing skill README.
<!-- /ANCHOR:docs -->

---

<!-- ANCHOR:file-org -->
## File Organization

- [x] CHK-050 [P1] Temp files in scratch/ only - no temporary files created.
- [x] CHK-051 [P1] scratch/ cleaned before completion - no scratch files created.
<!-- /ANCHOR:file-org -->

---

<!-- ANCHOR:summary -->
## Verification Summary

| Category | Total | Verified |
|----------|-------|----------|
| P0 Items | 12 | 12/12 |
| P1 Items | 8 | 8/8 |
| P2 Items | 1 | 1/1 |

**Verification Date**: 2026-05-10
<!-- /ANCHOR:summary -->

exec
/bin/zsh -lc "sed -n '1,220p' .opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/003-markdown-agent-rename/spec.md" in /Users/michelkerkmeester/MEGA/Development/Code_Environment/Public
 succeeded in 0ms:
---
title: "Feature Specification: markdown agent rename"
description: "Rename create documentation agent identity to markdown agent across runtime mirrors and references."
trigger_phrases:
  - "markdown agent rename"
importance_tier: "important"
contextType: "implementation"
_memory:
  continuity:
    packet_pointer: ".opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure"
    last_updated_at: "2026-05-10T00:00:00Z"
    last_updated_by: "gpt-5.5"
    recent_action: "Implemented markdown agent rename across runtime mirrors and create-command references"
    next_safe_action: "Run final verification and save continuity"
    blockers: []
    key_files: []
    session_dedup:
      fingerprint: "sha256:0000000000000000000000000000000000000000000000000000000000000000"
      session_id: "102-sk-doc-skill-readme-and-structure"
      parent_session_id: null
    completion_pct: 100
    open_questions: []
    answered_questions: []
---
# Feature Specification: markdown agent rename

<!-- SPECKIT_LEVEL: 2 -->
<!-- SPECKIT_TEMPLATE_SOURCE: spec-core | v2.2 -->

---

<!-- ANCHOR:metadata -->
## 1. METADATA

| Field | Value |
|-------|-------|
| **Level** | 2 |
| **Priority** | P1 |
| **Status** | Complete |
| **Created** | 2026-05-10 |
| **Branch** | `main` |
| **Parent Spec** | ../spec.md |
| **Phase** | 3 of 3 |
| **Predecessor** | 002-sk-doc-skill-readme-asset |
| **Successor** | None |
<!-- /ANCHOR:metadata -->

---

<!-- ANCHOR:problem -->
## 2. PROBLEM & PURPOSE

### Problem Statement
The documentation authoring agent is currently named create, but the desired long-term identity is markdown. That rename has broad reference impact across runtime agent mirrors, orchestration docs, commands, skills, and root documentation.

### Purpose
Rename the agent identity from create to markdown without changing create command names or breaking documentation workflows.
<!-- /ANCHOR:problem -->

---

<!-- ANCHOR:scope -->
## 3. SCOPE

### In Scope
- Rename runtime agent files from create.md to markdown.md where present.
- Update frontmatter name fields and headings in renamed agent files.
- Update agent identity references while preserving create command names.

### Out of Scope
- Renaming create command invocations is excluded.
- Phase 1 reference relocation and Phase 2 asset creation are excluded.

### Files to Change

| File Path | Change Type | Description |
|-----------|-------------|-------------|
| .opencode/agents/create.md | Move | Rename to markdown.md. |
| .claude/agents/create.md | Move | Rename mirror to markdown.md if present. |
| .gemini/agents/create.md | Move | Rename mirror to markdown.md if present. |
| .codex/agents/create.toml | Move | Rename Codex mirror to markdown.toml if present. |
| AGENTS.md | Modify | Update agent identity references. |
| .opencode/agents/orchestrate.md | Modify | Route documentation execution to markdown agent. |
| .opencode/agents/code.md | Modify | Update component-authoring conflict guidance. |
| .claude/agents/orchestrate.md | Modify | Update Claude mirror routing references. |
| .claude/agents/code.md | Modify | Update Claude mirror conflict guidance. |
| .gemini/agents/orchestrate.md | Modify | Update Gemini mirror routing references. |
| .gemini/agents/code.md | Modify | Update Gemini mirror conflict guidance. |
| .codex/agents/orchestrate.toml | Modify | Update Codex mirror routing references. |
| .codex/agents/code.toml | Modify | Update Codex mirror conflict guidance. |
| .opencode/commands/create/** | Modify | Update Phase 0 agent identity while preserving `/create:*` commands. |
| .opencode/skills/sk-doc/assets/agent_template.md | Modify | Update production agent example inventory. |
<!-- /ANCHOR:scope -->

---

<!-- ANCHOR:requirements -->
## 4. REQUIREMENTS

### P0 - Blockers (MUST complete)

| ID | Requirement | Acceptance Criteria |
|----|-------------|---------------------|
| REQ-001 | Rename agent files in runtime directories. | markdown.md exists where source create.md existed. |

### P1 - Required (complete OR user-approved deferral)

| ID | Requirement | Acceptance Criteria |
|----|-------------|---------------------|
| REQ-002 | Update agent identity references. | Agent references use markdown identity except preserved create commands. |
| REQ-003 | Preserve command-family names. | create command names remain unchanged. |
<!-- /ANCHOR:requirements -->

---

<!-- ANCHOR:success-criteria -->
## 5. SUCCESS CRITERIA

- **SC-001**: Phase deliverables are implemented and verified.
- **SC-002**: Handoff criteria are ready for the next phase.
<!-- /ANCHOR:success-criteria -->

---

<!-- ANCHOR:risks -->
## 6. RISKS & DEPENDENCIES

| Type | Item | Impact | Mitigation |
|------|------|--------|------------|
| Risk | Over-renaming command references | Command docs become inaccurate | Classify each match before editing. |
| Risk | Runtime mirror drift | One CLI runtime may keep stale create.md | Verify all runtime dirs. |
<!-- /ANCHOR:risks -->

---

<!-- ANCHOR:questions -->

---

<!-- ANCHOR:nfr -->
## L2: NON-FUNCTIONAL REQUIREMENTS

### Performance
- **NFR-P01**: Reference searches complete within normal repo-search time.
- **NFR-P02**: Documentation changes avoid duplicate source-of-truth files.

### Security
- **NFR-S01**: No secrets or credentials are introduced.
- **NFR-S02**: Agent policy changes preserve explicit write-scope boundaries.

### Reliability
- **NFR-R01**: All referenced paths resolve after implementation.
- **NFR-R02**: Runtime mirror updates remain consistent where mirrors exist.
<!-- /ANCHOR:nfr -->

---

<!-- ANCHOR:edge-cases -->
## L2: EDGE CASES

### Data Boundaries
- Missing optional runtime mirror: document as not applicable.
- Existing command-family references: preserve when they refer to create commands.
- Historical notes: leave only if explicitly marked historical.

### Error Scenarios
- Validation failure: stop and fix within this phase.
- Search ambiguity: classify matches before editing.
- Partial completion: do not start the next phase until handoff criteria pass.

### State Transitions
- Draft to active: implementation begins.
- Active to complete: validation evidence recorded.
<!-- /ANCHOR:edge-cases -->

---

<!-- ANCHOR:complexity -->
## L2: COMPLEXITY ASSESSMENT

| Dimension | Score | Notes |
|-----------|-------|-------|
| Scope | 18/25 | Multi-file documentation and runtime-surface changes. |
| Risk | 16/25 | Path/reference drift is the main risk. |
| Research | 14/20 | Requires exact searches and pattern review. |
| **Total** | **48/70** | **Level 2** |
<!-- /ANCHOR:complexity -->

---

## 10. OPEN QUESTIONS

- None blocking planning.
<!-- /ANCHOR:questions -->

exec
/bin/zsh -lc "sed -n '1,220p' .opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/004-sk-doc-playbook-markdown-agent-coverage/spec.md" in /Users/michelkerkmeester/MEGA/Development/Code_Environment/Public
 succeeded in 0ms:
---
title: "Feature Specification: sk-doc playbook markdown-agent coverage"
description: "Add a 06--agent-dispatch section to the sk-doc manual testing playbook with three scenarios that dispatch the @markdown agent across cli-claude-code, cli-codex, and cli-opencode."
trigger_phrases:
  - "sk-doc playbook markdown agent"
  - "markdown agent dispatch coverage"
importance_tier: "important"
contextType: "implementation"
_memory:
  continuity:
    packet_pointer: ".opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/004-sk-doc-playbook-markdown-agent-coverage"
    last_updated_at: "2026-05-11T00:00:00Z"
    last_updated_by: "claude-opus-4-7"
    recent_action: "Authored Level 2 spec for sk-doc playbook markdown-agent coverage"
    next_safe_action: "Author scenario files SD-018, SD-019, SD-020 and execute them"
    blockers: []
    key_files: []
    session_dedup:
      fingerprint: "sha256:0000000000000000000000000000000000000000000000000000000000000000"
      session_id: "102-004-sk-doc-playbook-markdown-agent-coverage"
      parent_session_id: null
    completion_pct: 0
    open_questions: []
    answered_questions: []
---
# Feature Specification: sk-doc playbook markdown-agent coverage

<!-- SPECKIT_LEVEL: 2 -->
<!-- SPECKIT_TEMPLATE_SOURCE: spec-core | v2.2 -->

---

<!-- ANCHOR:metadata -->
## 1. METADATA

| Field | Value |
|-------|-------|
| **Level** | 2 |
| **Priority** | P1 |
| **Status** | Draft |
| **Created** | 2026-05-11 |
| **Branch** | `main` |
| **Parent Spec** | ../spec.md |
| **Phase** | 4 of 4 |
| **Predecessor** | 003-markdown-agent-rename |
| **Successor** | None |
<!-- /ANCHOR:metadata -->

---

<!-- ANCHOR:problem -->
## 2. PROBLEM & PURPOSE

### Problem Statement
Phase 003 introduced the `@markdown` agent as the dedicated sk-doc documentation executor, but the sk-doc manual testing playbook was not updated. The playbook has zero scenarios that dispatch `@markdown` as an executor. Its preamble even claims "Each of the 3 CLI runtimes (cli-codex, cli-opencode)" — admitting an unfilled third-CLI slot. The dedicated documentation executor is therefore untested by the very playbook that owns sk-doc routing validation.

### Purpose
Close the gap: add a new `06--agent-dispatch/` section with three scenarios that actually dispatch the `@markdown` agent for `/create:changelog` across cli-claude-code, cli-codex, and cli-opencode; fix the playbook preamble to list the third CLI; execute the scenarios and persist evidence.
<!-- /ANCHOR:problem -->

---

<!-- ANCHOR:scope -->
## 3. SCOPE

### In Scope
- Add new playbook section `.opencode/skills/sk-doc/manual_testing_playbook/06--agent-dispatch/` with three scenario files (SD-018, SD-019, SD-020).
- Update `.opencode/skills/sk-doc/manual_testing_playbook/manual_testing_playbook.md` index, preamble, Categories table, and Scenario Index.
- Execute each of the three scenarios sequentially (no parallel dispatch per CLI-dispatch reliability constraint).
- Capture evidence (prompt, transcript, intent, resources, latency, verdict) per playbook §Pass/Fail Grading.
- Persist evidence under `.opencode/specs/.../004-.../evidence/`.

### Out of Scope
- Scenarios for cli-copilot and cli-gemini (limited to the 3-CLI preamble intent per user decision).
- Refactoring existing scenarios 1-5 (`01--intent-detection/` through `05--token-cost-baseline/`).
- Modifying the `@markdown` agent itself, sk-doc SKILL.md routing logic, or the `/create:*` command surfaces.
- Re-running 003's existing 4-iteration deep-review.

### Files to Change

| File Path | Change Type | Description |
|-----------|-------------|-------------|
| `.opencode/skills/sk-doc/manual_testing_playbook/06--agent-dispatch/` | Create dir | New section folder. |
| `.opencode/skills/sk-doc/manual_testing_playbook/06--agent-dispatch/001-markdown-agent-cli-claude-code.md` | Create | SD-018 scenario. |
| `.opencode/skills/sk-doc/manual_testing_playbook/06--agent-dispatch/002-markdown-agent-cli-codex.md` | Create | SD-019 scenario. |
| `.opencode/skills/sk-doc/manual_testing_playbook/06--agent-dispatch/003-markdown-agent-cli-opencode.md` | Create | SD-020 scenario. |
| `.opencode/skills/sk-doc/manual_testing_playbook/manual_testing_playbook.md` | Modify | Preamble fix + Categories table + Scenario Index + Global Preconditions note. |
| `.opencode/specs/.../004-.../evidence/SD-018-cli-claude-code.txt` | Create | Evidence transcript for SD-018. |
| `.opencode/specs/.../004-.../evidence/SD-019-cli-codex.txt` | Create | Evidence transcript for SD-019. |
| `.opencode/specs/.../004-.../evidence/SD-020-cli-opencode.txt` | Create | Evidence transcript for SD-020. |
<!-- /ANCHOR:scope -->

---

<!-- ANCHOR:requirements -->
## 4. REQUIREMENTS

### P0 - Blockers (MUST complete)

| ID | Requirement | Acceptance Criteria |
|----|-------------|---------------------|
| REQ-001 | Create three scenario files under `06--agent-dispatch/`. | `find .../06--agent-dispatch -name "*.md"` returns 3 files. |
| REQ-002 | Each scenario dispatches `@markdown` via its named CLI for the same comparable task. | YAML frontmatter has `execution_mode: dispatch_real` and Setup block uses the real CLI invocation, not the routing-trace `DO NOT execute` block. |
| REQ-003 | Fix the playbook preamble line that claims 3 CLI runtimes but lists 2. | Line currently reading `(cli-codex, cli-opencode)` updated to `(cli-codex, cli-opencode, cli-claude-code)`. |
| REQ-004 | Execute all three scenarios and capture evidence. | Three evidence files exist; each contains a PASS/PARTIAL/FAIL/SKIP verdict. |

### P1 - Required (complete OR user-approved deferral)

| ID | Requirement | Acceptance Criteria |
|----|-------------|---------------------|
| REQ-005 | Register new section in the playbook index: Categories table + Scenario Index. | `grep -c "06--agent-dispatch" manual_testing_playbook.md` returns ≥ 2. |
| REQ-006 | Note in Global Preconditions that section 6 scenarios execute real work. | Note added below precondition 5. |
| REQ-007 | Populate `implementation-summary.md` with the cross-CLI results table after Stage D completes. | Table has 3 rows (SD-018/019/020) with verdict + key evidence-file path each. |
<!-- /ANCHOR:requirements -->

---

<!-- ANCHOR:success-criteria -->
## 5. SUCCESS CRITERIA

- **SC-001**: Section `06--agent-dispatch/` exists with three scenarios; playbook index references all three.
- **SC-002**: Each scenario was executed via its named CLI and produced a verdict with reproducible evidence.
- **SC-003**: Preamble inconsistency is resolved (third CLI listed).
<!-- /ANCHOR:success-criteria -->

---

<!-- ANCHOR:risks -->
## 6. RISKS & DEPENDENCIES

| Type | Item | Impact | Mitigation |
|------|------|--------|------------|
| Risk | DeepSeek tool-name regex rejects MCP names with `:` or `@` | cli-opencode dispatch may 400 against opencode skills index | Use `--pure` flag; pre-check vendored `node_modules/**/SKILL.md` paths. |
| Risk | CLI dispatch parallelism is unreliable (memory) | Concurrent runs silently fail or partially revert | Run the 3 scenarios sequentially, not in parallel. |
| Risk | Codex sandbox blocks sub-process network calls | sk-doc / `@markdown` could fail if embeddings or remote tools fire | Pass `-c sandbox_workspace_write.network_access=true` to `codex exec`. |
| Risk | `opencode run` hangs on stdin when stdout is redirected | Background dispatch silently stalls | Always append `</dev/null` to `opencode run` invocations. |
| Dependency | `@markdown` agent + `/create:*` command family must already be wired | Scenarios will fail with the agent unrouted | Verified shipped by 003-markdown-agent-rename + commit `ca2d9e094`. |
<!-- /ANCHOR:risks -->

---

<!-- ANCHOR:nfr -->
## L2: NON-FUNCTIONAL REQUIREMENTS

### Performance
- **NFR-P01**: Each scenario completes within 5 minutes of dispatch time (CLI cold-start + scaffold).
- **NFR-P02**: Evidence files stay under 50 KB each (transcript truncation if needed).

### Security
- **NFR-S01**: No secrets, tokens, or API keys persisted into evidence files.
- **NFR-S02**: Stub skill `sk-test-dummy` lives only in `evidence/` or `scratch/`, never under `.opencode/skills/` proper.

### Reliability
- **NFR-R01**: Each evidence file is reproducible by re-running its scenario's Setup block.
- **NFR-R02**: Verdicts use the existing playbook §Pass/Fail Grading rubric — no bespoke grading scheme.
<!-- /ANCHOR:nfr -->

---

<!-- ANCHOR:edge-cases -->
## L2: EDGE CASES

### Data Boundaries
- Missing CLI binary: scenario records SKIP with the missing-binary blocker.
- Provider auth missing (e.g. `opencode providers list` lacks DeepSeek): scenario records SKIP with the auth blocker.
- `@markdown` agent not routed by a CLI's runtime: scenario records FAIL with routing-trace evidence.

### Error Scenarios
- Network refusal under codex sandbox: re-run with `-c sandbox_workspace_write.network_access=true`.
- DeepSeek 400 on tool-name regex: re-run with `--pure`.
- opencode hang on stdin: re-run with `</dev/null`.

### State Transitions
- Draft to active: scenario authoring complete, ready for execution.
- Active to complete: all three verdicts recorded with evidence-file pointers.
<!-- /ANCHOR:edge-cases -->

---

<!-- ANCHOR:complexity -->
## L2: COMPLEXITY ASSESSMENT

| Dimension | Score | Notes |
|-----------|-------|-------|
| Scope | 12/25 | 3 scenario files + 1 index update + 3 evidence files. |
| Risk | 14/25 | CLI dispatch reliability + DeepSeek tool-name + sandbox network. |
| Research | 6/20 | Patterns established; just need execution + capture. |
| **Total** | **32/70** | **Level 2** |
<!-- /ANCHOR:complexity -->

---

<!-- ANCHOR:questions -->
## 7. OPEN QUESTIONS

- None blocking planning.
<!-- /ANCHOR:questions -->

exec
/bin/zsh -lc "sed -n '1,320p' .opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/004-sk-doc-playbook-markdown-agent-coverage/checklist.md" in /Users/michelkerkmeester/MEGA/Development/Code_Environment/Public
 succeeded in 0ms:
---
title: "Verification Checklist: sk-doc playbook markdown-agent coverage"
description: "Verification checklist for adding @markdown × 3-CLI scenarios to the sk-doc manual testing playbook."
trigger_phrases:
  - "sk-doc playbook markdown agent"
importance_tier: "important"
contextType: "validation"
_memory:
  continuity:
    packet_pointer: ".opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/004-sk-doc-playbook-markdown-agent-coverage"
    last_updated_at: "2026-05-11T00:00:00Z"
    last_updated_by: "claude-opus-4-7"
    recent_action: "Authored Level 2 verification checklist"
    next_safe_action: "Mark items as verification completes"
    blockers: []
    key_files: []
    session_dedup:
      fingerprint: "sha256:0000000000000000000000000000000000000000000000000000000000000000"
      session_id: "102-004-sk-doc-playbook-markdown-agent-coverage"
      parent_session_id: null
    completion_pct: 0
    open_questions: []
    answered_questions: []
---
# Verification Checklist: sk-doc playbook markdown-agent coverage

<!-- SPECKIT_LEVEL: 2 -->
<!-- SPECKIT_TEMPLATE_SOURCE: checklist | v2.2 -->

---

<!-- ANCHOR:protocol -->
## Verification Protocol

| Priority | Handling | Completion Impact |
|----------|----------|-------------------|
| **[P0]** | HARD BLOCKER | Cannot claim done until complete |
| **[P1]** | Required | Must complete OR get user approval |
| **[P2]** | Optional | Can defer with documented reason |
<!-- /ANCHOR:protocol -->

---

<!-- ANCHOR:pre-impl -->
## Pre-Implementation

- [ ] CHK-001 [P0] Requirements documented in spec.md.
- [ ] CHK-002 [P0] Technical approach defined in plan.md.
- [ ] CHK-003 [P1] Dependencies identified and available (4 runtime agent mirrors present; `/create:changelog` reachable).
<!-- /ANCHOR:pre-impl -->

---

<!-- ANCHOR:code-quality -->
## Code Quality

- [ ] CHK-010 [P0] Three scenario files exist under `06--agent-dispatch/`.
- [ ] CHK-011 [P0] Each scenario YAML frontmatter has `execution_mode: dispatch_real` (distinguishes from routing-trace scenarios).
- [ ] CHK-012 [P1] Scenario shape mirrors SD-010 (sections present: Overview, Scenario Contract, Test Execution table, Setup, Expected Behavior, Success Criteria, Source Metadata).
- [ ] CHK-013 [P1] Each scenario uses the same task (`/create:changelog` for `sk-test-dummy v0.1.0`) so results are comparable across CLIs.
<!-- /ANCHOR:code-quality -->

---

<!-- ANCHOR:testing -->
## Testing

- [ ] CHK-020 [P0] All 3 scenarios executed against their named CLI.
- [ ] CHK-021 [P0] Each evidence file contains a verdict footer line (PASS / PARTIAL / FAIL / SKIP).
- [ ] CHK-022 [P1] Each evidence file shows the `@markdown` agent received the task (routing trace).
- [ ] CHK-023 [P1] Each evidence file shows sk-doc resources were loaded (resource trace).
<!-- /ANCHOR:testing -->

---

<!-- ANCHOR:fix-completeness -->
## Fix Completeness

- [ ] CHK-FIX-001 [P0] Each scenario is classified as `dispatch_real` (not routing-trace) — verified via frontmatter `execution_mode`.
- [ ] CHK-FIX-002 [P0] Cross-consumer inventory: playbook index references the new section in Categories + Scenario Index.
- [ ] CHK-FIX-003 [P0] Consumer inventory: preamble Global Preconditions notes the execution-real distinction for section 6.
- [ ] CHK-FIX-004 [P0] Dispatch reliability: scenarios run sequentially (not in parallel) per memory hint on CLI dispatch unreliability.
- [ ] CHK-FIX-005 [P1] Matrix axes: CLI × task; row count = 3 (3 CLIs × 1 task).
- [ ] CHK-FIX-006 [P1] Each CLI's specific gotcha is handled in its Setup block (codex `service_tier=fast` + network-access; opencode `--pure` + `</dev/null`).
- [ ] CHK-FIX-007 [P1] Evidence is pinned to actual transcript content, not summary paraphrase.
<!-- /ANCHOR:fix-completeness -->

---

<!-- ANCHOR:security -->
## Security

- [ ] CHK-030 [P0] No secrets/tokens/API keys persisted into evidence transcripts.
- [ ] CHK-031 [P0] Stub skill `sk-test-dummy` lives only under `evidence/` or `/tmp/`, never under `.opencode/skills/` proper.
- [ ] CHK-032 [P1] Each scenario's prompt explicitly forbids installation into the skills tree.
<!-- /ANCHOR:security -->

---

<!-- ANCHOR:docs -->
## Documentation

- [ ] CHK-040 [P1] spec.md / plan.md / tasks.md continuity blocks synchronized to `completion_pct: 100`.
- [ ] CHK-041 [P1] `implementation-summary.md` populated with 3-row cross-CLI results table.
- [ ] CHK-042 [P2] Parent `102/spec.md` Phase Documentation Map references phase 4 / 004 row.
<!-- /ANCHOR:docs -->

---

<!-- ANCHOR:file-org -->
## File Organization

- [ ] CHK-050 [P1] Evidence files live under `004/evidence/` only.
- [ ] CHK-051 [P1] `scratch/` cleaned before completion (contains only `.gitkeep`).
<!-- /ANCHOR:file-org -->

---

<!-- ANCHOR:summary -->
## Verification Summary

| Category | Total | Verified |
|----------|-------|----------|
| P0 Items | 12 | 0/12 |
| P1 Items | 8 | 0/8 |
| P2 Items | 1 | 0/1 |

**Verification Date**: [YYYY-MM-DD]
<!-- /ANCHOR:summary -->

exec
/bin/zsh -lc "sed -n '1,240p' .opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/004-sk-doc-playbook-markdown-agent-coverage/implementation-summary.md" in /Users/michelkerkmeester/MEGA/Development/Code_Environment/Public
 succeeded in 0ms:
---
title: "Implementation Summary: sk-doc playbook markdown-agent coverage"
description: "Added 06--agent-dispatch section with 3 @markdown × CLI scenarios; executed all three; ran 5-iter deep-review (converged early)."
trigger_phrases:
  - "sk-doc playbook markdown agent"
importance_tier: "important"
contextType: "implementation"
_memory:
  continuity:
    packet_pointer: ".opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/004-sk-doc-playbook-markdown-agent-coverage"
    last_updated_at: "2026-05-11T09:10:00Z"
    last_updated_by: "claude-opus-4-7"
    recent_action: "Deep-review converged"
    next_safe_action: "Resolve F-001 remediation path"
    blockers: []
    key_files:
      - ".opencode/skills/sk-doc/manual_testing_playbook/06--agent-dispatch/001-markdown-agent-cli-claude-code.md"
      - ".opencode/skills/sk-doc/manual_testing_playbook/06--agent-dispatch/002-markdown-agent-cli-codex.md"
      - ".opencode/skills/sk-doc/manual_testing_playbook/06--agent-dispatch/003-markdown-agent-cli-opencode.md"
      - "evidence/SD-018-cli-claude-code.txt"
      - "evidence/SD-019-cli-codex.txt"
      - "evidence/SD-020-cli-opencode.txt"
      - "../review/deep-review-dashboard.md"
      - "../review/review-report.md"
    session_dedup:
      fingerprint: "sha256:0000000000000000000000000000000000000000000000000000000000000000"
      session_id: "102-004-sk-doc-playbook-markdown-agent-coverage"
      parent_session_id: null
    completion_pct: 90
    open_questions:
      - "F-001 SD-019 remediation path: new 102/005 packet OR documented accepted limitation?"
    answered_questions: []
---
<!-- SPECKIT_TEMPLATE_SOURCE: impl-summary-core | v2.2 -->
# Implementation Summary: sk-doc playbook markdown-agent coverage

<!-- SPECKIT_LEVEL: 2 -->
<!-- HVR_REFERENCE: .opencode/skills/sk-doc/references/hvr_rules.md -->

This packet closed the documented gap in the sk-doc manual testing playbook: zero scenarios exercised the `@markdown` agent (the dedicated documentation executor renamed in 102/003), and the preamble admitted "3 CLI runtimes" while listing only 2. We added a new `06--agent-dispatch/` section with three `dispatch_real` scenarios (SD-018/019/020) that actually invoke `@markdown` across cli-claude-code, cli-codex, and cli-opencode (DeepSeek v4 Pro direct API), executed all three sequentially, captured evidence, and ran a 5-iteration deep-review that converged early via the workflow's stop-score detector (weighted 0.798 > 0.60 threshold).

---

<!-- ANCHOR:metadata -->
## Metadata

| Field | Value |
|-------|-------|
| **Spec Folder** | 004-sk-doc-playbook-markdown-agent-coverage |
| **Completed** | 2026-05-11 (Stages B-E) |
| **Level** | 2 |
| **Verdict** | CONDITIONAL (review-report.md) |
<!-- /ANCHOR:metadata -->

---

<!-- ANCHOR:what-built -->
## What Was Built

### Authoring (Stage C)
- New playbook section `.opencode/skills/sk-doc/manual_testing_playbook/06--agent-dispatch/` with three scenario files
- SD-018: `@markdown` via cli-claude-code
- SD-019: `@markdown` via cli-codex (gpt-5.5/fast + sandbox network-access)
- SD-020: `@markdown` via cli-opencode + DeepSeek v4 Pro DIRECT API (`deepseek/deepseek-v4-pro`, `--pure`, `--variant high`, `</dev/null`)
- Playbook index updates: preamble third-CLI fix, Categories row #6, Scenario Index block, Global Preconditions note distinguishing execution-real (sec 6) from routing-trace (secs 1-5)

### Execution (Stage D)
- All three scenarios dispatched sequentially against their named CLI; transcripts persisted under `evidence/`
- SD-018: ~57s, PASS
- SD-019: ~120s, FAIL (high-value finding)
- SD-020: PASS

### Review (Stage E)
- 5-iter deep-review via `cli-opencode` + `deepseek/deepseek-v4-pro` (DIRECT DeepSeek API)
- Converged at iter 4 (weighted stop 0.798 > 0.60); 0 P0, 7 P1, 9 P2 findings across 37 files
- Artifacts in `../review/`: dashboard, report, state JSONL, strategy, findings-registry, 5 iteration files

### Spec packet (Stage B)
- Created `004-sk-doc-playbook-markdown-agent-coverage/` with full Level 2 docs (spec/plan/tasks/checklist/implementation-summary + description.json + graph-metadata.json)
- Parent `102/spec.md`: Phase Count 3→4, Status Draft→Active, phase-4 row + 003→004 handoff added
- Parent `102/graph-metadata.json`: children_ids array now has 4 entries, derived.status planned→active, last_active_child_id pointed at 004
<!-- /ANCHOR:what-built -->

---

<!-- ANCHOR:how-delivered -->
## How It Was Delivered

### Approach
1. **Stage A** (read-only): synthesized 102 inventory in chat (no file written)
2. **Stage B**: ran `create.sh --phase --phase-parent ... --phases 1` (with `--skip-branch`); manually replaced scaffold-template content; merged the duplicate Phase Documentation Map into the original section; refreshed parent graph-metadata `children_ids` + `derived.status` + `last_active_child_id` manually (per memory hint)
3. **Stage C**: authored scenarios mirroring `04--cross-cli-dispatch/001-short-prompt-baseline.md` shape but with `execution_mode: dispatch_real` frontmatter and a real CLI Setup block (replacing the `DO NOT execute` routing-trace wrapper); fixed the preamble third-CLI gap; added Categories row + Scenario Index + Preconditions note
4. **Stage D**: dispatched each CLI sequentially (memory hint: parallelism unreliable); appended verdict footer to each transcript after grading
5. **Stage E**: dispatched `/spec_kit:deep-review:auto` via cli-opencode + DeepSeek v4 Pro direct API. First attempt hung on setup-phase gate (Q1_type / Q-Exec / phase-parent scope). Killed and re-dispatched with all setup answers pre-bound in the prompt — successful, workflow loaded YAML, ran 5 iterations, converged early via weighted-stop-score detector

### Cross-CLI Execution Results

| Scenario | CLI | Provider | @markdown invoked | sk-doc loaded | Output file | Verdict |
|----------|-----|----------|-------------------|---------------|-------------|---------|
| SD-018 | cli-claude-code | Claude Opus 4.7 | ✓ (3 hits) | ✓ (2 hits) | ✓ (2134 bytes) | **PASS** |
| SD-019 | cli-codex | gpt-5.5/fast | ✗ ("unavailable") | ✗ | ✗ | **FAIL** |
| SD-020 | cli-opencode | deepseek/deepseek-v4-pro (DIRECT) | ✓ (8 hits) | ✓ (8 hits) | ✓ (1464 bytes) | **PASS** |

Pass rate: **2/3** (66.7%). The single FAIL surfaced a real cli-codex dispatch gap that 003's implementation summary did not flag.
<!-- /ANCHOR:how-delivered -->

---

<!-- ANCHOR:decisions -->
## Key Decisions

1. **3-CLI scope, not 5** — user-selected breadth matching the playbook preamble intent (cli-codex + cli-opencode + cli-claude-code). cli-copilot + cli-gemini explicitly out of scope.
2. **New child packet (102/004), not new track 103** — user-selected; natural extension of the 102 umbrella (sk-doc structure work that 003 introduced @markdown for).
3. **Same task across all 3 scenarios** — `/create:changelog` for stub `sk-test-dummy` so cross-CLI verdicts are comparable.
4. **Output to `/tmp/` only** — NFR-S02: never install stub skill under `.opencode/skills/`. Prompt explicitly forbids installation.
5. **Phase-parent review target** — single 10-iter run (user choice; matched "all work done in 102" wording).
6. **DeepSeek DIRECT API, not opencode-go gateway** — model id `deepseek/deepseek-v4-pro` per user wording "through deepseek api".
7. **Setup answers pre-bound for Stage E re-dispatch** — `/spec_kit:deep-review:auto` setup phase has a mandatory question block that hangs on stdin EOF in `--pure` non-interactive mode. Worked around by embedding all answers in the dispatch prompt; should be filed as F-Stage-E-001 ergonomics gap.
<!-- /ANCHOR:decisions -->

---

<!-- ANCHOR:verification -->
## Verification

| Check | Command | Result |
|-------|---------|--------|
| Section folder exists | `find .opencode/skills/sk-doc/manual_testing_playbook/06--agent-dispatch -name "*.md" \| wc -l` | 3 |
| Preamble fixed | `grep -n "(cli-codex, cli-opencode, cli-claude-code)" manual_testing_playbook.md` | Line 87, 1 hit |
| Categories table updated | `grep -n "Agent Dispatch" manual_testing_playbook.md` | Line 42, 1 hit |
| Scenario Index updated | `grep -c "SD-01[89]\\|SD-020" manual_testing_playbook.md` | ≥3 |
| Evidence captured | `ls 004/evidence/*.txt \| wc -l` | 3 |
| Parent graph-metadata refreshed | `jq '.children_ids \| length' 102/graph-metadata.json` | 4 |
| Spec validator (non-strict) | `bash validate.sh 004` | PASSED (0/0 after final refactor) |
| Deep-review converged | `cat 102/review/deep-review-dashboard.md` | 5 iter, 0 P0, 7 P1, 9 P2 |
<!-- /ANCHOR:verification -->

---

<!-- ANCHOR:limitations -->
## Known Limitations

### Open: F-001 SD-019 remediation path (user decision required)
The SD-019 FAIL surfaced a real cli-codex `@markdown` dispatch gap. The `.codex/config.toml` registry IS wired correctly, but `codex exec` in non-interactive mode falls back to a sub-agent path that hits Gate 3 spec-folder hard-block. Remediation requires either:
- A new packet (102/005 recommended) to investigate and fix codex's agent-resolution flow for `@markdown` under `codex exec`, OR
- Documenting SD-019 as an accepted limitation (interactive-only `@markdown` dispatch under codex) and updating SD-019's scenario file to mark it `expected_skip_in_non_interactive: true`

### Deep-review verdict: CONDITIONAL (7 P1 findings)
Most P1s are metadata-sync items (Phase 2 Draft vs Complete, 004 spec Draft vs shipped, 003→004 handoff doesn't note SD-019 gap, child phase "N of 3" → "N of 4"). These are quick fixes (~15 min). The structural P1 is the F-001 remediation question above. Full list in `../review/deep-review-dashboard.md` §Findings.

### F-Stage-E-001 (new): `/spec_kit:deep-review:auto` setup-phase stdin hang
First dispatch hung 3 minutes on the setup-phase question and exited cleanly on stdin EOF. The `:auto` suffix is supposed to be non-interactive, but the markdown-entry setup gate still asks. Workaround: pre-bind all setup answers in the dispatch prompt. Worth filing as a separate deep-review-skill packet to make `:auto` truly non-interactive.

### Format-vs-grading mismatch (F-003 confirmed by review)
sk-doc's compact-changelog format (`## What Changed → #### New Features`) is canonical, but our scenario success criteria used Keep-a-Changelog raw section names. PASS verdicts held because agent + resource trace probes were the load-bearing checks; section-count was a soft check.
<!-- /ANCHOR:limitations -->

exec
/bin/zsh -lc "sed -n '1,80p' .opencode/skills/sk-doc/manual_testing_playbook/06--agent-dispatch/002-markdown-agent-cli-codex.md" in /Users/michelkerkmeester/MEGA/Development/Code_Environment/Public
 succeeded in 0ms:
---
id: SD-019
category: 06--agent-dispatch
title: '@markdown agent dispatch via cli-codex'
execution_mode: dispatch_real
expected_intent: CHANGELOG
expected_agent: '@markdown'
expected_resources:
  - assets/changelog_template.md
  - references/changelog_creation.md
expected_token_range_input: 400-1500
expected_token_range_output: 1500-4000
created: 2026-05-11
---

# SD-019: @markdown agent dispatch via cli-codex

## 1. OVERVIEW

This scenario validates that `cli-codex` (gpt-5.5/fast/high) correctly routes a `/create:changelog` task to the `@markdown` agent and that the agent loads sk-doc CHANGELOG resources before scaffolding the output.

### Why This Matters

cli-codex runs in a workspace-write sandbox by default that blocks sub-process network calls (memory: `feedback_codex_sandbox_blocks_network.md`). For sk-doc dispatch to succeed, the codex invocation must explicitly enable network access and the `fast` service tier (memory: `feedback_codex_cli_fast_mode.md`). This scenario tests that the codex pathway honors the `@markdown` rename under those constraints.

---

## 2. SCENARIO CONTRACT

- Real user request: scaffold a v0.1.0 changelog for a stub skill via the `@markdown` agent
- Prompt: `Use the @markdown agent to scaffold a v0.1.0 changelog for a stub skill named sk-test-dummy via /create:changelog. Write the result to /tmp/sk-test-dummy-CHANGELOG-cli-codex.md. Do NOT install the stub skill into the .opencode/skills/ tree. Report which agent received the work, which sk-doc resources were loaded, and the changelog sections produced.`
- Expected intent: `CHANGELOG`
- Expected executor: `@markdown` agent (NOT `@code`, NOT direct sk-doc invocation)
- Desired user-visible outcome: A scaffolded changelog file at `/tmp/sk-test-dummy-CHANGELOG-cli-codex.md` with Keep-a-Changelog sections, plus a transcript showing `@markdown` Phase 0 verification ran before the YAML workflow loaded.

## 3. TEST EXECUTION

| Feature ID | Feature Name | Scenario Name / Objective | Exact Prompt | Exact Command Sequence | Expected Signals | Evidence | Pass/Fail Criteria | Failure Triage |
|---|---|---|---|---|---|---|---|---|
| SD-019 | @markdown via cli-codex | Verify `@markdown` agent receives `/create:changelog` work dispatched through cli-codex. | See Setup. | See Setup. | `@markdown` Phase 0 verification text appears in transcript; CHANGELOG asset reference appears; output file written. | Transcript + output changelog content. | PASS when `@markdown` invocation appears AND output file exists AND has Keep-a-Changelog sections. PARTIAL if `@markdown` invoked but output incomplete. FAIL if a different agent answered. SKIP if `codex` binary unavailable. | Re-check `.codex/agents/markdown.toml` exists; verify `.codex/config.toml` registers `agents.markdown`; verify network-access + fast flags applied. |

### Setup

This scenario EXECUTES real work — it is not a routing-trace probe.

Memory-mandated flags:
- `-c service_tier="fast"` (cli-codex fast mode must be explicit — never rely on global default)
- `-c sandbox_workspace_write.network_access=true` (sandbox blocks sub-process network without this; embeddings / API calls would fail)

```bash
PROMPT='Use the @markdown agent to scaffold a v0.1.0 changelog for a stub skill named sk-test-dummy via /create:changelog. Write the result to /tmp/sk-test-dummy-CHANGELOG-cli-codex.md. Do NOT install the stub skill into the .opencode/skills/ tree. Report which agent received the work, which sk-doc resources were loaded, and the changelog sections produced.'

EVIDENCE='/Users/michelkerkmeester/MEGA/Development/Code_Environment/Public/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/004-sk-doc-playbook-markdown-agent-coverage/evidence/SD-019-cli-codex.txt'

# Dispatch via cli-codex (gpt-5.5/fast)
codex exec \
  -c service_tier="fast" \
  -c sandbox_workspace_write.network_access=true \
  "$PROMPT" </dev/null 2>&1 | tee "$EVIDENCE"

# Append verdict footer manually after grading
```

After the dispatch returns, run the grading probes against the evidence transcript:

```bash
# Routing trace: @markdown must appear
grep -c '@markdown\|markdown agent\|Phase 0\|agents.markdown\|markdown.toml' "$EVIDENCE"

# Resource trace: changelog template must be referenced
grep -c 'changelog_template\|changelog_creation\|Keep-a-Changelog' "$EVIDENCE"

# Output existence + shape
test -f /tmp/sk-test-dummy-CHANGELOG-cli-codex.md && \
  grep -cE '^## .*(Added|Changed|Fixed|Removed)' /tmp/sk-test-dummy-CHANGELOG-cli-codex.md
```

## Expected Behavior

- **Intent picked**: `CHANGELOG`

codex
I found the target rows and checklist states. The patch is mostly metadata/status synchronization plus evidence text; I’m not expanding scope beyond the nine listed files.
exec
/bin/zsh -lc "sed -n '241,520p' .opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/004-sk-doc-playbook-markdown-agent-coverage/implementation-summary.md" in /Users/michelkerkmeester/MEGA/Development/Code_Environment/Public
 succeeded in 0ms:
exec
/bin/zsh -lc "sed -n '81,180p' .opencode/skills/sk-doc/manual_testing_playbook/06--agent-dispatch/002-markdown-agent-cli-codex.md" in /Users/michelkerkmeester/MEGA/Development/Code_Environment/Public
 succeeded in 0ms:
- **Executor**: `@markdown` agent (Codex resolves via `.codex/config.toml` `[agents.markdown]` → `.codex/agents/markdown.toml`)
- **Resources loaded**:
  - `.opencode/skills/sk-doc/assets/changelog_template.md`
  - `.opencode/skills/sk-doc/references/changelog_creation.md`
- **Outcome**: CLI scaffolds a v0.1.0 changelog file with Added / Changed / Fixed / Removed sections at `/tmp/sk-test-dummy-CHANGELOG-cli-codex.md`.

## Cross-CLI Variants

This scenario is fixed to `cli-codex`. Equivalent dispatches for cli-claude-code and cli-opencode are SD-018 and SD-020 respectively.

## Success Criteria

- `@markdown` invocation evidence present in transcript
- output file exists at the requested path
- output contains at least 3 of the 4 Keep-a-Changelog sections (Added / Changed / Fixed / Removed)
- no installation under `.opencode/skills/` (stub stayed out of the skills tree)

## 4. SOURCE METADATA

- Group: Agent Dispatch
- Playbook ID: SD-019
- Canonical root source: `manual_testing_playbook.md`
- Feature file path: `06--agent-dispatch/002-markdown-agent-cli-codex.md`
- Introduced by: `.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/004-sk-doc-playbook-markdown-agent-coverage`

exec
/bin/zsh -lc 'wc -l .opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/004-sk-doc-playbook-markdown-agent-coverage/implementation-summary.md' in /Users/michelkerkmeester/MEGA/Development/Code_Environment/Public
exec
/bin/zsh -lc "rg -n \"\\*\\*Status\\*\\*|completion_pct|open_questions\" .opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/004-sk-doc-playbook-markdown-agent-coverage/implementation-summary.md" in /Users/michelkerkmeester/MEGA/Development/Code_Environment/Public
 succeeded in 0ms:
     156 .opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/004-sk-doc-playbook-markdown-agent-coverage/implementation-summary.md

 succeeded in 0ms:
29:    completion_pct: 90
30:    open_questions:

codex
One requested implementation-summary status row is not present in the file as-read, so I’ll patch the two matching YAML fields there and add the requested status row only if the surrounding table can accept it cleanly. Everything else has direct anchors.
apply patch
patch: completed
/Users/michelkerkmeester/MEGA/Development/Code_Environment/Public/.opencode/skills/sk-doc/manual_testing_playbook/06--agent-dispatch/002-markdown-agent-cli-codex.md
/Users/michelkerkmeester/MEGA/Development/Code_Environment/Public/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/001-sk-doc-reference-relocation/spec.md
/Users/michelkerkmeester/MEGA/Development/Code_Environment/Public/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/002-sk-doc-skill-readme-asset/checklist.md
/Users/michelkerkmeester/MEGA/Development/Code_Environment/Public/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/002-sk-doc-skill-readme-asset/spec.md
/Users/michelkerkmeester/MEGA/Development/Code_Environment/Public/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/003-markdown-agent-rename/spec.md
/Users/michelkerkmeester/MEGA/Development/Code_Environment/Public/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/004-sk-doc-playbook-markdown-agent-coverage/implementation-summary.md
/Users/michelkerkmeester/MEGA/Development/Code_Environment/Public/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/004-sk-doc-playbook-markdown-agent-coverage/spec.md
/Users/michelkerkmeester/MEGA/Development/Code_Environment/Public/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/spec.md
diff --git a/.opencode/skills/sk-doc/manual_testing_playbook/06--agent-dispatch/002-markdown-agent-cli-codex.md b/.opencode/skills/sk-doc/manual_testing_playbook/06--agent-dispatch/002-markdown-agent-cli-codex.md
index 347ef307e493d7a64f0f0261e00d5b19215a57d3..de1c242780321f626ceff32dab1fcbc795d453e6
--- a/.opencode/skills/sk-doc/manual_testing_playbook/06--agent-dispatch/002-markdown-agent-cli-codex.md
+++ b/.opencode/skills/sk-doc/manual_testing_playbook/06--agent-dispatch/002-markdown-agent-cli-codex.md
@@ -3,6 +3,8 @@
 category: 06--agent-dispatch
 title: '@markdown agent dispatch via cli-codex'
 execution_mode: dispatch_real
+expected_skip_in_non_interactive: true
+skip_rationale: "cli-codex @markdown dispatch under `codex exec` non-interactive mode falls back to a sub-agent path that hits Gate 3. Documented as accepted limitation in 102/005 (F-001). Re-enable when codex agent resolver routes @markdown directly under `codex exec`."
 expected_intent: CHANGELOG
 expected_agent: '@markdown'
 expected_resources:
diff --git a/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/001-sk-doc-reference-relocation/spec.md b/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/001-sk-doc-reference-relocation/spec.md
index c37e897e10aae72ad25cd72506f3a2f15cf1905e..ec15aa8b4b52abee1c3f94d3a55b571f96ff7338
--- a/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/001-sk-doc-reference-relocation/spec.md
+++ b/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/001-sk-doc-reference-relocation/spec.md
@@ -40,7 +40,7 @@
 | **Created** | 2026-05-10 |
 | **Branch** | `main` |
 | **Parent Spec** | ../spec.md |
-| **Phase** | 1 of 3 |
+| **Phase** | 1 of 5 |
 | **Predecessor** | None |
 | **Successor** | 002-sk-doc-skill-readme-asset |
 <!-- /ANCHOR:metadata -->
diff --git a/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/002-sk-doc-skill-readme-asset/checklist.md b/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/002-sk-doc-skill-readme-asset/checklist.md
index 61eceb29030846cf89e70f3f96fbea4826989734..d2e69d14fc130cc31665aef1e84401c6bc079863
--- a/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/002-sk-doc-skill-readme-asset/checklist.md
+++ b/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/002-sk-doc-skill-readme-asset/checklist.md
@@ -18,7 +18,7 @@
       fingerprint: "sha256:0000000000000000000000000000000000000000000000000000000000000000"
       session_id: "102-sk-doc-skill-readme-and-structure"
       parent_session_id: null
-    completion_pct: 0
+    completion_pct: 100
     open_questions: []
     answered_questions: []
 ---
@@ -46,7 +46,7 @@
 
 - [x] CHK-001 [P0] Requirements documented in spec.md - REQ-001 through REQ-003 define README analysis, asset creation and wiring.
 - [x] CHK-002 [P0] Technical approach defined in plan.md - Plan uses template-first documentation maintenance and exact reference verification.
-- [x] CHK-003 [P1] Dependencies identified and available - Phase 1 relocation completed and target sk-doc files existed.
+- [x] CHK-003 [P1] Dependencies identified and available - Phase 1 relocation completed and target sk-doc files existed. Phase 1→2 handoff acceptance: `references/specific/` removed and exact-search for that string returned zero implementation-scope hits (verified 2026-05-10 during Phase 1 handoff to Phase 2).
 <!-- /ANCHOR:pre-impl -->
 
 ---
diff --git a/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/002-sk-doc-skill-readme-asset/spec.md b/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/002-sk-doc-skill-readme-asset/spec.md
index a98a7083330cc84f5a9a1118a9b58daa05caea78..bdc80cc72c7cb53faf8417420cd3fbe934c736dc
--- a/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/002-sk-doc-skill-readme-asset/spec.md
+++ b/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/002-sk-doc-skill-readme-asset/spec.md
@@ -40,7 +40,7 @@
 | **Created** | 2026-05-10 |
 | **Branch** | `main` |
 | **Parent Spec** | ../spec.md |
-| **Phase** | 2 of 3 |
+| **Phase** | 2 of 5 |
 | **Predecessor** | 001-sk-doc-reference-relocation |
 | **Successor** | 003-markdown-agent-rename |
 <!-- /ANCHOR:metadata -->
diff --git a/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/003-markdown-agent-rename/spec.md b/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/003-markdown-agent-rename/spec.md
index 8eff03d6e6645b4eee41056b0d7921fd08184670..2db4c060e5d263351e0a5d55857e17d3cd6d5af1
--- a/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/003-markdown-agent-rename/spec.md
+++ b/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/003-markdown-agent-rename/spec.md
@@ -40,7 +40,7 @@
 | **Created** | 2026-05-10 |
 | **Branch** | `main` |
 | **Parent Spec** | ../spec.md |
-| **Phase** | 3 of 3 |
+| **Phase** | 3 of 5 |
 | **Predecessor** | 002-sk-doc-skill-readme-asset |
 | **Successor** | None |
 <!-- /ANCHOR:metadata -->
diff --git a/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/004-sk-doc-playbook-markdown-agent-coverage/implementation-summary.md b/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/004-sk-doc-playbook-markdown-agent-coverage/implementation-summary.md
index 7729a47c5b2aded0e3d1ac1baa6a6e5247d619ba..e0b3ab9d70d3394f681952e0a124b439e537bc05
--- a/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/004-sk-doc-playbook-markdown-agent-coverage/implementation-summary.md
+++ b/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/004-sk-doc-playbook-markdown-agent-coverage/implementation-summary.md
@@ -26,9 +26,8 @@
       fingerprint: "sha256:0000000000000000000000000000000000000000000000000000000000000000"
       session_id: "102-004-sk-doc-playbook-markdown-agent-coverage"
       parent_session_id: null
-    completion_pct: 90
-    open_questions:
-      - "F-001 SD-019 remediation path: new 102/005 packet OR documented accepted limitation?"
+    completion_pct: 100
+    open_questions: []
     answered_questions: []
 ---
 <!-- SPECKIT_TEMPLATE_SOURCE: impl-summary-core | v2.2 -->
@@ -48,6 +47,7 @@
 |-------|-------|
 | **Spec Folder** | 004-sk-doc-playbook-markdown-agent-coverage |
 | **Completed** | 2026-05-11 (Stages B-E) |
+| **Status** | Complete — 2 PASS, 1 FAIL (documented limitation), deep-review converged |
 | **Level** | 2 |
 | **Verdict** | CONDITIONAL (review-report.md) |
 <!-- /ANCHOR:metadata -->
diff --git a/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/004-sk-doc-playbook-markdown-agent-coverage/spec.md b/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/004-sk-doc-playbook-markdown-agent-coverage/spec.md
index 9fe9f328120d1cef3702fc332b7bd11ad0ba2965..0580070f40e8e51798a105427ab4312b33580d5c
--- a/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/004-sk-doc-playbook-markdown-agent-coverage/spec.md
+++ b/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/004-sk-doc-playbook-markdown-agent-coverage/spec.md
@@ -37,7 +37,7 @@
 |-------|-------|
 | **Level** | 2 |
 | **Priority** | P1 |
-| **Status** | Draft |
+| **Status** | Complete |
 | **Created** | 2026-05-11 |
 | **Branch** | `main` |
 | **Parent Spec** | ../spec.md |
diff --git a/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/spec.md b/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/spec.md
index b7f43cc352bfdd4d85c06627df8523f509c50326..f1e9e3f36bb00a145d4841a78c30a6989f1ae8f3
--- a/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/spec.md
+++ b/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/spec.md
@@ -61,7 +61,7 @@
 | Phase | Folder | Status | Description |
 | --- | --- | --- | --- |
 | 1 | `001-sk-doc-reference-relocation/` | Active | Move `sk-doc/references/specific` documents to `sk-doc/references` root and update all old-path references. |
-| 2 | `002-sk-doc-skill-readme-asset/` | Draft | Analyze skill README conventions and create a dedicated sk-doc skill README asset with references from sk-doc docs and tests. |
+| 2 | `002-sk-doc-skill-readme-asset/` | Complete | Analyze skill README conventions and create a dedicated sk-doc skill README asset with references from sk-doc docs and tests. |
 | 3 | `003-markdown-agent-rename/` | Complete | Rename create-agent identity to markdown-agent identity across runtime agent mirrors and references while preserving `/create:*` commands. |
 | 4 | `004-sk-doc-playbook-markdown-agent-coverage/` | Active | Add `06--agent-dispatch/` section to the sk-doc manual testing playbook with three scenarios that dispatch `@markdown` across cli-claude-code, cli-codex, and cli-opencode; execute and capture evidence. |
 | 5 | `005-deep-review-p1-p2-remediation/` | Active | Remediate all 7 P1 and 9 P2 findings from the 102 phase-parent deep-review: status sync, handoff documentation, checklist marking, parent-level known-issues register, and SD-019 limitation documentation. |
@@ -72,7 +72,7 @@
 | --- | --- | --- | --- |
 | `001-sk-doc-reference-relocation` | `002-sk-doc-skill-readme-asset` | `references/specific` is removed, files are in `references/`, and old path references are gone. | Exact search for `references/specific` returns no implementation-scope hits. |
 | `002-sk-doc-skill-readme-asset` | `003-markdown-agent-rename` | Dedicated skill README asset exists and is referenced from sk-doc creation guidance and testing docs. | File exists under `assets/skill/` and references resolve from `SKILL.md`, `references/skill_creation.md`, and manual testing docs. |
-| `003-markdown-agent-rename` | `004-sk-doc-playbook-markdown-agent-coverage` | `@markdown` agent is wired across 4 runtime mirrors and routed by orchestrate.md. | `ls .opencode/agents/markdown.md .claude/agents/markdown.md .gemini/agents/markdown.md .codex/agents/markdown.toml` resolves all four. |
+| `003-markdown-agent-rename` | `004-sk-doc-playbook-markdown-agent-coverage` | `@markdown` agent is wired across 4 runtime mirrors and routed by orchestrate.md. NOTE: SD-019 surfaced a cli-codex non-interactive @markdown dispatch gap (F-001) — documented as accepted limitation in 005-deep-review-p1-p2-remediation; codex `@markdown` dispatch under `codex exec` falls back to a sub-agent path that hits Gate 3. | `ls .opencode/agents/markdown.md .claude/agents/markdown.md .gemini/agents/markdown.md .codex/agents/markdown.toml` resolves all four. |
 | `004-sk-doc-playbook-markdown-agent-coverage` | `005-deep-review-p1-p2-remediation` | Deep-review converged with verdict CONDITIONAL: 0 P0, 7 P1, 9 P2 findings; SD-019 cli-codex `@markdown` dispatch gap surfaced as F-001. | `.opencode/specs/.../102/review/deep-review-dashboard.md` exists; `004/implementation-summary.md` Review Outcome section cites 7 P1 + 9 P2. |
 
 ## 6. Success Criteria
@@ -89,3 +89,36 @@
 - `004-sk-doc-playbook-markdown-agent-coverage/spec.md`
 - `005-deep-review-p1-p2-remediation/spec.md`
 - `graph-metadata.json`
+
+## Known Issues
+
+This packet's deep-review (5 iterations, converged at iter 4, dashboard at `review/deep-review-dashboard.md`) surfaced the following findings. All are tracked here for downstream discoverability.
+
+### Confirmed pre-existing (from `004/implementation-summary.md`)
+
+| ID | Severity | Title | Status |
+|----|----------|-------|--------|
+| F-001 | P1 | cli-codex non-interactive `@markdown` dispatch ergonomics gap (SD-019 FAIL) | Accepted limitation — see 005 packet + SD-019 scenario `expected_skip_in_non_interactive` field |
+| F-002 | P2 | opencode `--agent general` subagent-fallback message | Accepted — harmless ergonomics noise |
+| F-003 | P2 | sk-doc compact-changelog format vs Keep-a-Changelog raw shape mismatch | Documented — sk-doc compact format is canonical |
+
+### Surfaced by 102 phase-parent deep-review (resolved in 005)
+
+| ID | Severity | Resolution |
+|----|----------|------------|
+| F-000-001 / F-001-001 | P1 | Phase 2 status synced Draft → Complete (this file) |
+| F-000-002 / F-003-001 | P1 | Phase 1→2 handoff acceptance evidence added to `002/checklist.md` CHK-003 |
+| F-001-005 | P1 | 003→004 handoff row annotated with SD-019 dispatch-gap note (this file) |
+| F-003-002 | P1 | 004 REQ-004 partial-objective ambiguity resolved by SD-019 limitation documentation |
+| F-004-001 | P1 | 004 completion_pct 90 → 100; open_questions cleared; status Complete |
+| F-001-002 | P2 | 004/spec.md status Draft → Complete |
+| F-001-003 | P2 | 004/checklist.md items marked with evidence |
+| F-001-004 / F-004-002 | P2 | 002/checklist.md frontmatter completion_pct 0 → 100 |
+| F-002-001 | P2 | SD-020 session IDs in evidence — accepted runtime metadata, no edit needed |
+| F-003-003 / F-004-004 | P2 | Child specs renumbered "N of 3" → "N of 5" |
+| F-003-004 | P2 | 003 prior-review cross-reference added (this file) |
+| F-004-003 | P2 | This Known Issues section added |
+
+### Phase 3 prior deep-review
+
+The Phase 3 (`003-markdown-agent-rename/`) shipped with its own 4-iteration deep-review. Findings registry at `003/review/deep-review-findings-registry.json`; iteration files at `003/review/iterations/`; final dashboard at `003/review/deep-review-dashboard.md`. All Phase 3 findings were closed during that earlier review; cross-referenced here for completeness.

diff --git a/.opencode/skills/sk-doc/manual_testing_playbook/06--agent-dispatch/002-markdown-agent-cli-codex.md b/.opencode/skills/sk-doc/manual_testing_playbook/06--agent-dispatch/002-markdown-agent-cli-codex.md
index 347ef307e493d7a64f0f0261e00d5b19215a57d3..de1c242780321f626ceff32dab1fcbc795d453e6
--- a/.opencode/skills/sk-doc/manual_testing_playbook/06--agent-dispatch/002-markdown-agent-cli-codex.md
+++ b/.opencode/skills/sk-doc/manual_testing_playbook/06--agent-dispatch/002-markdown-agent-cli-codex.md
@@ -3,6 +3,8 @@
 category: 06--agent-dispatch
 title: '@markdown agent dispatch via cli-codex'
 execution_mode: dispatch_real
+expected_skip_in_non_interactive: true
+skip_rationale: "cli-codex @markdown dispatch under `codex exec` non-interactive mode falls back to a sub-agent path that hits Gate 3. Documented as accepted limitation in 102/005 (F-001). Re-enable when codex agent resolver routes @markdown directly under `codex exec`."
 expected_intent: CHANGELOG
 expected_agent: '@markdown'
 expected_resources:
diff --git a/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/001-sk-doc-reference-relocation/spec.md b/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/001-sk-doc-reference-relocation/spec.md
index c37e897e10aae72ad25cd72506f3a2f15cf1905e..ec15aa8b4b52abee1c3f94d3a55b571f96ff7338
--- a/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/001-sk-doc-reference-relocation/spec.md
+++ b/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/001-sk-doc-reference-relocation/spec.md
@@ -40,7 +40,7 @@
 | **Created** | 2026-05-10 |
 | **Branch** | `main` |
 | **Parent Spec** | ../spec.md |
-| **Phase** | 1 of 3 |
+| **Phase** | 1 of 5 |
 | **Predecessor** | None |
 | **Successor** | 002-sk-doc-skill-readme-asset |
 <!-- /ANCHOR:metadata -->
diff --git a/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/002-sk-doc-skill-readme-asset/checklist.md b/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/002-sk-doc-skill-readme-asset/checklist.md
index 61eceb29030846cf89e70f3f96fbea4826989734..d2e69d14fc130cc31665aef1e84401c6bc079863
--- a/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/002-sk-doc-skill-readme-asset/checklist.md
+++ b/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/002-sk-doc-skill-readme-asset/checklist.md
@@ -18,7 +18,7 @@
       fingerprint: "sha256:0000000000000000000000000000000000000000000000000000000000000000"
       session_id: "102-sk-doc-skill-readme-and-structure"
       parent_session_id: null
-    completion_pct: 0
+    completion_pct: 100
     open_questions: []
     answered_questions: []
 ---
@@ -46,7 +46,7 @@
 
 - [x] CHK-001 [P0] Requirements documented in spec.md - REQ-001 through REQ-003 define README analysis, asset creation and wiring.
 - [x] CHK-002 [P0] Technical approach defined in plan.md - Plan uses template-first documentation maintenance and exact reference verification.
-- [x] CHK-003 [P1] Dependencies identified and available - Phase 1 relocation completed and target sk-doc files existed.
+- [x] CHK-003 [P1] Dependencies identified and available - Phase 1 relocation completed and target sk-doc files existed. Phase 1→2 handoff acceptance: `references/specific/` removed and exact-search for that string returned zero implementation-scope hits (verified 2026-05-10 during Phase 1 handoff to Phase 2).
 <!-- /ANCHOR:pre-impl -->
 
 ---
diff --git a/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/002-sk-doc-skill-readme-asset/spec.md b/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/002-sk-doc-skill-readme-asset/spec.md
index a98a7083330cc84f5a9a1118a9b58daa05caea78..bdc80cc72c7cb53faf8417420cd3fbe934c736dc
--- a/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/002-sk-doc-skill-readme-asset/spec.md
+++ b/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/002-sk-doc-skill-readme-asset/spec.md
@@ -40,7 +40,7 @@
 | **Created** | 2026-05-10 |
 | **Branch** | `main` |
 | **Parent Spec** | ../spec.md |
-| **Phase** | 2 of 3 |
+| **Phase** | 2 of 5 |
 | **Predecessor** | 001-sk-doc-reference-relocation |
 | **Successor** | 003-markdown-agent-rename |
 <!-- /ANCHOR:metadata -->
diff --git a/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/003-markdown-agent-rename/spec.md b/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/003-markdown-agent-rename/spec.md
index 8eff03d6e6645b4eee41056b0d7921fd08184670..2db4c060e5d263351e0a5d55857e17d3cd6d5af1
--- a/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/003-markdown-agent-rename/spec.md
+++ b/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/003-markdown-agent-rename/spec.md
@@ -40,7 +40,7 @@
 | **Created** | 2026-05-10 |
 | **Branch** | `main` |
 | **Parent Spec** | ../spec.md |
-| **Phase** | 3 of 3 |
+| **Phase** | 3 of 5 |
 | **Predecessor** | 002-sk-doc-skill-readme-asset |
 | **Successor** | None |
 <!-- /ANCHOR:metadata -->
diff --git a/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/004-sk-doc-playbook-markdown-agent-coverage/implementation-summary.md b/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/004-sk-doc-playbook-markdown-agent-coverage/implementation-summary.md
index 7729a47c5b2aded0e3d1ac1baa6a6e5247d619ba..e0b3ab9d70d3394f681952e0a124b439e537bc05
--- a/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/004-sk-doc-playbook-markdown-agent-coverage/implementation-summary.md
+++ b/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/004-sk-doc-playbook-markdown-agent-coverage/implementation-summary.md
@@ -26,9 +26,8 @@
       fingerprint: "sha256:0000000000000000000000000000000000000000000000000000000000000000"
       session_id: "102-004-sk-doc-playbook-markdown-agent-coverage"
       parent_session_id: null
-    completion_pct: 90
-    open_questions:
-      - "F-001 SD-019 remediation path: new 102/005 packet OR documented accepted limitation?"
+    completion_pct: 100
+    open_questions: []
     answered_questions: []
 ---
 <!-- SPECKIT_TEMPLATE_SOURCE: impl-summary-core | v2.2 -->
@@ -48,6 +47,7 @@
 |-------|-------|
 | **Spec Folder** | 004-sk-doc-playbook-markdown-agent-coverage |
 | **Completed** | 2026-05-11 (Stages B-E) |
+| **Status** | Complete — 2 PASS, 1 FAIL (documented limitation), deep-review converged |
 | **Level** | 2 |
 | **Verdict** | CONDITIONAL (review-report.md) |
 <!-- /ANCHOR:metadata -->
diff --git a/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/004-sk-doc-playbook-markdown-agent-coverage/spec.md b/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/004-sk-doc-playbook-markdown-agent-coverage/spec.md
index 9fe9f328120d1cef3702fc332b7bd11ad0ba2965..0580070f40e8e51798a105427ab4312b33580d5c
--- a/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/004-sk-doc-playbook-markdown-agent-coverage/spec.md
+++ b/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/004-sk-doc-playbook-markdown-agent-coverage/spec.md
@@ -37,7 +37,7 @@
 |-------|-------|
 | **Level** | 2 |
 | **Priority** | P1 |
-| **Status** | Draft |
+| **Status** | Complete |
 | **Created** | 2026-05-11 |
 | **Branch** | `main` |
 | **Parent Spec** | ../spec.md |
diff --git a/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/spec.md b/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/spec.md
index b7f43cc352bfdd4d85c06627df8523f509c50326..f1e9e3f36bb00a145d4841a78c30a6989f1ae8f3
--- a/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/spec.md
+++ b/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/spec.md
@@ -61,7 +61,7 @@
 | Phase | Folder | Status | Description |
 | --- | --- | --- | --- |
 | 1 | `001-sk-doc-reference-relocation/` | Active | Move `sk-doc/references/specific` documents to `sk-doc/references` root and update all old-path references. |
-| 2 | `002-sk-doc-skill-readme-asset/` | Draft | Analyze skill README conventions and create a dedicated sk-doc skill README asset with references from sk-doc docs and tests. |
+| 2 | `002-sk-doc-skill-readme-asset/` | Complete | Analyze skill README conventions and create a dedicated sk-doc skill README asset with references from sk-doc docs and tests. |
 | 3 | `003-markdown-agent-rename/` | Complete | Rename create-agent identity to markdown-agent identity across runtime agent mirrors and references while preserving `/create:*` commands. |
 | 4 | `004-sk-doc-playbook-markdown-agent-coverage/` | Active | Add `06--agent-dispatch/` section to the sk-doc manual testing playbook with three scenarios that dispatch `@markdown` across cli-claude-code, cli-codex, and cli-opencode; execute and capture evidence. |
 | 5 | `005-deep-review-p1-p2-remediation/` | Active | Remediate all 7 P1 and 9 P2 findings from the 102 phase-parent deep-review: status sync, handoff documentation, checklist marking, parent-level known-issues register, and SD-019 limitation documentation. |
@@ -72,7 +72,7 @@
 | --- | --- | --- | --- |
 | `001-sk-doc-reference-relocation` | `002-sk-doc-skill-readme-asset` | `references/specific` is removed, files are in `references/`, and old path references are gone. | Exact search for `references/specific` returns no implementation-scope hits. |
 | `002-sk-doc-skill-readme-asset` | `003-markdown-agent-rename` | Dedicated skill README asset exists and is referenced from sk-doc creation guidance and testing docs. | File exists under `assets/skill/` and references resolve from `SKILL.md`, `references/skill_creation.md`, and manual testing docs. |
-| `003-markdown-agent-rename` | `004-sk-doc-playbook-markdown-agent-coverage` | `@markdown` agent is wired across 4 runtime mirrors and routed by orchestrate.md. | `ls .opencode/agents/markdown.md .claude/agents/markdown.md .gemini/agents/markdown.md .codex/agents/markdown.toml` resolves all four. |
+| `003-markdown-agent-rename` | `004-sk-doc-playbook-markdown-agent-coverage` | `@markdown` agent is wired across 4 runtime mirrors and routed by orchestrate.md. NOTE: SD-019 surfaced a cli-codex non-interactive @markdown dispatch gap (F-001) — documented as accepted limitation in 005-deep-review-p1-p2-remediation; codex `@markdown` dispatch under `codex exec` falls back to a sub-agent path that hits Gate 3. | `ls .opencode/agents/markdown.md .claude/agents/markdown.md .gemini/agents/markdown.md .codex/agents/markdown.toml` resolves all four. |
 | `004-sk-doc-playbook-markdown-agent-coverage` | `005-deep-review-p1-p2-remediation` | Deep-review converged with verdict CONDITIONAL: 0 P0, 7 P1, 9 P2 findings; SD-019 cli-codex `@markdown` dispatch gap surfaced as F-001. | `.opencode/specs/.../102/review/deep-review-dashboard.md` exists; `004/implementation-summary.md` Review Outcome section cites 7 P1 + 9 P2. |
 
 ## 6. Success Criteria
@@ -89,3 +89,36 @@
 - `004-sk-doc-playbook-markdown-agent-coverage/spec.md`
 - `005-deep-review-p1-p2-remediation/spec.md`
 - `graph-metadata.json`
+
+## Known Issues
+
+This packet's deep-review (5 iterations, converged at iter 4, dashboard at `review/deep-review-dashboard.md`) surfaced the following findings. All are tracked here for downstream discoverability.
+
+### Confirmed pre-existing (from `004/implementation-summary.md`)
+
+| ID | Severity | Title | Status |
+|----|----------|-------|--------|
+| F-001 | P1 | cli-codex non-interactive `@markdown` dispatch ergonomics gap (SD-019 FAIL) | Accepted limitation — see 005 packet + SD-019 scenario `expected_skip_in_non_interactive` field |
+| F-002 | P2 | opencode `--agent general` subagent-fallback message | Accepted — harmless ergonomics noise |
+| F-003 | P2 | sk-doc compact-changelog format vs Keep-a-Changelog raw shape mismatch | Documented — sk-doc compact format is canonical |
+
+### Surfaced by 102 phase-parent deep-review (resolved in 005)
+
+| ID | Severity | Resolution |
+|----|----------|------------|
+| F-000-001 / F-001-001 | P1 | Phase 2 status synced Draft → Complete (this file) |
+| F-000-002 / F-003-001 | P1 | Phase 1→2 handoff acceptance evidence added to `002/checklist.md` CHK-003 |
+| F-001-005 | P1 | 003→004 handoff row annotated with SD-019 dispatch-gap note (this file) |
+| F-003-002 | P1 | 004 REQ-004 partial-objective ambiguity resolved by SD-019 limitation documentation |
+| F-004-001 | P1 | 004 completion_pct 90 → 100; open_questions cleared; status Complete |
+| F-001-002 | P2 | 004/spec.md status Draft → Complete |
+| F-001-003 | P2 | 004/checklist.md items marked with evidence |
+| F-001-004 / F-004-002 | P2 | 002/checklist.md frontmatter completion_pct 0 → 100 |
+| F-002-001 | P2 | SD-020 session IDs in evidence — accepted runtime metadata, no edit needed |
+| F-003-003 / F-004-004 | P2 | Child specs renumbered "N of 3" → "N of 5" |
+| F-003-004 | P2 | 003 prior-review cross-reference added (this file) |
+| F-004-003 | P2 | This Known Issues section added |
+
+### Phase 3 prior deep-review
+
+The Phase 3 (`003-markdown-agent-rename/`) shipped with its own 4-iteration deep-review. Findings registry at `003/review/deep-review-findings-registry.json`; iteration files at `003/review/iterations/`; final dashboard at `003/review/deep-review-dashboard.md`. All Phase 3 findings were closed during that earlier review; cross-referenced here for completeness.

codex
The first batch landed in the intended files. I’m applying the large checklist evidence mapping now; it’s a straight line-by-line replacement against the checked anchors.
apply patch
patch: completed
/Users/michelkerkmeester/MEGA/Development/Code_Environment/Public/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/004-sk-doc-playbook-markdown-agent-coverage/checklist.md
diff --git a/.opencode/skills/sk-doc/manual_testing_playbook/06--agent-dispatch/002-markdown-agent-cli-codex.md b/.opencode/skills/sk-doc/manual_testing_playbook/06--agent-dispatch/002-markdown-agent-cli-codex.md
index 347ef307e493d7a64f0f0261e00d5b19215a57d3..de1c242780321f626ceff32dab1fcbc795d453e6
--- a/.opencode/skills/sk-doc/manual_testing_playbook/06--agent-dispatch/002-markdown-agent-cli-codex.md
+++ b/.opencode/skills/sk-doc/manual_testing_playbook/06--agent-dispatch/002-markdown-agent-cli-codex.md
@@ -3,6 +3,8 @@
 category: 06--agent-dispatch
 title: '@markdown agent dispatch via cli-codex'
 execution_mode: dispatch_real
+expected_skip_in_non_interactive: true
+skip_rationale: "cli-codex @markdown dispatch under `codex exec` non-interactive mode falls back to a sub-agent path that hits Gate 3. Documented as accepted limitation in 102/005 (F-001). Re-enable when codex agent resolver routes @markdown directly under `codex exec`."
 expected_intent: CHANGELOG
 expected_agent: '@markdown'
 expected_resources:
diff --git a/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/001-sk-doc-reference-relocation/spec.md b/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/001-sk-doc-reference-relocation/spec.md
index c37e897e10aae72ad25cd72506f3a2f15cf1905e..ec15aa8b4b52abee1c3f94d3a55b571f96ff7338
--- a/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/001-sk-doc-reference-relocation/spec.md
+++ b/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/001-sk-doc-reference-relocation/spec.md
@@ -40,7 +40,7 @@
 | **Created** | 2026-05-10 |
 | **Branch** | `main` |
 | **Parent Spec** | ../spec.md |
-| **Phase** | 1 of 3 |
+| **Phase** | 1 of 5 |
 | **Predecessor** | None |
 | **Successor** | 002-sk-doc-skill-readme-asset |
 <!-- /ANCHOR:metadata -->
diff --git a/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/002-sk-doc-skill-readme-asset/checklist.md b/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/002-sk-doc-skill-readme-asset/checklist.md
index 61eceb29030846cf89e70f3f96fbea4826989734..d2e69d14fc130cc31665aef1e84401c6bc079863
--- a/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/002-sk-doc-skill-readme-asset/checklist.md
+++ b/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/002-sk-doc-skill-readme-asset/checklist.md
@@ -18,7 +18,7 @@
       fingerprint: "sha256:0000000000000000000000000000000000000000000000000000000000000000"
       session_id: "102-sk-doc-skill-readme-and-structure"
       parent_session_id: null
-    completion_pct: 0
+    completion_pct: 100
     open_questions: []
     answered_questions: []
 ---
@@ -46,7 +46,7 @@
 
 - [x] CHK-001 [P0] Requirements documented in spec.md - REQ-001 through REQ-003 define README analysis, asset creation and wiring.
 - [x] CHK-002 [P0] Technical approach defined in plan.md - Plan uses template-first documentation maintenance and exact reference verification.
-- [x] CHK-003 [P1] Dependencies identified and available - Phase 1 relocation completed and target sk-doc files existed.
+- [x] CHK-003 [P1] Dependencies identified and available - Phase 1 relocation completed and target sk-doc files existed. Phase 1→2 handoff acceptance: `references/specific/` removed and exact-search for that string returned zero implementation-scope hits (verified 2026-05-10 during Phase 1 handoff to Phase 2).
 <!-- /ANCHOR:pre-impl -->
 
 ---
diff --git a/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/002-sk-doc-skill-readme-asset/spec.md b/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/002-sk-doc-skill-readme-asset/spec.md
index a98a7083330cc84f5a9a1118a9b58daa05caea78..bdc80cc72c7cb53faf8417420cd3fbe934c736dc
--- a/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/002-sk-doc-skill-readme-asset/spec.md
+++ b/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/002-sk-doc-skill-readme-asset/spec.md
@@ -40,7 +40,7 @@
 | **Created** | 2026-05-10 |
 | **Branch** | `main` |
 | **Parent Spec** | ../spec.md |
-| **Phase** | 2 of 3 |
+| **Phase** | 2 of 5 |
 | **Predecessor** | 001-sk-doc-reference-relocation |
 | **Successor** | 003-markdown-agent-rename |
 <!-- /ANCHOR:metadata -->
diff --git a/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/003-markdown-agent-rename/spec.md b/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/003-markdown-agent-rename/spec.md
index 8eff03d6e6645b4eee41056b0d7921fd08184670..2db4c060e5d263351e0a5d55857e17d3cd6d5af1
--- a/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/003-markdown-agent-rename/spec.md
+++ b/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/003-markdown-agent-rename/spec.md
@@ -40,7 +40,7 @@
 | **Created** | 2026-05-10 |
 | **Branch** | `main` |
 | **Parent Spec** | ../spec.md |
-| **Phase** | 3 of 3 |
+| **Phase** | 3 of 5 |
 | **Predecessor** | 002-sk-doc-skill-readme-asset |
 | **Successor** | None |
 <!-- /ANCHOR:metadata -->
diff --git a/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/004-sk-doc-playbook-markdown-agent-coverage/checklist.md b/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/004-sk-doc-playbook-markdown-agent-coverage/checklist.md
index 49766ecc639b7ceee77d34be8596ca8c0c8de99f..5ba40417b12e3d150d1d4f05f60c53c6b109800a
--- a/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/004-sk-doc-playbook-markdown-agent-coverage/checklist.md
+++ b/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/004-sk-doc-playbook-markdown-agent-coverage/checklist.md
@@ -44,9 +44,9 @@
 <!-- ANCHOR:pre-impl -->
 ## Pre-Implementation
 
-- [ ] CHK-001 [P0] Requirements documented in spec.md.
-- [ ] CHK-002 [P0] Technical approach defined in plan.md.
-- [ ] CHK-003 [P1] Dependencies identified and available (4 runtime agent mirrors present; `/create:changelog` reachable).
+- [x] CHK-001 [P0] Requirements documented in spec.md. - Evidence: spec.md authored at 004/spec.md with full scope, requirements, success criteria.
+- [x] CHK-002 [P0] Technical approach defined in plan.md. - Evidence: plan.md authored at 004/plan.md with dispatch shapes and architecture pattern.
+- [x] CHK-003 [P1] Dependencies identified and available (4 runtime agent mirrors present; `/create:changelog` reachable). - Evidence: 4 runtime agent mirrors verified; /create:changelog command at .opencode/commands/create/changelog.md exists.
 <!-- /ANCHOR:pre-impl -->
 
 ---
@@ -54,10 +54,10 @@
 <!-- ANCHOR:code-quality -->
 ## Code Quality
 
-- [ ] CHK-010 [P0] Three scenario files exist under `06--agent-dispatch/`.
-- [ ] CHK-011 [P0] Each scenario YAML frontmatter has `execution_mode: dispatch_real` (distinguishes from routing-trace scenarios).
-- [ ] CHK-012 [P1] Scenario shape mirrors SD-010 (sections present: Overview, Scenario Contract, Test Execution table, Setup, Expected Behavior, Success Criteria, Source Metadata).
-- [ ] CHK-013 [P1] Each scenario uses the same task (`/create:changelog` for `sk-test-dummy v0.1.0`) so results are comparable across CLIs.
+- [x] CHK-010 [P0] Three scenario files exist under `06--agent-dispatch/`. - Evidence: 3 scenarios created under 06--agent-dispatch/ (find returned 3 .md files).
+- [x] CHK-011 [P0] Each scenario YAML frontmatter has `execution_mode: dispatch_real` (distinguishes from routing-trace scenarios). - Evidence: each scenario frontmatter contains `execution_mode: dispatch_real`.
+- [x] CHK-012 [P1] Scenario shape mirrors SD-010 (sections present: Overview, Scenario Contract, Test Execution table, Setup, Expected Behavior, Success Criteria, Source Metadata). - Evidence: SD-018/019/020 follow SD-010 template shape with Overview / Scenario Contract / Test Execution / Setup / Expected Behavior / Success Criteria / Source Metadata sections.
+- [x] CHK-013 [P1] Each scenario uses the same task (`/create:changelog` for `sk-test-dummy v0.1.0`) so results are comparable across CLIs. - Evidence: same /create:changelog sk-test-dummy v0.1.0 prompt across all three scenarios.
 <!-- /ANCHOR:code-quality -->
 
 ---
@@ -65,10 +65,10 @@
 <!-- ANCHOR:testing -->
 ## Testing
 
-- [ ] CHK-020 [P0] All 3 scenarios executed against their named CLI.
-- [ ] CHK-021 [P0] Each evidence file contains a verdict footer line (PASS / PARTIAL / FAIL / SKIP).
-- [ ] CHK-022 [P1] Each evidence file shows the `@markdown` agent received the task (routing trace).
-- [ ] CHK-023 [P1] Each evidence file shows sk-doc resources were loaded (resource trace).
+- [x] CHK-020 [P0] All 3 scenarios executed against their named CLI. - Evidence: 3 dispatches executed sequentially 2026-05-11 via cli-claude-code, cli-codex, cli-opencode; evidence files persisted under 004/evidence/.
+- [x] CHK-021 [P0] Each evidence file contains a verdict footer line (PASS / PARTIAL / FAIL / SKIP). - Evidence: SD-018 PASS, SD-019 FAIL, SD-020 PASS verdict footers in evidence files.
+- [x] CHK-022 [P1] Each evidence file shows the `@markdown` agent received the task (routing trace). - Evidence: SD-018 (3 hits) and SD-020 (8 hits) show @markdown invocation; SD-019 surfaces routing gap explicitly.
+- [x] CHK-023 [P1] Each evidence file shows sk-doc resources were loaded (resource trace). - Evidence: SD-018 (2 resource hits) and SD-020 (8 resource hits) show sk-doc resources loaded.
 <!-- /ANCHOR:testing -->
 
 ---
@@ -76,13 +76,13 @@
 <!-- ANCHOR:fix-completeness -->
 ## Fix Completeness
 
-- [ ] CHK-FIX-001 [P0] Each scenario is classified as `dispatch_real` (not routing-trace) — verified via frontmatter `execution_mode`.
-- [ ] CHK-FIX-002 [P0] Cross-consumer inventory: playbook index references the new section in Categories + Scenario Index.
-- [ ] CHK-FIX-003 [P0] Consumer inventory: preamble Global Preconditions notes the execution-real distinction for section 6.
-- [ ] CHK-FIX-004 [P0] Dispatch reliability: scenarios run sequentially (not in parallel) per memory hint on CLI dispatch unreliability.
-- [ ] CHK-FIX-005 [P1] Matrix axes: CLI × task; row count = 3 (3 CLIs × 1 task).
-- [ ] CHK-FIX-006 [P1] Each CLI's specific gotcha is handled in its Setup block (codex `service_tier=fast` + network-access; opencode `--pure` + `</dev/null`).
-- [ ] CHK-FIX-007 [P1] Evidence is pinned to actual transcript content, not summary paraphrase.
+- [x] CHK-FIX-001 [P0] Each scenario is classified as `dispatch_real` (not routing-trace) — verified via frontmatter `execution_mode`. - Evidence: scenarios classified dispatch_real per execution_mode frontmatter; SD-019 reclassified as instance-only documented limitation in 005.
+- [x] CHK-FIX-002 [P0] Cross-consumer inventory: playbook index references the new section in Categories + Scenario Index. - Evidence: 06--agent-dispatch added to manual_testing_playbook.md Categories table and Scenario Index.
+- [x] CHK-FIX-003 [P0] Consumer inventory: preamble Global Preconditions notes the execution-real distinction for section 6. - Evidence: manual_testing_playbook.md Global Preconditions §6 explicitly distinguishes section 6 execution-real from sections 1-5 routing-trace.
+- [x] CHK-FIX-004 [P0] Dispatch reliability: scenarios run sequentially (not in parallel) per memory hint on CLI dispatch unreliability. - Evidence: 3 scenarios dispatched sequentially (one after another), not in parallel.
+- [x] CHK-FIX-005 [P1] Matrix axes: CLI × task; row count = 3 (3 CLIs × 1 task). - Evidence: matrix axes CLI × task; 3 CLIs × 1 task = 3 rows in results table.
+- [x] CHK-FIX-006 [P1] Each CLI's specific gotcha is handled in its Setup block (codex `service_tier=fast` + network-access; opencode `--pure` + `</dev/null`). - Evidence: codex scenario uses `service_tier=fast` + `sandbox_workspace_write.network_access=true`; opencode scenario uses `--pure` + `</dev/null`.
+- [x] CHK-FIX-007 [P1] Evidence is pinned to actual transcript content, not summary paraphrase. - Evidence: each evidence file contains verbatim transcript content; no paraphrase summaries.
 <!-- /ANCHOR:fix-completeness -->
 
 ---
@@ -90,9 +90,9 @@
 <!-- ANCHOR:security -->
 ## Security
 
-- [ ] CHK-030 [P0] No secrets/tokens/API keys persisted into evidence transcripts.
-- [ ] CHK-031 [P0] Stub skill `sk-test-dummy` lives only under `evidence/` or `/tmp/`, never under `.opencode/skills/` proper.
-- [ ] CHK-032 [P1] Each scenario's prompt explicitly forbids installation into the skills tree.
+- [x] CHK-030 [P0] No secrets/tokens/API keys persisted into evidence transcripts. - Evidence: SD-018/019/020 evidence files reviewed; no secrets, tokens, or API keys persisted.
+- [x] CHK-031 [P0] Stub skill `sk-test-dummy` lives only under `evidence/` or `/tmp/`, never under `.opencode/skills/` proper. - Evidence: stub sk-test-dummy not installed under .opencode/skills/; output files only at /tmp/.
+- [x] CHK-032 [P1] Each scenario's prompt explicitly forbids installation into the skills tree. - Evidence: each scenario prompt explicitly forbids installation into the skills tree.
 <!-- /ANCHOR:security -->
 
 ---
@@ -100,9 +100,9 @@
 <!-- ANCHOR:docs -->
 ## Documentation
 
-- [ ] CHK-040 [P1] spec.md / plan.md / tasks.md continuity blocks synchronized to `completion_pct: 100`.
-- [ ] CHK-041 [P1] `implementation-summary.md` populated with 3-row cross-CLI results table.
-- [ ] CHK-042 [P2] Parent `102/spec.md` Phase Documentation Map references phase 4 / 004 row.
+- [x] CHK-040 [P1] spec.md / plan.md / tasks.md continuity blocks synchronized to `completion_pct: 100`. - Evidence: spec.md / plan.md / tasks.md continuity blocks updated to completion_pct: 100 in 005 final pass.
+- [x] CHK-041 [P1] `implementation-summary.md` populated with 3-row cross-CLI results table. - Evidence: implementation-summary.md results table populated with 3 rows (SD-018/019/020) + verdict + key evidence-file path each.
+- [x] CHK-042 [P2] Parent `102/spec.md` Phase Documentation Map references phase 4 / 004 row. - Evidence: parent 102/spec.md Phase Documentation Map references phase 4 row.
 <!-- /ANCHOR:docs -->
 
 ---
@@ -110,8 +110,8 @@
 <!-- ANCHOR:file-org -->
 ## File Organization
 
-- [ ] CHK-050 [P1] Evidence files live under `004/evidence/` only.
-- [ ] CHK-051 [P1] `scratch/` cleaned before completion (contains only `.gitkeep`).
+- [x] CHK-050 [P1] Evidence files live under `004/evidence/` only. - Evidence: evidence/ directory contains only SD-018-cli-claude-code.txt, SD-019-cli-codex.txt, SD-020-cli-opencode.txt.
+- [x] CHK-051 [P1] `scratch/` cleaned before completion (contains only `.gitkeep`). - Evidence: scratch/ contains only .gitkeep.
 <!-- /ANCHOR:file-org -->
 
 ---
@@ -121,9 +121,9 @@
 
 | Category | Total | Verified |
 |----------|-------|----------|
-| P0 Items | 12 | 0/12 |
-| P1 Items | 8 | 0/8 |
-| P2 Items | 1 | 0/1 |
+| P0 Items | 12 | 12/12 |
+| P1 Items | 8 | 8/8 |
+| P2 Items | 1 | 1/1 |
 
-**Verification Date**: [YYYY-MM-DD]
+**Verification Date**: 2026-05-11
 <!-- /ANCHOR:summary -->
diff --git a/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/004-sk-doc-playbook-markdown-agent-coverage/implementation-summary.md b/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/004-sk-doc-playbook-markdown-agent-coverage/implementation-summary.md
index 7729a47c5b2aded0e3d1ac1baa6a6e5247d619ba..e0b3ab9d70d3394f681952e0a124b439e537bc05
--- a/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/004-sk-doc-playbook-markdown-agent-coverage/implementation-summary.md
+++ b/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/004-sk-doc-playbook-markdown-agent-coverage/implementation-summary.md
@@ -26,9 +26,8 @@
       fingerprint: "sha256:0000000000000000000000000000000000000000000000000000000000000000"
       session_id: "102-004-sk-doc-playbook-markdown-agent-coverage"
       parent_session_id: null
-    completion_pct: 90
-    open_questions:
-      - "F-001 SD-019 remediation path: new 102/005 packet OR documented accepted limitation?"
+    completion_pct: 100
+    open_questions: []
     answered_questions: []
 ---
 <!-- SPECKIT_TEMPLATE_SOURCE: impl-summary-core | v2.2 -->
@@ -48,6 +47,7 @@
 |-------|-------|
 | **Spec Folder** | 004-sk-doc-playbook-markdown-agent-coverage |
 | **Completed** | 2026-05-11 (Stages B-E) |
+| **Status** | Complete — 2 PASS, 1 FAIL (documented limitation), deep-review converged |
 | **Level** | 2 |
 | **Verdict** | CONDITIONAL (review-report.md) |
 <!-- /ANCHOR:metadata -->
diff --git a/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/004-sk-doc-playbook-markdown-agent-coverage/spec.md b/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/004-sk-doc-playbook-markdown-agent-coverage/spec.md
index 9fe9f328120d1cef3702fc332b7bd11ad0ba2965..0580070f40e8e51798a105427ab4312b33580d5c
--- a/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/004-sk-doc-playbook-markdown-agent-coverage/spec.md
+++ b/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/004-sk-doc-playbook-markdown-agent-coverage/spec.md
@@ -37,7 +37,7 @@
 |-------|-------|
 | **Level** | 2 |
 | **Priority** | P1 |
-| **Status** | Draft |
+| **Status** | Complete |
 | **Created** | 2026-05-11 |
 | **Branch** | `main` |
 | **Parent Spec** | ../spec.md |
diff --git a/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/spec.md b/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/spec.md
index b7f43cc352bfdd4d85c06627df8523f509c50326..f1e9e3f36bb00a145d4841a78c30a6989f1ae8f3
--- a/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/spec.md
+++ b/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/spec.md
@@ -61,7 +61,7 @@
 | Phase | Folder | Status | Description |
 | --- | --- | --- | --- |
 | 1 | `001-sk-doc-reference-relocation/` | Active | Move `sk-doc/references/specific` documents to `sk-doc/references` root and update all old-path references. |
-| 2 | `002-sk-doc-skill-readme-asset/` | Draft | Analyze skill README conventions and create a dedicated sk-doc skill README asset with references from sk-doc docs and tests. |
+| 2 | `002-sk-doc-skill-readme-asset/` | Complete | Analyze skill README conventions and create a dedicated sk-doc skill README asset with references from sk-doc docs and tests. |
 | 3 | `003-markdown-agent-rename/` | Complete | Rename create-agent identity to markdown-agent identity across runtime agent mirrors and references while preserving `/create:*` commands. |
 | 4 | `004-sk-doc-playbook-markdown-agent-coverage/` | Active | Add `06--agent-dispatch/` section to the sk-doc manual testing playbook with three scenarios that dispatch `@markdown` across cli-claude-code, cli-codex, and cli-opencode; execute and capture evidence. |
 | 5 | `005-deep-review-p1-p2-remediation/` | Active | Remediate all 7 P1 and 9 P2 findings from the 102 phase-parent deep-review: status sync, handoff documentation, checklist marking, parent-level known-issues register, and SD-019 limitation documentation. |
@@ -72,7 +72,7 @@
 | --- | --- | --- | --- |
 | `001-sk-doc-reference-relocation` | `002-sk-doc-skill-readme-asset` | `references/specific` is removed, files are in `references/`, and old path references are gone. | Exact search for `references/specific` returns no implementation-scope hits. |
 | `002-sk-doc-skill-readme-asset` | `003-markdown-agent-rename` | Dedicated skill README asset exists and is referenced from sk-doc creation guidance and testing docs. | File exists under `assets/skill/` and references resolve from `SKILL.md`, `references/skill_creation.md`, and manual testing docs. |
-| `003-markdown-agent-rename` | `004-sk-doc-playbook-markdown-agent-coverage` | `@markdown` agent is wired across 4 runtime mirrors and routed by orchestrate.md. | `ls .opencode/agents/markdown.md .claude/agents/markdown.md .gemini/agents/markdown.md .codex/agents/markdown.toml` resolves all four. |
+| `003-markdown-agent-rename` | `004-sk-doc-playbook-markdown-agent-coverage` | `@markdown` agent is wired across 4 runtime mirrors and routed by orchestrate.md. NOTE: SD-019 surfaced a cli-codex non-interactive @markdown dispatch gap (F-001) — documented as accepted limitation in 005-deep-review-p1-p2-remediation; codex `@markdown` dispatch under `codex exec` falls back to a sub-agent path that hits Gate 3. | `ls .opencode/agents/markdown.md .claude/agents/markdown.md .gemini/agents/markdown.md .codex/agents/markdown.toml` resolves all four. |
 | `004-sk-doc-playbook-markdown-agent-coverage` | `005-deep-review-p1-p2-remediation` | Deep-review converged with verdict CONDITIONAL: 0 P0, 7 P1, 9 P2 findings; SD-019 cli-codex `@markdown` dispatch gap surfaced as F-001. | `.opencode/specs/.../102/review/deep-review-dashboard.md` exists; `004/implementation-summary.md` Review Outcome section cites 7 P1 + 9 P2. |
 
 ## 6. Success Criteria
@@ -89,3 +89,36 @@
 - `004-sk-doc-playbook-markdown-agent-coverage/spec.md`
 - `005-deep-review-p1-p2-remediation/spec.md`
 - `graph-metadata.json`
+
+## Known Issues
+
+This packet's deep-review (5 iterations, converged at iter 4, dashboard at `review/deep-review-dashboard.md`) surfaced the following findings. All are tracked here for downstream discoverability.
+
+### Confirmed pre-existing (from `004/implementation-summary.md`)
+
+| ID | Severity | Title | Status |
+|----|----------|-------|--------|
+| F-001 | P1 | cli-codex non-interactive `@markdown` dispatch ergonomics gap (SD-019 FAIL) | Accepted limitation — see 005 packet + SD-019 scenario `expected_skip_in_non_interactive` field |
+| F-002 | P2 | opencode `--agent general` subagent-fallback message | Accepted — harmless ergonomics noise |
+| F-003 | P2 | sk-doc compact-changelog format vs Keep-a-Changelog raw shape mismatch | Documented — sk-doc compact format is canonical |
+
+### Surfaced by 102 phase-parent deep-review (resolved in 005)
+
+| ID | Severity | Resolution |
+|----|----------|------------|
+| F-000-001 / F-001-001 | P1 | Phase 2 status synced Draft → Complete (this file) |
+| F-000-002 / F-003-001 | P1 | Phase 1→2 handoff acceptance evidence added to `002/checklist.md` CHK-003 |
+| F-001-005 | P1 | 003→004 handoff row annotated with SD-019 dispatch-gap note (this file) |
+| F-003-002 | P1 | 004 REQ-004 partial-objective ambiguity resolved by SD-019 limitation documentation |
+| F-004-001 | P1 | 004 completion_pct 90 → 100; open_questions cleared; status Complete |
+| F-001-002 | P2 | 004/spec.md status Draft → Complete |
+| F-001-003 | P2 | 004/checklist.md items marked with evidence |
+| F-001-004 / F-004-002 | P2 | 002/checklist.md frontmatter completion_pct 0 → 100 |
+| F-002-001 | P2 | SD-020 session IDs in evidence — accepted runtime metadata, no edit needed |
+| F-003-003 / F-004-004 | P2 | Child specs renumbered "N of 3" → "N of 5" |
+| F-003-004 | P2 | 003 prior-review cross-reference added (this file) |
+| F-004-003 | P2 | This Known Issues section added |
+
+### Phase 3 prior deep-review
+
+The Phase 3 (`003-markdown-agent-rename/`) shipped with its own 4-iteration deep-review. Findings registry at `003/review/deep-review-findings-registry.json`; iteration files at `003/review/iterations/`; final dashboard at `003/review/deep-review-dashboard.md`. All Phase 3 findings were closed during that earlier review; cross-referenced here for completeness.

diff --git a/.opencode/skills/sk-doc/manual_testing_playbook/06--agent-dispatch/002-markdown-agent-cli-codex.md b/.opencode/skills/sk-doc/manual_testing_playbook/06--agent-dispatch/002-markdown-agent-cli-codex.md
index 347ef307e493d7a64f0f0261e00d5b19215a57d3..de1c242780321f626ceff32dab1fcbc795d453e6
--- a/.opencode/skills/sk-doc/manual_testing_playbook/06--agent-dispatch/002-markdown-agent-cli-codex.md
+++ b/.opencode/skills/sk-doc/manual_testing_playbook/06--agent-dispatch/002-markdown-agent-cli-codex.md
@@ -3,6 +3,8 @@
 category: 06--agent-dispatch
 title: '@markdown agent dispatch via cli-codex'
 execution_mode: dispatch_real
+expected_skip_in_non_interactive: true
+skip_rationale: "cli-codex @markdown dispatch under `codex exec` non-interactive mode falls back to a sub-agent path that hits Gate 3. Documented as accepted limitation in 102/005 (F-001). Re-enable when codex agent resolver routes @markdown directly under `codex exec`."
 expected_intent: CHANGELOG
 expected_agent: '@markdown'
 expected_resources:
diff --git a/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/001-sk-doc-reference-relocation/spec.md b/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/001-sk-doc-reference-relocation/spec.md
index c37e897e10aae72ad25cd72506f3a2f15cf1905e..ec15aa8b4b52abee1c3f94d3a55b571f96ff7338
--- a/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/001-sk-doc-reference-relocation/spec.md
+++ b/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/001-sk-doc-reference-relocation/spec.md
@@ -40,7 +40,7 @@
 | **Created** | 2026-05-10 |
 | **Branch** | `main` |
 | **Parent Spec** | ../spec.md |
-| **Phase** | 1 of 3 |
+| **Phase** | 1 of 5 |
 | **Predecessor** | None |
 | **Successor** | 002-sk-doc-skill-readme-asset |
 <!-- /ANCHOR:metadata -->
diff --git a/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/002-sk-doc-skill-readme-asset/checklist.md b/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/002-sk-doc-skill-readme-asset/checklist.md
index 61eceb29030846cf89e70f3f96fbea4826989734..d2e69d14fc130cc31665aef1e84401c6bc079863
--- a/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/002-sk-doc-skill-readme-asset/checklist.md
+++ b/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/002-sk-doc-skill-readme-asset/checklist.md
@@ -18,7 +18,7 @@
       fingerprint: "sha256:0000000000000000000000000000000000000000000000000000000000000000"
       session_id: "102-sk-doc-skill-readme-and-structure"
       parent_session_id: null
-    completion_pct: 0
+    completion_pct: 100
     open_questions: []
     answered_questions: []
 ---
@@ -46,7 +46,7 @@
 
 - [x] CHK-001 [P0] Requirements documented in spec.md - REQ-001 through REQ-003 define README analysis, asset creation and wiring.
 - [x] CHK-002 [P0] Technical approach defined in plan.md - Plan uses template-first documentation maintenance and exact reference verification.
-- [x] CHK-003 [P1] Dependencies identified and available - Phase 1 relocation completed and target sk-doc files existed.
+- [x] CHK-003 [P1] Dependencies identified and available - Phase 1 relocation completed and target sk-doc files existed. Phase 1→2 handoff acceptance: `references/specific/` removed and exact-search for that string returned zero implementation-scope hits (verified 2026-05-10 during Phase 1 handoff to Phase 2).
 <!-- /ANCHOR:pre-impl -->
 
 ---
diff --git a/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/002-sk-doc-skill-readme-asset/spec.md b/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/002-sk-doc-skill-readme-asset/spec.md
index a98a7083330cc84f5a9a1118a9b58daa05caea78..bdc80cc72c7cb53faf8417420cd3fbe934c736dc
--- a/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/002-sk-doc-skill-readme-asset/spec.md
+++ b/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/002-sk-doc-skill-readme-asset/spec.md
@@ -40,7 +40,7 @@
 | **Created** | 2026-05-10 |
 | **Branch** | `main` |
 | **Parent Spec** | ../spec.md |
-| **Phase** | 2 of 3 |
+| **Phase** | 2 of 5 |
 | **Predecessor** | 001-sk-doc-reference-relocation |
 | **Successor** | 003-markdown-agent-rename |
 <!-- /ANCHOR:metadata -->
diff --git a/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/003-markdown-agent-rename/spec.md b/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/003-markdown-agent-rename/spec.md
index 8eff03d6e6645b4eee41056b0d7921fd08184670..2db4c060e5d263351e0a5d55857e17d3cd6d5af1
--- a/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/003-markdown-agent-rename/spec.md
+++ b/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/003-markdown-agent-rename/spec.md
@@ -40,7 +40,7 @@
 | **Created** | 2026-05-10 |
 | **Branch** | `main` |
 | **Parent Spec** | ../spec.md |
-| **Phase** | 3 of 3 |
+| **Phase** | 3 of 5 |
 | **Predecessor** | 002-sk-doc-skill-readme-asset |
 | **Successor** | None |
 <!-- /ANCHOR:metadata -->
diff --git a/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/004-sk-doc-playbook-markdown-agent-coverage/checklist.md b/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/004-sk-doc-playbook-markdown-agent-coverage/checklist.md
index 49766ecc639b7ceee77d34be8596ca8c0c8de99f..5ba40417b12e3d150d1d4f05f60c53c6b109800a
--- a/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/004-sk-doc-playbook-markdown-agent-coverage/checklist.md
+++ b/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/004-sk-doc-playbook-markdown-agent-coverage/checklist.md
@@ -44,9 +44,9 @@
 <!-- ANCHOR:pre-impl -->
 ## Pre-Implementation
 
-- [ ] CHK-001 [P0] Requirements documented in spec.md.
-- [ ] CHK-002 [P0] Technical approach defined in plan.md.
-- [ ] CHK-003 [P1] Dependencies identified and available (4 runtime agent mirrors present; `/create:changelog` reachable).
+- [x] CHK-001 [P0] Requirements documented in spec.md. - Evidence: spec.md authored at 004/spec.md with full scope, requirements, success criteria.
+- [x] CHK-002 [P0] Technical approach defined in plan.md. - Evidence: plan.md authored at 004/plan.md with dispatch shapes and architecture pattern.
+- [x] CHK-003 [P1] Dependencies identified and available (4 runtime agent mirrors present; `/create:changelog` reachable). - Evidence: 4 runtime agent mirrors verified; /create:changelog command at .opencode/commands/create/changelog.md exists.
 <!-- /ANCHOR:pre-impl -->
 
 ---
@@ -54,10 +54,10 @@
 <!-- ANCHOR:code-quality -->
 ## Code Quality
 
-- [ ] CHK-010 [P0] Three scenario files exist under `06--agent-dispatch/`.
-- [ ] CHK-011 [P0] Each scenario YAML frontmatter has `execution_mode: dispatch_real` (distinguishes from routing-trace scenarios).
-- [ ] CHK-012 [P1] Scenario shape mirrors SD-010 (sections present: Overview, Scenario Contract, Test Execution table, Setup, Expected Behavior, Success Criteria, Source Metadata).
-- [ ] CHK-013 [P1] Each scenario uses the same task (`/create:changelog` for `sk-test-dummy v0.1.0`) so results are comparable across CLIs.
+- [x] CHK-010 [P0] Three scenario files exist under `06--agent-dispatch/`. - Evidence: 3 scenarios created under 06--agent-dispatch/ (find returned 3 .md files).
+- [x] CHK-011 [P0] Each scenario YAML frontmatter has `execution_mode: dispatch_real` (distinguishes from routing-trace scenarios). - Evidence: each scenario frontmatter contains `execution_mode: dispatch_real`.
+- [x] CHK-012 [P1] Scenario shape mirrors SD-010 (sections present: Overview, Scenario Contract, Test Execution table, Setup, Expected Behavior, Success Criteria, Source Metadata). - Evidence: SD-018/019/020 follow SD-010 template shape with Overview / Scenario Contract / Test Execution / Setup / Expected Behavior / Success Criteria / Source Metadata sections.
+- [x] CHK-013 [P1] Each scenario uses the same task (`/create:changelog` for `sk-test-dummy v0.1.0`) so results are comparable across CLIs. - Evidence: same /create:changelog sk-test-dummy v0.1.0 prompt across all three scenarios.
 <!-- /ANCHOR:code-quality -->
 
 ---
@@ -65,10 +65,10 @@
 <!-- ANCHOR:testing -->
 ## Testing
 
-- [ ] CHK-020 [P0] All 3 scenarios executed against their named CLI.
-- [ ] CHK-021 [P0] Each evidence file contains a verdict footer line (PASS / PARTIAL / FAIL / SKIP).
-- [ ] CHK-022 [P1] Each evidence file shows the `@markdown` agent received the task (routing trace).
-- [ ] CHK-023 [P1] Each evidence file shows sk-doc resources were loaded (resource trace).
+- [x] CHK-020 [P0] All 3 scenarios executed against their named CLI. - Evidence: 3 dispatches executed sequentially 2026-05-11 via cli-claude-code, cli-codex, cli-opencode; evidence files persisted under 004/evidence/.
+- [x] CHK-021 [P0] Each evidence file contains a verdict footer line (PASS / PARTIAL / FAIL / SKIP). - Evidence: SD-018 PASS, SD-019 FAIL, SD-020 PASS verdict footers in evidence files.
+- [x] CHK-022 [P1] Each evidence file shows the `@markdown` agent received the task (routing trace). - Evidence: SD-018 (3 hits) and SD-020 (8 hits) show @markdown invocation; SD-019 surfaces routing gap explicitly.
+- [x] CHK-023 [P1] Each evidence file shows sk-doc resources were loaded (resource trace). - Evidence: SD-018 (2 resource hits) and SD-020 (8 resource hits) show sk-doc resources loaded.
 <!-- /ANCHOR:testing -->
 
 ---
@@ -76,13 +76,13 @@
 <!-- ANCHOR:fix-completeness -->
 ## Fix Completeness
 
-- [ ] CHK-FIX-001 [P0] Each scenario is classified as `dispatch_real` (not routing-trace) — verified via frontmatter `execution_mode`.
-- [ ] CHK-FIX-002 [P0] Cross-consumer inventory: playbook index references the new section in Categories + Scenario Index.
-- [ ] CHK-FIX-003 [P0] Consumer inventory: preamble Global Preconditions notes the execution-real distinction for section 6.
-- [ ] CHK-FIX-004 [P0] Dispatch reliability: scenarios run sequentially (not in parallel) per memory hint on CLI dispatch unreliability.
-- [ ] CHK-FIX-005 [P1] Matrix axes: CLI × task; row count = 3 (3 CLIs × 1 task).
-- [ ] CHK-FIX-006 [P1] Each CLI's specific gotcha is handled in its Setup block (codex `service_tier=fast` + network-access; opencode `--pure` + `</dev/null`).
-- [ ] CHK-FIX-007 [P1] Evidence is pinned to actual transcript content, not summary paraphrase.
+- [x] CHK-FIX-001 [P0] Each scenario is classified as `dispatch_real` (not routing-trace) — verified via frontmatter `execution_mode`. - Evidence: scenarios classified dispatch_real per execution_mode frontmatter; SD-019 reclassified as instance-only documented limitation in 005.
+- [x] CHK-FIX-002 [P0] Cross-consumer inventory: playbook index references the new section in Categories + Scenario Index. - Evidence: 06--agent-dispatch added to manual_testing_playbook.md Categories table and Scenario Index.
+- [x] CHK-FIX-003 [P0] Consumer inventory: preamble Global Preconditions notes the execution-real distinction for section 6. - Evidence: manual_testing_playbook.md Global Preconditions §6 explicitly distinguishes section 6 execution-real from sections 1-5 routing-trace.
+- [x] CHK-FIX-004 [P0] Dispatch reliability: scenarios run sequentially (not in parallel) per memory hint on CLI dispatch unreliability. - Evidence: 3 scenarios dispatched sequentially (one after another), not in parallel.
+- [x] CHK-FIX-005 [P1] Matrix axes: CLI × task; row count = 3 (3 CLIs × 1 task). - Evidence: matrix axes CLI × task; 3 CLIs × 1 task = 3 rows in results table.
+- [x] CHK-FIX-006 [P1] Each CLI's specific gotcha is handled in its Setup block (codex `service_tier=fast` + network-access; opencode `--pure` + `</dev/null`). - Evidence: codex scenario uses `service_tier=fast` + `sandbox_workspace_write.network_access=true`; opencode scenario uses `--pure` + `</dev/null`.
+- [x] CHK-FIX-007 [P1] Evidence is pinned to actual transcript content, not summary paraphrase. - Evidence: each evidence file contains verbatim transcript content; no paraphrase summaries.
 <!-- /ANCHOR:fix-completeness -->
 
 ---
@@ -90,9 +90,9 @@
 <!-- ANCHOR:security -->
 ## Security
 
-- [ ] CHK-030 [P0] No secrets/tokens/API keys persisted into evidence transcripts.
-- [ ] CHK-031 [P0] Stub skill `sk-test-dummy` lives only under `evidence/` or `/tmp/`, never under `.opencode/skills/` proper.
-- [ ] CHK-032 [P1] Each scenario's prompt explicitly forbids installation into the skills tree.
+- [x] CHK-030 [P0] No secrets/tokens/API keys persisted into evidence transcripts. - Evidence: SD-018/019/020 evidence files reviewed; no secrets, tokens, or API keys persisted.
+- [x] CHK-031 [P0] Stub skill `sk-test-dummy` lives only under `evidence/` or `/tmp/`, never under `.opencode/skills/` proper. - Evidence: stub sk-test-dummy not installed under .opencode/skills/; output files only at /tmp/.
+- [x] CHK-032 [P1] Each scenario's prompt explicitly forbids installation into the skills tree. - Evidence: each scenario prompt explicitly forbids installation into the skills tree.
 <!-- /ANCHOR:security -->
 
 ---
@@ -100,9 +100,9 @@
 <!-- ANCHOR:docs -->
 ## Documentation
 
-- [ ] CHK-040 [P1] spec.md / plan.md / tasks.md continuity blocks synchronized to `completion_pct: 100`.
-- [ ] CHK-041 [P1] `implementation-summary.md` populated with 3-row cross-CLI results table.
-- [ ] CHK-042 [P2] Parent `102/spec.md` Phase Documentation Map references phase 4 / 004 row.
+- [x] CHK-040 [P1] spec.md / plan.md / tasks.md continuity blocks synchronized to `completion_pct: 100`. - Evidence: spec.md / plan.md / tasks.md continuity blocks updated to completion_pct: 100 in 005 final pass.
+- [x] CHK-041 [P1] `implementation-summary.md` populated with 3-row cross-CLI results table. - Evidence: implementation-summary.md results table populated with 3 rows (SD-018/019/020) + verdict + key evidence-file path each.
+- [x] CHK-042 [P2] Parent `102/spec.md` Phase Documentation Map references phase 4 / 004 row. - Evidence: parent 102/spec.md Phase Documentation Map references phase 4 row.
 <!-- /ANCHOR:docs -->
 
 ---
@@ -110,8 +110,8 @@
 <!-- ANCHOR:file-org -->
 ## File Organization
 
-- [ ] CHK-050 [P1] Evidence files live under `004/evidence/` only.
-- [ ] CHK-051 [P1] `scratch/` cleaned before completion (contains only `.gitkeep`).
+- [x] CHK-050 [P1] Evidence files live under `004/evidence/` only. - Evidence: evidence/ directory contains only SD-018-cli-claude-code.txt, SD-019-cli-codex.txt, SD-020-cli-opencode.txt.
+- [x] CHK-051 [P1] `scratch/` cleaned before completion (contains only `.gitkeep`). - Evidence: scratch/ contains only .gitkeep.
 <!-- /ANCHOR:file-org -->
 
 ---
@@ -121,9 +121,9 @@
 
 | Category | Total | Verified |
 |----------|-------|----------|
-| P0 Items | 12 | 0/12 |
-| P1 Items | 8 | 0/8 |
-| P2 Items | 1 | 0/1 |
+| P0 Items | 12 | 12/12 |
+| P1 Items | 8 | 8/8 |
+| P2 Items | 1 | 1/1 |
 
-**Verification Date**: [YYYY-MM-DD]
+**Verification Date**: 2026-05-11
 <!-- /ANCHOR:summary -->
diff --git a/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/004-sk-doc-playbook-markdown-agent-coverage/implementation-summary.md b/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/004-sk-doc-playbook-markdown-agent-coverage/implementation-summary.md
index 7729a47c5b2aded0e3d1ac1baa6a6e5247d619ba..e0b3ab9d70d3394f681952e0a124b439e537bc05
--- a/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/004-sk-doc-playbook-markdown-agent-coverage/implementation-summary.md
+++ b/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/004-sk-doc-playbook-markdown-agent-coverage/implementation-summary.md
@@ -26,9 +26,8 @@
       fingerprint: "sha256:0000000000000000000000000000000000000000000000000000000000000000"
       session_id: "102-004-sk-doc-playbook-markdown-agent-coverage"
       parent_session_id: null
-    completion_pct: 90
-    open_questions:
-      - "F-001 SD-019 remediation path: new 102/005 packet OR documented accepted limitation?"
+    completion_pct: 100
+    open_questions: []
     answered_questions: []
 ---
 <!-- SPECKIT_TEMPLATE_SOURCE: impl-summary-core | v2.2 -->
@@ -48,6 +47,7 @@
 |-------|-------|
 | **Spec Folder** | 004-sk-doc-playbook-markdown-agent-coverage |
 | **Completed** | 2026-05-11 (Stages B-E) |
+| **Status** | Complete — 2 PASS, 1 FAIL (documented limitation), deep-review converged |
 | **Level** | 2 |
 | **Verdict** | CONDITIONAL (review-report.md) |
 <!-- /ANCHOR:metadata -->
diff --git a/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/004-sk-doc-playbook-markdown-agent-coverage/spec.md b/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/004-sk-doc-playbook-markdown-agent-coverage/spec.md
index 9fe9f328120d1cef3702fc332b7bd11ad0ba2965..0580070f40e8e51798a105427ab4312b33580d5c
--- a/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/004-sk-doc-playbook-markdown-agent-coverage/spec.md
+++ b/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/004-sk-doc-playbook-markdown-agent-coverage/spec.md
@@ -37,7 +37,7 @@
 |-------|-------|
 | **Level** | 2 |
 | **Priority** | P1 |
-| **Status** | Draft |
+| **Status** | Complete |
 | **Created** | 2026-05-11 |
 | **Branch** | `main` |
 | **Parent Spec** | ../spec.md |
diff --git a/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/spec.md b/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/spec.md
index b7f43cc352bfdd4d85c06627df8523f509c50326..f1e9e3f36bb00a145d4841a78c30a6989f1ae8f3
--- a/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/spec.md
+++ b/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/spec.md
@@ -61,7 +61,7 @@
 | Phase | Folder | Status | Description |
 | --- | --- | --- | --- |
 | 1 | `001-sk-doc-reference-relocation/` | Active | Move `sk-doc/references/specific` documents to `sk-doc/references` root and update all old-path references. |
-| 2 | `002-sk-doc-skill-readme-asset/` | Draft | Analyze skill README conventions and create a dedicated sk-doc skill README asset with references from sk-doc docs and tests. |
+| 2 | `002-sk-doc-skill-readme-asset/` | Complete | Analyze skill README conventions and create a dedicated sk-doc skill README asset with references from sk-doc docs and tests. |
 | 3 | `003-markdown-agent-rename/` | Complete | Rename create-agent identity to markdown-agent identity across runtime agent mirrors and references while preserving `/create:*` commands. |
 | 4 | `004-sk-doc-playbook-markdown-agent-coverage/` | Active | Add `06--agent-dispatch/` section to the sk-doc manual testing playbook with three scenarios that dispatch `@markdown` across cli-claude-code, cli-codex, and cli-opencode; execute and capture evidence. |
 | 5 | `005-deep-review-p1-p2-remediation/` | Active | Remediate all 7 P1 and 9 P2 findings from the 102 phase-parent deep-review: status sync, handoff documentation, checklist marking, parent-level known-issues register, and SD-019 limitation documentation. |
@@ -72,7 +72,7 @@
 | --- | --- | --- | --- |
 | `001-sk-doc-reference-relocation` | `002-sk-doc-skill-readme-asset` | `references/specific` is removed, files are in `references/`, and old path references are gone. | Exact search for `references/specific` returns no implementation-scope hits. |
 | `002-sk-doc-skill-readme-asset` | `003-markdown-agent-rename` | Dedicated skill README asset exists and is referenced from sk-doc creation guidance and testing docs. | File exists under `assets/skill/` and references resolve from `SKILL.md`, `references/skill_creation.md`, and manual testing docs. |
-| `003-markdown-agent-rename` | `004-sk-doc-playbook-markdown-agent-coverage` | `@markdown` agent is wired across 4 runtime mirrors and routed by orchestrate.md. | `ls .opencode/agents/markdown.md .claude/agents/markdown.md .gemini/agents/markdown.md .codex/agents/markdown.toml` resolves all four. |
+| `003-markdown-agent-rename` | `004-sk-doc-playbook-markdown-agent-coverage` | `@markdown` agent is wired across 4 runtime mirrors and routed by orchestrate.md. NOTE: SD-019 surfaced a cli-codex non-interactive @markdown dispatch gap (F-001) — documented as accepted limitation in 005-deep-review-p1-p2-remediation; codex `@markdown` dispatch under `codex exec` falls back to a sub-agent path that hits Gate 3. | `ls .opencode/agents/markdown.md .claude/agents/markdown.md .gemini/agents/markdown.md .codex/agents/markdown.toml` resolves all four. |
 | `004-sk-doc-playbook-markdown-agent-coverage` | `005-deep-review-p1-p2-remediation` | Deep-review converged with verdict CONDITIONAL: 0 P0, 7 P1, 9 P2 findings; SD-019 cli-codex `@markdown` dispatch gap surfaced as F-001. | `.opencode/specs/.../102/review/deep-review-dashboard.md` exists; `004/implementation-summary.md` Review Outcome section cites 7 P1 + 9 P2. |
 
 ## 6. Success Criteria
@@ -89,3 +89,36 @@
 - `004-sk-doc-playbook-markdown-agent-coverage/spec.md`
 - `005-deep-review-p1-p2-remediation/spec.md`
 - `graph-metadata.json`
+
+## Known Issues
+
+This packet's deep-review (5 iterations, converged at iter 4, dashboard at `review/deep-review-dashboard.md`) surfaced the following findings. All are tracked here for downstream discoverability.
+
+### Confirmed pre-existing (from `004/implementation-summary.md`)
+
+| ID | Severity | Title | Status |
+|----|----------|-------|--------|
+| F-001 | P1 | cli-codex non-interactive `@markdown` dispatch ergonomics gap (SD-019 FAIL) | Accepted limitation — see 005 packet + SD-019 scenario `expected_skip_in_non_interactive` field |
+| F-002 | P2 | opencode `--agent general` subagent-fallback message | Accepted — harmless ergonomics noise |
+| F-003 | P2 | sk-doc compact-changelog format vs Keep-a-Changelog raw shape mismatch | Documented — sk-doc compact format is canonical |
+
+### Surfaced by 102 phase-parent deep-review (resolved in 005)
+
+| ID | Severity | Resolution |
+|----|----------|------------|
+| F-000-001 / F-001-001 | P1 | Phase 2 status synced Draft → Complete (this file) |
+| F-000-002 / F-003-001 | P1 | Phase 1→2 handoff acceptance evidence added to `002/checklist.md` CHK-003 |
+| F-001-005 | P1 | 003→004 handoff row annotated with SD-019 dispatch-gap note (this file) |
+| F-003-002 | P1 | 004 REQ-004 partial-objective ambiguity resolved by SD-019 limitation documentation |
+| F-004-001 | P1 | 004 completion_pct 90 → 100; open_questions cleared; status Complete |
+| F-001-002 | P2 | 004/spec.md status Draft → Complete |
+| F-001-003 | P2 | 004/checklist.md items marked with evidence |
+| F-001-004 / F-004-002 | P2 | 002/checklist.md frontmatter completion_pct 0 → 100 |
+| F-002-001 | P2 | SD-020 session IDs in evidence — accepted runtime metadata, no edit needed |
+| F-003-003 / F-004-004 | P2 | Child specs renumbered "N of 3" → "N of 5" |
+| F-003-004 | P2 | 003 prior-review cross-reference added (this file) |
+| F-004-003 | P2 | This Known Issues section added |
+
+### Phase 3 prior deep-review
+
+The Phase 3 (`003-markdown-agent-rename/`) shipped with its own 4-iteration deep-review. Findings registry at `003/review/deep-review-findings-registry.json`; iteration files at `003/review/iterations/`; final dashboard at `003/review/deep-review-dashboard.md`. All Phase 3 findings were closed during that earlier review; cross-referenced here for completeness.

codex
Modified files:
- `.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/spec.md`
- `.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/001-sk-doc-reference-relocation/spec.md`
- `.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/002-sk-doc-skill-readme-asset/spec.md`
- `.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/002-sk-doc-skill-readme-asset/checklist.md`
- `.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/003-markdown-agent-rename/spec.md`
- `.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/004-sk-doc-playbook-markdown-agent-coverage/spec.md`
- `.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/004-sk-doc-playbook-markdown-agent-coverage/checklist.md`
- `.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/004-sk-doc-playbook-markdown-agent-coverage/implementation-summary.md`
- `.opencode/skills/sk-doc/manual_testing_playbook/06--agent-dispatch/002-markdown-agent-cli-codex.md`

- T010: Phase 2 parent status changed from Draft to Complete.
- T011: 003→004 handoff row annotated with the SD-019 cli-codex dispatch-gap note.
- T012: CHK-003 gained Phase 1→2 handoff acceptance evidence.
- T013: 004 spec status changed from Draft to Complete.
- T014: 004 implementation summary completion_pct set to 100, open_questions cleared, and Complete status row added because the cited Active status row was not present as-read.
- T015: SD-019 scenario frontmatter now marks the non-interactive skip expectation and rationale.
- T016: Parent Known Issues section appended.
- T017: no-op (not defined in the requested edit list).
- T018: no-op (not defined in the requested edit list).
- T019: no-op (not defined in the requested edit list).
- T020: Phase 001 metadata changed from 1 of 3 to 1 of 5.
- T021: Phase 002 metadata changed from 2 of 3 to 2 of 5.
- T022: Phase 003 metadata changed from 3 of 3 to 3 of 5.
- T023: Phase 002 checklist completion_pct changed from 0 to 100.
- T024: Phase 004 checklist items marked complete with requested evidence, summary counts updated, date set to 2026-05-11.
- T025: no-op (covered by T016 Known Issues Phase 3 prior deep-review section).
- T026: no-op (accepted runtime metadata, no edit requested).
- T027: no-op (duplicate of F-004-001, covered by T014).
- T028: no-op (consolidated with F-000-001, covered by T010).

Could not apply: none.
diff --git a/.opencode/skills/sk-doc/manual_testing_playbook/06--agent-dispatch/002-markdown-agent-cli-codex.md b/.opencode/skills/sk-doc/manual_testing_playbook/06--agent-dispatch/002-markdown-agent-cli-codex.md
index 347ef307e493d7a64f0f0261e00d5b19215a57d3..de1c242780321f626ceff32dab1fcbc795d453e6
--- a/.opencode/skills/sk-doc/manual_testing_playbook/06--agent-dispatch/002-markdown-agent-cli-codex.md
+++ b/.opencode/skills/sk-doc/manual_testing_playbook/06--agent-dispatch/002-markdown-agent-cli-codex.md
@@ -3,6 +3,8 @@
 category: 06--agent-dispatch
 title: '@markdown agent dispatch via cli-codex'
 execution_mode: dispatch_real
+expected_skip_in_non_interactive: true
+skip_rationale: "cli-codex @markdown dispatch under `codex exec` non-interactive mode falls back to a sub-agent path that hits Gate 3. Documented as accepted limitation in 102/005 (F-001). Re-enable when codex agent resolver routes @markdown directly under `codex exec`."
 expected_intent: CHANGELOG
 expected_agent: '@markdown'
 expected_resources:
diff --git a/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/001-sk-doc-reference-relocation/spec.md b/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/001-sk-doc-reference-relocation/spec.md
index c37e897e10aae72ad25cd72506f3a2f15cf1905e..ec15aa8b4b52abee1c3f94d3a55b571f96ff7338
--- a/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/001-sk-doc-reference-relocation/spec.md
+++ b/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/001-sk-doc-reference-relocation/spec.md
@@ -40,7 +40,7 @@
 | **Created** | 2026-05-10 |
 | **Branch** | `main` |
 | **Parent Spec** | ../spec.md |
-| **Phase** | 1 of 3 |
+| **Phase** | 1 of 5 |
 | **Predecessor** | None |
 | **Successor** | 002-sk-doc-skill-readme-asset |
 <!-- /ANCHOR:metadata -->
diff --git a/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/002-sk-doc-skill-readme-asset/checklist.md b/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/002-sk-doc-skill-readme-asset/checklist.md
index 61eceb29030846cf89e70f3f96fbea4826989734..d2e69d14fc130cc31665aef1e84401c6bc079863
--- a/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/002-sk-doc-skill-readme-asset/checklist.md
+++ b/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/002-sk-doc-skill-readme-asset/checklist.md
@@ -18,7 +18,7 @@
       fingerprint: "sha256:0000000000000000000000000000000000000000000000000000000000000000"
       session_id: "102-sk-doc-skill-readme-and-structure"
       parent_session_id: null
-    completion_pct: 0
+    completion_pct: 100
     open_questions: []
     answered_questions: []
 ---
@@ -46,7 +46,7 @@
 
 - [x] CHK-001 [P0] Requirements documented in spec.md - REQ-001 through REQ-003 define README analysis, asset creation and wiring.
 - [x] CHK-002 [P0] Technical approach defined in plan.md - Plan uses template-first documentation maintenance and exact reference verification.
-- [x] CHK-003 [P1] Dependencies identified and available - Phase 1 relocation completed and target sk-doc files existed.
+- [x] CHK-003 [P1] Dependencies identified and available - Phase 1 relocation completed and target sk-doc files existed. Phase 1→2 handoff acceptance: `references/specific/` removed and exact-search for that string returned zero implementation-scope hits (verified 2026-05-10 during Phase 1 handoff to Phase 2).
 <!-- /ANCHOR:pre-impl -->
 
 ---
diff --git a/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/002-sk-doc-skill-readme-asset/spec.md b/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/002-sk-doc-skill-readme-asset/spec.md
index a98a7083330cc84f5a9a1118a9b58daa05caea78..bdc80cc72c7cb53faf8417420cd3fbe934c736dc
--- a/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/002-sk-doc-skill-readme-asset/spec.md
+++ b/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/002-sk-doc-skill-readme-asset/spec.md
@@ -40,7 +40,7 @@
 | **Created** | 2026-05-10 |
 | **Branch** | `main` |
 | **Parent Spec** | ../spec.md |
-| **Phase** | 2 of 3 |
+| **Phase** | 2 of 5 |
 | **Predecessor** | 001-sk-doc-reference-relocation |
 | **Successor** | 003-markdown-agent-rename |
 <!-- /ANCHOR:metadata -->
diff --git a/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/003-markdown-agent-rename/spec.md b/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/003-markdown-agent-rename/spec.md
index 8eff03d6e6645b4eee41056b0d7921fd08184670..2db4c060e5d263351e0a5d55857e17d3cd6d5af1
--- a/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/003-markdown-agent-rename/spec.md
+++ b/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/003-markdown-agent-rename/spec.md
@@ -40,7 +40,7 @@
 | **Created** | 2026-05-10 |
 | **Branch** | `main` |
 | **Parent Spec** | ../spec.md |
-| **Phase** | 3 of 3 |
+| **Phase** | 3 of 5 |
 | **Predecessor** | 002-sk-doc-skill-readme-asset |
 | **Successor** | None |
 <!-- /ANCHOR:metadata -->
diff --git a/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/004-sk-doc-playbook-markdown-agent-coverage/checklist.md b/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/004-sk-doc-playbook-markdown-agent-coverage/checklist.md
index 49766ecc639b7ceee77d34be8596ca8c0c8de99f..5ba40417b12e3d150d1d4f05f60c53c6b109800a
--- a/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/004-sk-doc-playbook-markdown-agent-coverage/checklist.md
+++ b/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/004-sk-doc-playbook-markdown-agent-coverage/checklist.md
@@ -44,9 +44,9 @@
 <!-- ANCHOR:pre-impl -->
 ## Pre-Implementation
 
-- [ ] CHK-001 [P0] Requirements documented in spec.md.
-- [ ] CHK-002 [P0] Technical approach defined in plan.md.
-- [ ] CHK-003 [P1] Dependencies identified and available (4 runtime agent mirrors present; `/create:changelog` reachable).
+- [x] CHK-001 [P0] Requirements documented in spec.md. - Evidence: spec.md authored at 004/spec.md with full scope, requirements, success criteria.
+- [x] CHK-002 [P0] Technical approach defined in plan.md. - Evidence: plan.md authored at 004/plan.md with dispatch shapes and architecture pattern.
+- [x] CHK-003 [P1] Dependencies identified and available (4 runtime agent mirrors present; `/create:changelog` reachable). - Evidence: 4 runtime agent mirrors verified; /create:changelog command at .opencode/commands/create/changelog.md exists.
 <!-- /ANCHOR:pre-impl -->
 
 ---
@@ -54,10 +54,10 @@
 <!-- ANCHOR:code-quality -->
 ## Code Quality
 
-- [ ] CHK-010 [P0] Three scenario files exist under `06--agent-dispatch/`.
-- [ ] CHK-011 [P0] Each scenario YAML frontmatter has `execution_mode: dispatch_real` (distinguishes from routing-trace scenarios).
-- [ ] CHK-012 [P1] Scenario shape mirrors SD-010 (sections present: Overview, Scenario Contract, Test Execution table, Setup, Expected Behavior, Success Criteria, Source Metadata).
-- [ ] CHK-013 [P1] Each scenario uses the same task (`/create:changelog` for `sk-test-dummy v0.1.0`) so results are comparable across CLIs.
+- [x] CHK-010 [P0] Three scenario files exist under `06--agent-dispatch/`. - Evidence: 3 scenarios created under 06--agent-dispatch/ (find returned 3 .md files).
+- [x] CHK-011 [P0] Each scenario YAML frontmatter has `execution_mode: dispatch_real` (distinguishes from routing-trace scenarios). - Evidence: each scenario frontmatter contains `execution_mode: dispatch_real`.
+- [x] CHK-012 [P1] Scenario shape mirrors SD-010 (sections present: Overview, Scenario Contract, Test Execution table, Setup, Expected Behavior, Success Criteria, Source Metadata). - Evidence: SD-018/019/020 follow SD-010 template shape with Overview / Scenario Contract / Test Execution / Setup / Expected Behavior / Success Criteria / Source Metadata sections.
+- [x] CHK-013 [P1] Each scenario uses the same task (`/create:changelog` for `sk-test-dummy v0.1.0`) so results are comparable across CLIs. - Evidence: same /create:changelog sk-test-dummy v0.1.0 prompt across all three scenarios.
 <!-- /ANCHOR:code-quality -->
 
 ---
@@ -65,10 +65,10 @@
 <!-- ANCHOR:testing -->
 ## Testing
 
-- [ ] CHK-020 [P0] All 3 scenarios executed against their named CLI.
-- [ ] CHK-021 [P0] Each evidence file contains a verdict footer line (PASS / PARTIAL / FAIL / SKIP).
-- [ ] CHK-022 [P1] Each evidence file shows the `@markdown` agent received the task (routing trace).
-- [ ] CHK-023 [P1] Each evidence file shows sk-doc resources were loaded (resource trace).
+- [x] CHK-020 [P0] All 3 scenarios executed against their named CLI. - Evidence: 3 dispatches executed sequentially 2026-05-11 via cli-claude-code, cli-codex, cli-opencode; evidence files persisted under 004/evidence/.
+- [x] CHK-021 [P0] Each evidence file contains a verdict footer line (PASS / PARTIAL / FAIL / SKIP). - Evidence: SD-018 PASS, SD-019 FAIL, SD-020 PASS verdict footers in evidence files.
+- [x] CHK-022 [P1] Each evidence file shows the `@markdown` agent received the task (routing trace). - Evidence: SD-018 (3 hits) and SD-020 (8 hits) show @markdown invocation; SD-019 surfaces routing gap explicitly.
+- [x] CHK-023 [P1] Each evidence file shows sk-doc resources were loaded (resource trace). - Evidence: SD-018 (2 resource hits) and SD-020 (8 resource hits) show sk-doc resources loaded.
 <!-- /ANCHOR:testing -->
 
 ---
@@ -76,13 +76,13 @@
 <!-- ANCHOR:fix-completeness -->
 ## Fix Completeness
 
-- [ ] CHK-FIX-001 [P0] Each scenario is classified as `dispatch_real` (not routing-trace) — verified via frontmatter `execution_mode`.
-- [ ] CHK-FIX-002 [P0] Cross-consumer inventory: playbook index references the new section in Categories + Scenario Index.
-- [ ] CHK-FIX-003 [P0] Consumer inventory: preamble Global Preconditions notes the execution-real distinction for section 6.
-- [ ] CHK-FIX-004 [P0] Dispatch reliability: scenarios run sequentially (not in parallel) per memory hint on CLI dispatch unreliability.
-- [ ] CHK-FIX-005 [P1] Matrix axes: CLI × task; row count = 3 (3 CLIs × 1 task).
-- [ ] CHK-FIX-006 [P1] Each CLI's specific gotcha is handled in its Setup block (codex `service_tier=fast` + network-access; opencode `--pure` + `</dev/null`).
-- [ ] CHK-FIX-007 [P1] Evidence is pinned to actual transcript content, not summary paraphrase.
+- [x] CHK-FIX-001 [P0] Each scenario is classified as `dispatch_real` (not routing-trace) — verified via frontmatter `execution_mode`. - Evidence: scenarios classified dispatch_real per execution_mode frontmatter; SD-019 reclassified as instance-only documented limitation in 005.
+- [x] CHK-FIX-002 [P0] Cross-consumer inventory: playbook index references the new section in Categories + Scenario Index. - Evidence: 06--agent-dispatch added to manual_testing_playbook.md Categories table and Scenario Index.
+- [x] CHK-FIX-003 [P0] Consumer inventory: preamble Global Preconditions notes the execution-real distinction for section 6. - Evidence: manual_testing_playbook.md Global Preconditions §6 explicitly distinguishes section 6 execution-real from sections 1-5 routing-trace.
+- [x] CHK-FIX-004 [P0] Dispatch reliability: scenarios run sequentially (not in parallel) per memory hint on CLI dispatch unreliability. - Evidence: 3 scenarios dispatched sequentially (one after another), not in parallel.
+- [x] CHK-FIX-005 [P1] Matrix axes: CLI × task; row count = 3 (3 CLIs × 1 task). - Evidence: matrix axes CLI × task; 3 CLIs × 1 task = 3 rows in results table.
+- [x] CHK-FIX-006 [P1] Each CLI's specific gotcha is handled in its Setup block (codex `service_tier=fast` + network-access; opencode `--pure` + `</dev/null`). - Evidence: codex scenario uses `service_tier=fast` + `sandbox_workspace_write.network_access=true`; opencode scenario uses `--pure` + `</dev/null`.
+- [x] CHK-FIX-007 [P1] Evidence is pinned to actual transcript content, not summary paraphrase. - Evidence: each evidence file contains verbatim transcript content; no paraphrase summaries.
 <!-- /ANCHOR:fix-completeness -->
 
 ---
@@ -90,9 +90,9 @@
 <!-- ANCHOR:security -->
 ## Security
 
-- [ ] CHK-030 [P0] No secrets/tokens/API keys persisted into evidence transcripts.
-- [ ] CHK-031 [P0] Stub skill `sk-test-dummy` lives only under `evidence/` or `/tmp/`, never under `.opencode/skills/` proper.
-- [ ] CHK-032 [P1] Each scenario's prompt explicitly forbids installation into the skills tree.
+- [x] CHK-030 [P0] No secrets/tokens/API keys persisted into evidence transcripts. - Evidence: SD-018/019/020 evidence files reviewed; no secrets, tokens, or API keys persisted.
+- [x] CHK-031 [P0] Stub skill `sk-test-dummy` lives only under `evidence/` or `/tmp/`, never under `.opencode/skills/` proper. - Evidence: stub sk-test-dummy not installed under .opencode/skills/; output files only at /tmp/.
+- [x] CHK-032 [P1] Each scenario's prompt explicitly forbids installation into the skills tree. - Evidence: each scenario prompt explicitly forbids installation into the skills tree.
 <!-- /ANCHOR:security -->
 
 ---
@@ -100,9 +100,9 @@
 <!-- ANCHOR:docs -->
 ## Documentation
 
-- [ ] CHK-040 [P1] spec.md / plan.md / tasks.md continuity blocks synchronized to `completion_pct: 100`.
-- [ ] CHK-041 [P1] `implementation-summary.md` populated with 3-row cross-CLI results table.
-- [ ] CHK-042 [P2] Parent `102/spec.md` Phase Documentation Map references phase 4 / 004 row.
+- [x] CHK-040 [P1] spec.md / plan.md / tasks.md continuity blocks synchronized to `completion_pct: 100`. - Evidence: spec.md / plan.md / tasks.md continuity blocks updated to completion_pct: 100 in 005 final pass.
+- [x] CHK-041 [P1] `implementation-summary.md` populated with 3-row cross-CLI results table. - Evidence: implementation-summary.md results table populated with 3 rows (SD-018/019/020) + verdict + key evidence-file path each.
+- [x] CHK-042 [P2] Parent `102/spec.md` Phase Documentation Map references phase 4 / 004 row. - Evidence: parent 102/spec.md Phase Documentation Map references phase 4 row.
 <!-- /ANCHOR:docs -->
 
 ---
@@ -110,8 +110,8 @@
 <!-- ANCHOR:file-org -->
 ## File Organization
 
-- [ ] CHK-050 [P1] Evidence files live under `004/evidence/` only.
-- [ ] CHK-051 [P1] `scratch/` cleaned before completion (contains only `.gitkeep`).
+- [x] CHK-050 [P1] Evidence files live under `004/evidence/` only. - Evidence: evidence/ directory contains only SD-018-cli-claude-code.txt, SD-019-cli-codex.txt, SD-020-cli-opencode.txt.
+- [x] CHK-051 [P1] `scratch/` cleaned before completion (contains only `.gitkeep`). - Evidence: scratch/ contains only .gitkeep.
 <!-- /ANCHOR:file-org -->
 
 ---
@@ -121,9 +121,9 @@
 
 | Category | Total | Verified |
 |----------|-------|----------|
-| P0 Items | 12 | 0/12 |
-| P1 Items | 8 | 0/8 |
-| P2 Items | 1 | 0/1 |
+| P0 Items | 12 | 12/12 |
+| P1 Items | 8 | 8/8 |
+| P2 Items | 1 | 1/1 |
 
-**Verification Date**: [YYYY-MM-DD]
+**Verification Date**: 2026-05-11
 <!-- /ANCHOR:summary -->
diff --git a/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/004-sk-doc-playbook-markdown-agent-coverage/implementation-summary.md b/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/004-sk-doc-playbook-markdown-agent-coverage/implementation-summary.md
index 7729a47c5b2aded0e3d1ac1baa6a6e5247d619ba..e0b3ab9d70d3394f681952e0a124b439e537bc05
--- a/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/004-sk-doc-playbook-markdown-agent-coverage/implementation-summary.md
+++ b/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/004-sk-doc-playbook-markdown-agent-coverage/implementation-summary.md
@@ -26,9 +26,8 @@
       fingerprint: "sha256:0000000000000000000000000000000000000000000000000000000000000000"
       session_id: "102-004-sk-doc-playbook-markdown-agent-coverage"
       parent_session_id: null
-    completion_pct: 90
-    open_questions:
-      - "F-001 SD-019 remediation path: new 102/005 packet OR documented accepted limitation?"
+    completion_pct: 100
+    open_questions: []
     answered_questions: []
 ---
 <!-- SPECKIT_TEMPLATE_SOURCE: impl-summary-core | v2.2 -->
@@ -48,6 +47,7 @@
 |-------|-------|
 | **Spec Folder** | 004-sk-doc-playbook-markdown-agent-coverage |
 | **Completed** | 2026-05-11 (Stages B-E) |
+| **Status** | Complete — 2 PASS, 1 FAIL (documented limitation), deep-review converged |
 | **Level** | 2 |
 | **Verdict** | CONDITIONAL (review-report.md) |
 <!-- /ANCHOR:metadata -->
diff --git a/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/004-sk-doc-playbook-markdown-agent-coverage/spec.md b/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/004-sk-doc-playbook-markdown-agent-coverage/spec.md
index 9fe9f328120d1cef3702fc332b7bd11ad0ba2965..0580070f40e8e51798a105427ab4312b33580d5c
--- a/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/004-sk-doc-playbook-markdown-agent-coverage/spec.md
+++ b/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/004-sk-doc-playbook-markdown-agent-coverage/spec.md
@@ -37,7 +37,7 @@
 |-------|-------|
 | **Level** | 2 |
 | **Priority** | P1 |
-| **Status** | Draft |
+| **Status** | Complete |
 | **Created** | 2026-05-11 |
 | **Branch** | `main` |
 | **Parent Spec** | ../spec.md |
diff --git a/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/spec.md b/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/spec.md
index b7f43cc352bfdd4d85c06627df8523f509c50326..f1e9e3f36bb00a145d4841a78c30a6989f1ae8f3
--- a/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/spec.md
+++ b/.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/spec.md
@@ -61,7 +61,7 @@
 | Phase | Folder | Status | Description |
 | --- | --- | --- | --- |
 | 1 | `001-sk-doc-reference-relocation/` | Active | Move `sk-doc/references/specific` documents to `sk-doc/references` root and update all old-path references. |
-| 2 | `002-sk-doc-skill-readme-asset/` | Draft | Analyze skill README conventions and create a dedicated sk-doc skill README asset with references from sk-doc docs and tests. |
+| 2 | `002-sk-doc-skill-readme-asset/` | Complete | Analyze skill README conventions and create a dedicated sk-doc skill README asset with references from sk-doc docs and tests. |
 | 3 | `003-markdown-agent-rename/` | Complete | Rename create-agent identity to markdown-agent identity across runtime agent mirrors and references while preserving `/create:*` commands. |
 | 4 | `004-sk-doc-playbook-markdown-agent-coverage/` | Active | Add `06--agent-dispatch/` section to the sk-doc manual testing playbook with three scenarios that dispatch `@markdown` across cli-claude-code, cli-codex, and cli-opencode; execute and capture evidence. |
 | 5 | `005-deep-review-p1-p2-remediation/` | Active | Remediate all 7 P1 and 9 P2 findings from the 102 phase-parent deep-review: status sync, handoff documentation, checklist marking, parent-level known-issues register, and SD-019 limitation documentation. |
@@ -72,7 +72,7 @@
 | --- | --- | --- | --- |
 | `001-sk-doc-reference-relocation` | `002-sk-doc-skill-readme-asset` | `references/specific` is removed, files are in `references/`, and old path references are gone. | Exact search for `references/specific` returns no implementation-scope hits. |
 | `002-sk-doc-skill-readme-asset` | `003-markdown-agent-rename` | Dedicated skill README asset exists and is referenced from sk-doc creation guidance and testing docs. | File exists under `assets/skill/` and references resolve from `SKILL.md`, `references/skill_creation.md`, and manual testing docs. |
-| `003-markdown-agent-rename` | `004-sk-doc-playbook-markdown-agent-coverage` | `@markdown` agent is wired across 4 runtime mirrors and routed by orchestrate.md. | `ls .opencode/agents/markdown.md .claude/agents/markdown.md .gemini/agents/markdown.md .codex/agents/markdown.toml` resolves all four. |
+| `003-markdown-agent-rename` | `004-sk-doc-playbook-markdown-agent-coverage` | `@markdown` agent is wired across 4 runtime mirrors and routed by orchestrate.md. NOTE: SD-019 surfaced a cli-codex non-interactive @markdown dispatch gap (F-001) — documented as accepted limitation in 005-deep-review-p1-p2-remediation; codex `@markdown` dispatch under `codex exec` falls back to a sub-agent path that hits Gate 3. | `ls .opencode/agents/markdown.md .claude/agents/markdown.md .gemini/agents/markdown.md .codex/agents/markdown.toml` resolves all four. |
 | `004-sk-doc-playbook-markdown-agent-coverage` | `005-deep-review-p1-p2-remediation` | Deep-review converged with verdict CONDITIONAL: 0 P0, 7 P1, 9 P2 findings; SD-019 cli-codex `@markdown` dispatch gap surfaced as F-001. | `.opencode/specs/.../102/review/deep-review-dashboard.md` exists; `004/implementation-summary.md` Review Outcome section cites 7 P1 + 9 P2. |
 
 ## 6. Success Criteria
@@ -89,3 +89,36 @@
 - `004-sk-doc-playbook-markdown-agent-coverage/spec.md`
 - `005-deep-review-p1-p2-remediation/spec.md`
 - `graph-metadata.json`
+
+## Known Issues
+
+This packet's deep-review (5 iterations, converged at iter 4, dashboard at `review/deep-review-dashboard.md`) surfaced the following findings. All are tracked here for downstream discoverability.
+
+### Confirmed pre-existing (from `004/implementation-summary.md`)
+
+| ID | Severity | Title | Status |
+|----|----------|-------|--------|
+| F-001 | P1 | cli-codex non-interactive `@markdown` dispatch ergonomics gap (SD-019 FAIL) | Accepted limitation — see 005 packet + SD-019 scenario `expected_skip_in_non_interactive` field |
+| F-002 | P2 | opencode `--agent general` subagent-fallback message | Accepted — harmless ergonomics noise |
+| F-003 | P2 | sk-doc compact-changelog format vs Keep-a-Changelog raw shape mismatch | Documented — sk-doc compact format is canonical |
+
+### Surfaced by 102 phase-parent deep-review (resolved in 005)
+
+| ID | Severity | Resolution |
+|----|----------|------------|
+| F-000-001 / F-001-001 | P1 | Phase 2 status synced Draft → Complete (this file) |
+| F-000-002 / F-003-001 | P1 | Phase 1→2 handoff acceptance evidence added to `002/checklist.md` CHK-003 |
+| F-001-005 | P1 | 003→004 handoff row annotated with SD-019 dispatch-gap note (this file) |
+| F-003-002 | P1 | 004 REQ-004 partial-objective ambiguity resolved by SD-019 limitation documentation |
+| F-004-001 | P1 | 004 completion_pct 90 → 100; open_questions cleared; status Complete |
+| F-001-002 | P2 | 004/spec.md status Draft → Complete |
+| F-001-003 | P2 | 004/checklist.md items marked with evidence |
+| F-001-004 / F-004-002 | P2 | 002/checklist.md frontmatter completion_pct 0 → 100 |
+| F-002-001 | P2 | SD-020 session IDs in evidence — accepted runtime metadata, no edit needed |
+| F-003-003 / F-004-004 | P2 | Child specs renumbered "N of 3" → "N of 5" |
+| F-003-004 | P2 | 003 prior-review cross-reference added (this file) |
+| F-004-003 | P2 | This Known Issues section added |
+
+### Phase 3 prior deep-review
+
+The Phase 3 (`003-markdown-agent-rename/`) shipped with its own 4-iteration deep-review. Findings registry at `003/review/deep-review-findings-registry.json`; iteration files at `003/review/iterations/`; final dashboard at `003/review/deep-review-dashboard.md`. All Phase 3 findings were closed during that earlier review; cross-referenced here for completeness.

hook: Stop
hook: Stop Completed
tokens used
71,422
Modified files:
- `.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/spec.md`
- `.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/001-sk-doc-reference-relocation/spec.md`
- `.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/002-sk-doc-skill-readme-asset/spec.md`
- `.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/002-sk-doc-skill-readme-asset/checklist.md`
- `.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/003-markdown-agent-rename/spec.md`
- `.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/004-sk-doc-playbook-markdown-agent-coverage/spec.md`
- `.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/004-sk-doc-playbook-markdown-agent-coverage/checklist.md`
- `.opencode/specs/skilled-agent-orchestration/102-sk-doc-skill-readme-and-structure/004-sk-doc-playbook-markdown-agent-coverage/implementation-summary.md`
- `.opencode/skills/sk-doc/manual_testing_playbook/06--agent-dispatch/002-markdown-agent-cli-codex.md`

- T010: Phase 2 parent status changed from Draft to Complete.
- T011: 003→004 handoff row annotated with the SD-019 cli-codex dispatch-gap note.
- T012: CHK-003 gained Phase 1→2 handoff acceptance evidence.
- T013: 004 spec status changed from Draft to Complete.
- T014: 004 implementation summary completion_pct set to 100, open_questions cleared, and Complete status row added because the cited Active status row was not present as-read.
- T015: SD-019 scenario frontmatter now marks the non-interactive skip expectation and rationale.
- T016: Parent Known Issues section appended.
- T017: no-op (not defined in the requested edit list).
- T018: no-op (not defined in the requested edit list).
- T019: no-op (not defined in the requested edit list).
- T020: Phase 001 metadata changed from 1 of 3 to 1 of 5.
- T021: Phase 002 metadata changed from 2 of 3 to 2 of 5.
- T022: Phase 003 metadata changed from 3 of 3 to 3 of 5.
- T023: Phase 002 checklist completion_pct changed from 0 to 100.
- T024: Phase 004 checklist items marked complete with requested evidence, summary counts updated, date set to 2026-05-11.
- T025: no-op (covered by T016 Known Issues Phase 3 prior deep-review section).
- T026: no-op (accepted runtime metadata, no edit requested).
- T027: no-op (duplicate of F-004-001, covered by T014).
- T028: no-op (consolidated with F-000-001, covered by T010).

Could not apply: none.

=== END: 2026-05-11T10:35:20+02:00 ===
=== EXIT CODE: 0 ===
=== WALL CLOCK: 129s ===
