Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Phases and Tasks

Work in a Wiggum plan is organized into phases, each containing one or more tasks. Tasks are dependency-ordered across the entire plan, forming a directed acyclic graph (DAG).

Phases

Phases are logical groupings. They appear in PROGRESS.md as section headers but don’t affect task ordering — dependencies do.

[[phases]]
name = "Foundation"
order = 1

[[phases]]
name = "Core Features"
order = 2

Tasks

Tasks are defined within their parent phase. Each task becomes a T{NN}-{slug}.md file.

[[phases.tasks]]
slug = "api-routes"
title = "Define API route handlers"
goal = "Implement REST endpoints for CRUD operations"
depends_on = ["domain-model", "database-adapter"]

Task fields

FieldRequiredDescription
slugYesURL-safe identifier, used in filenames and dependency references
titleYesHuman-readable task title
goalYesWhat this task should accomplish
kindNoTask archetype (default: feature) — see Task kinds below
depends_onYesArray of task slugs this task depends on (empty array [] for no dependencies)
hintsNoImplementation hints or code snippets
test_hintsNoSuggested tests the subagent should write
must_havesNoHard exit criteria the task must satisfy
gateNoPrecondition the orchestrator must verify before starting this task
evaluation_criteriaNoVerifiable criteria scored by the evaluator agent

Task kinds

The kind field selects a task archetype that influences the generated task file template — the section headings, suggested exit criteria, and approach guidance are all tailored to the kind of work involved.

KindDescription
featureNew functionality: emphasises implementation and tests. Default.
refactorCode quality change: emphasises behavioural equivalence before and after
infrastructureCI, config, tooling, or IaC work
researchExploratory spike: produces a document or recommendation, not code
auditSecurity or quality audit: produces findings, not new behaviour
[[phases.tasks]]
slug  = "api-routes"
title = "Define API route handlers"
kind  = "feature"          # default, can be omitted
goal  = "Implement REST endpoints for CRUD operations"
depends_on = ["domain-model"]

[[phases.tasks]]
slug  = "dependency-audit"
title = "Audit third-party dependencies"
kind  = "audit"
goal  = "Identify outdated or vulnerable packages and produce a remediation report"
depends_on = []

Audit-kind tasks are automatically excluded from the orphan-detection lint rule, since they intentionally produce findings rather than code artefacts.

Task numbering

Tasks are numbered sequentially across all phases: T01, T02, T03, and so on. The ordering follows phase order first, then task order within each phase, but dependencies can cross phase boundaries.

Dependency graph

Wiggum validates that task dependencies form a valid DAG (no cycles). Use wiggum validate plan.toml to check before generating.