Per-Task Plan Decomposition
pocket-structuring now decomposes every plan into execution-plan/index.md + per-task files under execution-plan/tasks/, instead of passthrough below 7 tasks — phase manifests (phase-N.md) are written only when phaseCount > 1. structure gains --reset to rebuild layout and replace log.json when execution progress exists (explicit, discards state); --force now only rebuilds + reconciles when there's no execution progress, refusing otherwise, and always refreshes the log's pipeline marker (PIPELINE 3 → 4) when it rebuilds.
Fixed
- A
log.jsonthat exists but fails to parse is now refused (LOG_JSON_UNPARSEABLE) instead of being silently treated as absent —--resetis the explicit way to discard it. --forcerebuilding a log no longer leaves a stalepipelinemarker behind (previously could strand a plan with a mismatched pipeline generation and confusing recovery advice).index.md's Task Index table now renders in phase-group (execution) order instead of numeric task ID, matchingphase-N.mdand the Execution Flow diagram. For single-phase plans this is also the orderlog inituses to seed dispatch state — a plan authored out of numeric sequence now dispatches in the order it's written, not by ID.
Before updating
This release bumps the pipeline generation (PIPELINE 3 → 4). Plans that already have a log.json are unaffected until you next run structure against them — a plain run repairs/no-ops without touching state; a source-plan change with execution progress still requires --force or --reset as before.
If a plan's log.json reports PIPELINE_TOO_OLD with a numeric (not absent) pipeline marker, pin npx -y pocketto-pi@3.0.1 to finish it under the old pipeline, then update once it's closed.
Full detail: README § Migrating to 3.1.0.