Read plans, tasks, and attempts
Distinguish accepted work intent from immutable execution attempts and outcomes.
Outcome
You can trace an objective through a bounded plan revision and dependency graph to immutable attempts without treating an attempt outcome as editable task intent.
Prerequisites
Open a completed deterministic story from projects and runs.
Steps
- Read the plan version ID and revision associated with the run.
- Inspect each task's stable key, title, objective, acceptance criteria, priority, estimate, hard budget, execution profile, concurrency class, bounded starter context, and retained or replanned lineage. A task does not choose ordinary filesystem/shell tools or environment capabilities; its execution profile resolves a fixed harness when the attempt starts.
- Inspect directed dependency edges and their required outputs. Each output has a unique readable name and data classification. The accepted graph is acyclic and bounded by 256 tasks, 1,024 edges, depth 32, and fan-out 32. It has exactly one terminal synthesis task, so a successful run has one unambiguous result instead of selecting an arbitrary leaf.
- Open each attempt and inspect its immutable generation, plan revision, state, summary, context bundle digest, and runtime manifest. The manifest freezes build/image/environment/Pi/model and reasoning identities, exact prompt and token/cost limits, retention/tool-execution policy, local tool limits, trusted definition digests and approval timeouts, remote-tool provenance, and subagent caps.
- Follow a succeeded attempt to each exact handoff artifact: artifact ID, digest, name, classification, size, media type, producing attempt generation, and plan revision. The successor receives those digest-pinned bytes in its local context rather than through a generic handoff tool.
Verify
The task ID, attempt ID, execution ID, and artifact ID are distinct. Reloading does not rewrite an attempt or reuse its identity for another try. A downstream task becomes ready only when its declared named/classified artifacts, capacity, and nested budget admit it. A missing digest, wrong producing generation, or unavailable frozen runtime definition fails explicitly.
Recover
If execution fails, retain the terminal attempt and retry as a new attempt identity after reconciling any ambiguous external operation. Pause or cancel through the run command boundary; never edit a terminal attempt to make the task appear successful.