Spec-driven development with approval loops
Quickstart
Run a spec plan end-to-end with quality gates from Python.
PipelineOrchestrator.run_all is an async coroutine, so drive it with
asyncio.run (or await it inside an existing event loop):
import asyncio
from attune.pipeline import PipelineOrchestrator, PipelineResult
async def main() -> None:
orchestrator = PipelineOrchestrator(".claude/plans/my-feature.md")
result: PipelineResult = await orchestrator.run_all()
print(result.summary) # human-readable run summary
print(result.success) # True if all tasks executed and passed gates
asyncio.run(main())
summary and success are properties — read them, don't call them.
Running this produces a PipelineResult with per-task outcomes, total
cost, and duration.
To skip quality gates during a quick smoke test, pass
skip_gates=True to the constructor.