Plan structure
The execution plan format that pocketto-pi structure parses, what structuring produces from it, and the checks that fail the mandatory dry-run.
An execution plan is the handoff artifact between planning and structuring. pocketto-pi structure parses only one shape: everything else fails the mandatory dry-run.
The plan document
# EXECUTION PLAN — <feature name>
**Date:** YYYY-MM-DD
**Spec:** docs/pocket/spec/{date}-{slug}/topic.md
**Status:** draft | approved
**Total tasks:** N
## Execution Overview
### Recommended Order
T1 → T2, T3 (parallel) → T4 → T5, T6 (parallel) → T7
### Parallelizable Groups
| Group | Tasks | Unblocked After |
|-------|-------|-----------------|
### File Structure Map
Rule: <rule name>
Create: exact/path/new-file.ext (created by: T<N>)
Modify: exact/path/existing.ext
Test: tests/exact/path/test.ext
## Pocket Packets
### Task 1: <name> [prereq]
## OBJECTIVE … (full packet per task, see Pocket Packets)
## Plan Summary
| Task | Name | Depends | Complexity | Key Verification |The parser anchors on: the # EXECUTION PLAN — <name> title (the title uses an em dash; the parser matches it literally), a ## Pocket Packets section, and ### Task N: <name> [annotation] headings. Task count selects no other schema. A plan too small for packets belongs in hotfix, not in a reduced format.
Dependency annotations
| Annotation | Meaning |
|---|---|
[prereq] | No dependencies, runs first |
[depends: T1] | Must wait for T1 |
[depends: T1, T2] | Must wait for both |
[parallel: T3] | Can run concurrently with T3 |
[test-risk] | Marker: test strategy is non-obvious (audit trigger). Append after dependency annotations |
Dependency order is recommended: development enforces actual sequencing.
What structuring produces
index.mdis the Task Index table in execution (phase-group) order.tasks/T1-*.mdis one file per task, opened on demand by development.phase-N.mdexists for multi-phase plans only: "Phase N of M", prerequisite, contained tasks, unlocks-next, and a## Phase Completion Gate.
Single-phase plans still get the index + task files; there is no passthrough below a task-count threshold.
What the CLI validates
--dry-run (mandatory in planning, non-authorizing) checks that the plan parses, conforms to the template, and has a valid dependency order, reporting NO_TASKS, UNKNOWN_TASK_REF, CYCLE_DETECTED (plus duplicate task IDs and dependency-order inversions, enforced since the structure hardening), and captures data.action (single | split) and data.executionFlow (for example T1→T2,T3(PARALLEL)→T4). A failed dry-run stops any approval gate.
Related documentation
Pocket Packets
The seven-field Pocket Packet every subagent dispatch requires, including objective, deliverable, quality bar, and stop conditions. No packet, no spawn.
Review reports
The review files Pocketto writes under reviews/: per-task verdicts, freshness rules, phase notes, and the phase-pass record that closeout requires.