Batch-create all tasks using NDJSON via --batch. Include phase, priority, tags, and the child-of link to the
spec inline. Each line is a JSON object:
cat <<'EOF' | cargo run -- task create --batch -q
{"title":"First task","description":"...","phase":1,"priority":0,"tags":["storage"],"links":["child-of:<spec-id>"]}
{"title":"Second task","description":"...","phase":1,"priority":1,"tags":["config"],"links":["child-of:<spec-id>"]}
{"title":"Third task","description":"...","phase":2,"priority":0,"tags":["storage"],"links":["child-of:<spec-id>"]}
EOF
Links use the format "rel:target_id" (e.g. "child-of:abcd1234", "blocked-by:efgh5678"). Artifact vs task
targets are auto-detected.
The NDJSON schema for tasks:
{
"title": "string (required)",
"description": "string",
"assigned_to": "string",
"phase": 1,
"priority": 0,
"status": "open",
"tags": ["tag1", "tag2"],
"links": ["rel:target_id"],
"iteration": "iteration-id",
"metadata": {"key": "value"}
}
With -q, each created task's bare ID is printed on its own line, in input order. Capture these for linking.
A phase is a parallelization boundary: every task in the same phase runs concurrently in its own workspace, so
tasks within a phase must be fully independent. If task A blocks task B, they must be in different phases (A in
an
earlier phase, B in a later one). Put tasks that share no dependencies in the same phase to maximize parallelism.