Skip to content

Plans

A plan is the work of a feature broken into tasks. Each task is a prompt for an agent and says which tasks it waits for, so a plan is a DAG that wdx can run, an agent per task as soon as what it waits for is done (Running plans). A plan of plans breaks bigger work into plans, each landing as a PR of its own. Plans are kept like docs: in wdx, with a revision per change. An agent usually writes one, and you read it before it runs. See Concepts.

A plan is YAML: a goal, constraints every task’s agent is told, and the tasks:

release.yaml
goal: Get app ready for its first contributors.
constraints:
- Keep each file to one or two lines.
tasks:
- id: contributing
aca: claude_code
model: sonnet
prompt: |
Create CONTRIBUTING.md saying "Open a PR against main." and commit it.
- id: notes
aca: claude_code
model: sonnet
after: [contributing]
prompt: |
Create NOTES.md with the line "TODO: write notes" and commit it.

Create it from the file, or from stdin with --path - as an agent does:

Terminal window
$ wdx plan create --name first-release --path - < release.yaml
plan first-release created, with 2 tasks
project app
folder /
state draft
revision 1
id doc-853c115e
$ wdx plan status --name first-release
first-release: draft, 2 tasks
goal Get app ready for its first contributors.
constraint Keep each file to one or two lines.
TASK ACA MODEL AFTER STATE
contributing claude_code sonnet
notes claude_code sonnet contributing
$ wdx plan list
FOLDER NAME STATE TASKS REVISION UPDATED
/ first-release draft 2 tasks 1 2026-11-08 02:06:13

Change it as a doc: get a copy, edit it, and give it back naming the revision you read.

Terminal window
wdx plan get --name first-release --out release.yaml
wdx plan update --name first-release --path release.yaml --base 1

A plan runs once. To run one again, or start from it, copy it to a new draft; archive the one that is over:

Terminal window
$ wdx plan copy --name first-release --new-name first-release-2
plan first-release-2 created from first-release, with 2 tasks
project app
folder /
state draft
revision 1
id doc-24fba748
$ wdx plan archive --name first-release
plan first-release archived: wdx plan list --all shows it

The Plans section of the left pane lists the project’s plans, plans of plans with their plans under them, each with its state; its first row picks All, Draft & in progress or Completed. Enter opens a plan’s tab: its goal, its constraints, and its tasks drawn as git log --graph draws commits, with the task under the cursor showing what it needs and what it unblocks. y there copies the plan and a archives it. Writing a plan is the CLI’s, or an agent’s. More in Docs and plans in TIDE.

  • The format. wdx help plans is the reference: goal (required), constraints, tasks (each an id, an aca, a model, a prompt and after), or plans in place of tasks for a plan of plans, and pr and stacked for its PRs. A task with no after starts at once.
  • Checked on every save. Every problem is reported with its line, and nothing is saved until there are none (invalid_plan).
  • Afters already covered are dropped: with docs after store and schema, and store after schema, docs’ after: [schema] goes, and wdx says so. Tasks are listed in DAG order, after everything they wait for, keeping the order written where they are free to go either way.
  • Revisions. --base is the revision your change was made on; a newer one refuses yours (doc_changed), so nothing is lost. A plan that has run cannot be changed.
  • Names have letters, numbers and -, up to 95, and are unique among a project’s plans; a doc may share one.
  • A plan of plans lists plans the project already has, never other plans of plans, and a plan has one parent at most. Those it lists share its folder, cannot be renamed or removed while listed, and are moved, paused, resumed, cancelled and archived with it. Copying it copies the plans not done, to run again what is left.
  • Folders say where TIDE shows a plan, as for docs; plan set --folder moves a plan of plans with its plans.
  • Removing asks first, as nothing brings a plan back; --yes answers in advance.
CommandWhat it does
wdx plan createCreate a plan from its YAML
wdx plan listList a project's plans
wdx plan getPrint a plan's YAML, or write it to a file to change
wdx plan updateWrite a plan's YAML as a new revision
wdx plan historyList a plan's revisions
wdx plan setChange a plan's folder, or how many tasks a running or paused plan runs at once
wdx plan renameRename a plan
wdx plan copyCreate a draft from a plan's latest revision, to run again or start from
wdx plan archiveArchive a done or cancelled plan, leaving it out of plan list
wdx plan unarchiveShow an archived plan in plan list again
wdx plan removeDelete a plan and all its revisions