This is the complete lifecycle. The example TaskPlan declares every unit, path, behavior, eval, and edge; preview does not fill gaps.
taskspec init
taskspec setup signing
mkdir -p tasks/.plans
cp docs/examples/task-plan.yaml tasks/.plans/add-search.yaml
taskspec plan --manifest tasks/.plans/add-search.yaml
taskspec batch --plan tasks/.plans/add-search.yaml
taskspec validate tasks/T-20260811-add-search-command.md
taskspec dod tasks/T-20260811-add-search-command.md
taskspec gate --stamp tasks/T-20260811-add-search-command.md
taskspec handoff tasks/T-20260811-add-search-command.md --backend codexThe default format-v3 task produces TaskHandoff/v1, performs only the declared write, and
runs the provided eval command. A separate operator or CI step then runs:
taskspec accept --stamp tasks/T-20260811-add-search-command.md
taskspec transition T-20260811-add-search-command doneIf an eval, scope check, or seal check fails, acceptance returns
ACCEPTED=0; record the named failure, repair it, or park the task.
Choose taskspec new --format 4 ... only when acceptance needs independent
holdout, graded, human, environment, or identity evidence. Format v4 emits
TaskHandoff/v2; see the v4 specification.