ddflow_task
Create, split, update, remove, and resolve tasks, phases, and research notes in the ddflow work queue by setting an action per call.
Instructions
Tasks, phases and research notes. Set action; required arguments in brackets: phase_add(id), split(id,into), add(id), research_add(question,verdict), update(id), remove(id), resolve(id,keep), phase_close(id,imported), batch, fold(dup,keep), rename(old,new).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Stable id you choose. Referenced by `supersedes`, by commit messages and by the reconstruction; a generated id cannot be cited in advance. | |
| dup | No | The duplicate to abandon. | |
| new | No | Its new id. | |
| old | No | The task to rename. | |
| body | No | New detail / acceptance criteria. REPLACES the body. | |
| into | No | Comma-separated 'sub-id=title' pairs. At least two. | |
| item | No | The task this research is for. | |
| keep | No | Event id (or a 6+ character prefix), agent, or lease holder to keep. | |
| kind | No | Work kind: task, doc, research or job (its gate pipeline). | |
| line | No | Release line this lands on (a name from [flow.lines], or the current line). Omit for the current line; tasks inherit a phase's line. | |
| tags | No | Comma-separated tags. | |
| claim | No | The falsifiable claim. | |
| edits | No | JSON array of edit objects, each with an 'id'. | |
| force | No | Remove although it still has open children or dependents. Both leave the queue inconsistent in a way the scheduler reports; read the refusal before overriding. | |
| globs | No | Path globs this item writes, comma-separated or a JSON array. REPLACES the list (a claimed item's lease too); the result names what it dropped. Empty: none, and a fix task then takes none from its bug. | |
| lines | No | Release lines a FIX must reach, e.g. '1,2,3': written where [flow].port_strategy says, plus a port task `<id>@<line>` per other line. | |
| needs | No | Comma-separated ids it depends on. Pass an EMPTY string to clear them — that is how you break a dependency cycle the loop detector found. | |
| phase | No | Owning phase id. Give this OR `parent`. | |
| probe | No | The command you ran. | |
| queue | No | Queue a refused request (FIFO per file). | |
| readd | No | File a REMOVED item's id again with this definition. An id still in the queue is always refused -- change that item with ddflow_update. | |
| title | No | One-line description. | |
| action | Yes | What to do; see the tool description for each action's arguments. | |
| budget | No | What you allowed yourself, e.g. '30 min, no GPU'. | |
| landed | No | Record work already on main: a commit, or <before>..<after>; verified as ancestors of the base touching the item's globs. For work merged outside `ddflow merge`. | |
| parent | No | Move the task under this phase (or task); empty makes it top level. Refused for a finished item, a missing parent, or a dependency cycle. | |
| reason | No | Why (recorded on the abandonment). | |
| dry_run | No | Plan and show the diff; record nothing. | |
| port_of | No | Earlier fix this follows up: reuses the lines it reached. | |
| sources | No | Comma-separated URLs/DOIs you actually opened. | |
| verdict | No | CONFIRMED | REFUTED | THEORETICAL | |
| as_agent | No | Subagent name, this call only. | |
| imported | No | Required: closes an IMPORTED phase; its imported source is the evidence recorded. | |
| priority | No | Lower is offered first (default 100; a DX or bug-fix task: its band). | |
| question | No | What was asked. | |
| relation | No | Answer to a 'possible duplicate' refusal: new | extends:ID | duplicate_of:ID | related:ID | merge_into:ID. Omit at first. | |
| worktree | No | Rebind the item and your live lease to this linked worktree (absolute, or repo-relative) and its branch: the way out of a wrong-tree binding, since re-claiming keeps the recorded tree and merge lands that tree's branch. | |
| falsifier | No | The single observation that would kill it. | |
| mechanism | No | WHY it would work in this repo. The middle field of the triple — claim, mechanism, falsifier — and the one most often skipped. | |
| refile_as | No | Comma-separated new ids, one per definition NOT kept, in `show` order: each is re-added under its new id in the same transaction. | |
| resources | No | Physical resources the work RUNS on, beside its files: 'gpu:4,vllm-fleet'. `next` withholds and `claim` refuses while live claims use up the capacity ([schedule] resources). Declare for a GPU job, model server or long run. Empty clears. | |
| check_only | No | Dry run: write nothing, return the `candidates`. | |
| append_body | No | Text to ADD after the item's current body (a blank line between); the original is kept. Use it for a note or a decision instead of re-sending the body. | |
| probe_output | No | Its output, verbatim. |