Tip: Use skip_task_ids to re-run a single task without restarting the pipeline
Pass a set[str] of already-completed task IDs to run_all(skip_task_ids=...) instead of clearing state and running the whole plan from scratch.
Why it sticks: clear_state is irreversible mid-run — skipping completed tasks preserves your SpecState.completed list and keeps total_cost and duration_ms accurate in the final PipelineResult.
Tradeoff: You are responsible for knowing which task IDs to skip. If a completed task produced an artifact that a later task depends on, skipping it without re-validating that artifact may cause the downstream task to fail its quality gate silently — check TaskResult.quality_gate_passed and TaskResult.gate_score on the returned result before assuming success.
Source files
src/attune/pipeline/**src/attune/spec/**
Tags: spec, planning