Reference
Task Aggregate
How to model named verification entrypoints and other dependency-closure tasks without fake no-op shell bodies.
referenceautomation buildersintermediatestable2026-05-30
Recommended next
Purpose
Use this page when a task exists only to run other tasks in a declared order.
The strong default for that shape is a first-class aggregate body, not run: "true" plus depends_on.
aggregateowns the execution body for named dependency-closure entrypointsdepends_onstays the prerequisite edge for executable child tasks- aggregate membership should stay under
aggregate.tasks, not duplicated independs_on - aggregate tasks should stay plain: no command body and no task-local execution surface such as
context,requirements,runtime,effects,execution, or variants layered on top - aggregate tasks are entrypoints, not prerequisites; executable tasks should expand the child tasks directly instead of depending on an aggregate
Preferred aggregate shape
Named verification entrypointyaml
tasks: verify: description: Run the canonical verification entrypoint aggregate: tasks: - lint - security:brakeman - security:audit - testWhy this is stronger
- removes fake no-op shells such as
run: "true" - keeps aggregate membership separate from prerequisite edges
- lets ota validate aggregate-specific rules and surface aggregate results honestly in receipts and JSON output
- gives docs, examples, and agents one canonical verification-entrypoint shape
Keep depends_on for prerequisites
Executable task with prerequisitesyaml
tasks: build: run: pnpm build depends_on: - setup