|
| 1 | +--- |
| 2 | +name: ddx |
| 3 | +description: Operates the DDx toolkit for document-driven development. Covers beads (work items), the queue, executions, agents, harnesses, personas, reviews, spec-id. Use when the user says "do work", "drain the queue", "run the next bead", "execute a bead", "review this", "review with fresh eyes", "fold in this guidance", "review again", "break this down into specs and beads", "make this testable", "check against spec", "what's on the queue", "what's ready", "what's blocking the queue", "create a bead", "file this as work", "run an agent", "dispatch", "use a persona", "how am I doing", "ddx doctor", or mentions any ddx CLI command. |
| 4 | +--- |
| 5 | + |
| 6 | +# DDx |
| 7 | + |
| 8 | +DDx (Document-Driven Development eXperience) is a CLI platform for |
| 9 | +document-driven development. It ships a bead tracker (portable work |
| 10 | +items with acceptance criteria), a task-execution boundary (DDx |
| 11 | +forwards raw passthrough constraints for harness, provider, model, |
| 12 | +and profile while power travels as `MinPower`/`MaxPower` bounds; |
| 13 | +Fizeau owns concrete routing, provider/model discovery, aliases, |
| 14 | +fuzzy matching, catalog lookups, and transcript/session rendering), a |
| 15 | +persona system (bindable AI personalities), a library registry |
| 16 | +(plugins with prompts, templates, personas), and git-aware |
| 17 | +synchronization. This skill makes any skills-compatible coding agent |
| 18 | +(Claude Code, OpenAI Codex, Gemini CLI, etc.) understand and operate |
| 19 | +the DDx surface correctly. |
| 20 | + |
| 21 | +## How this skill works |
| 22 | + |
| 23 | +The skill body you're reading is an **overview** plus an **intent |
| 24 | +router**. The real domain guidance lives in `reference/*.md` files. |
| 25 | + |
| 26 | +**Directive: before responding to any DDx-related request, read the |
| 27 | +matching reference file from the router table below. The router is |
| 28 | +not optional — your answer must be grounded in the reference file's |
| 29 | +guidance, not this overview alone.** |
| 30 | + |
| 31 | +## Vocabulary |
| 32 | + |
| 33 | +Single source of truth for DDx terms. Every reference file uses these |
| 34 | +exact definitions. |
| 35 | + |
| 36 | +- **Bead** — a portable work item (task, bug, epic, chore) with |
| 37 | + metadata, dependencies, and acceptance criteria. `ddx bead create`. |
| 38 | +- **Queue** — the set of active beads. The *execution-ready queue* is |
| 39 | + `status=open` work whose dependencies are closed and which is not parked by |
| 40 | + cooldown, supersession, or execution-eligibility policy. `ddx bead ready`, |
| 41 | + `ddx bead status`. |
| 42 | +- **Lifecycle status** — the persisted bead state: `proposed`, `open`, |
| 43 | + `in_progress`, `blocked`, `closed`, or `cancelled`. |
| 44 | +- **Ready** — a bead whose dependencies are all closed and which is |
| 45 | + eligible to be picked up next. `ddx bead ready`. |
| 46 | +- **Blocked** — `status=blocked` work paused by a hard external recheckable |
| 47 | + blocker. Ordinary dependency waits are derived queue state, not blocked |
| 48 | + status. `ddx bead blocked`. |
| 49 | +- **Proposed** — work awaiting operator decision before autonomous execution. |
| 50 | + Proposed beads are not worker-eligible until accepted, rewritten, split, |
| 51 | + blocked externally, cancelled, or otherwise resolved. |
| 52 | +- **Claim** — mark a bead as in-progress by an agent (concurrent-write |
| 53 | + protection). `ddx bead update <id> --claim`. |
| 54 | +- **Close** — mark a bead as done, with evidence (session, commit |
| 55 | + SHA). `ddx bead close <id>`. Beads only close on execution outcomes |
| 56 | + `success` or `already_satisfied`. |
| 57 | +- **Run** — one task invocation atom. `ddx run` calls Fizeau `Execute` |
| 58 | + once with prompt/config, `MinPower`/`MaxPower` bounds, and optional |
| 59 | + raw passthrough constraints. |
| 60 | +- **Try** — one bead attempt in an isolated worktree. `ddx try <id>` wraps |
| 61 | + `ddx run` with bead prompt resolution, evidence capture, and merge/preserve |
| 62 | + finalization. |
| 63 | +- **Work** — drain the bead queue. `ddx work` picks ready beads and invokes |
| 64 | + `ddx try`; it owns queue iteration and retry policy. |
| 65 | +- **Execution** — a generic DDx execution run (FEAT-010). Includes execution |
| 66 | + definitions, execution records, and execution evidence under `.ddx/runs/<id>/`. |
| 67 | +- **Agent** — an AI coding agent (Claude, Codex, Gemini, etc.) |
| 68 | + invoked via a harness. Not a subagent (harness-specific — see |
| 69 | + below). |
| 70 | +- **Harness** — a Fizeau routing concept. DDx may pass `--harness` as |
| 71 | + an operator-supplied constraint, but DDx does not validate, rank, fallback, or |
| 72 | + branch on harness names. |
| 73 | +- **Persona** — a Markdown file (YAML frontmatter + body) that |
| 74 | + defines an AI personality. DDx injects the body as a system-prompt |
| 75 | + addendum to `ddx run`. `ddx persona list/show/bind`. |
| 76 | +- **Role** — an abstract function (e.g., `code-reviewer`, |
| 77 | + `test-engineer`) a workflow can reference. Projects bind roles to |
| 78 | + personas. |
| 79 | +- **Binding** — a project-specific `role: persona` map in |
| 80 | + `.ddx/config.yaml` under `persona_bindings`. |
| 81 | +- **Power bounds** — `MinPower` and optional `MaxPower` integers passed to the |
| 82 | + upstream execution service. DDx may raise `MinPower` on eligible retries; |
| 83 | + Fizeau owns concrete route selection within those bounds. |
| 84 | +- **Plugin** — a self-contained extension installed to |
| 85 | + `.ddx/plugins/<name>/`. The default `ddx` plugin (personas, |
| 86 | + prompts, patterns, templates) is auto-installed by `ddx init`. |
| 87 | + `ddx install <name>`. |
| 88 | +- **Skill** — an agentskills.io-standard directory (SKILL.md + |
| 89 | + optional `reference/`, `evals/`, `scripts/`). This `ddx` skill is |
| 90 | + the one DDx ships. Plugins can ship additional skills. |
| 91 | +- **Subagent** — a harness-local concept for running a prompt in an |
| 92 | + isolated context (Claude Code's `.claude/agents/` + `context: |
| 93 | + fork`; Codex's `agents/`; others differ). DDx does not specify subagent |
| 94 | + orchestration; that remains harness business. |
| 95 | +- **Update** — refresh plugin/toolkit content to a newer version. |
| 96 | + `ddx update [<plugin>]`. |
| 97 | +- **Upgrade** — replace the DDx binary with a newer release. |
| 98 | + `ddx upgrade`. |
| 99 | +- **Review** — two distinct concepts. **Bead review** |
| 100 | + (`ddx bead review <id>`) grades a completed bead against its |
| 101 | + acceptance criteria. **Comparison/adversarial review** is a workflow skill |
| 102 | + composition over `ddx run`, not a core quorum flag. See `reference/review.md`. |
| 103 | +- **Governing artifact** — the document that authorizes a bead's |
| 104 | + work: a FEAT-\*, SD-\*, TD-\*, or ADR-\* under `docs/`. Referenced |
| 105 | + via `spec-id`. |
| 106 | +- **Spec-id** — the `spec-id: <ID>` custom field on a bead pointing |
| 107 | + at its governing artifact. |
| 108 | + |
| 109 | +## Intent router |
| 110 | + |
| 111 | +Before responding, read the matching file. |
| 112 | + |
| 113 | +| User says / asks about | Read this file | |
| 114 | +|---|---| |
| 115 | +| "what should I work on next", "what's blocking the queue", "review with fresh eyes", "fold in this guidance", "review again", "break this down into specs and beads", "make this testable", broad queue orientation or planning | `reference/interactive.md` | |
| 116 | +| write/plan work, "create a bead", "file this as work", bead metadata, acceptance criteria, dependencies | `reference/beads.md` | |
| 117 | +| `ddx work`, `ddx try <id>`, "execute bead `<id>`", "drain the queue", "run the next bead", "start the worker", "start N workers and watch", "monitor the drain", verify-and-close | `reference/work.md` | |
| 118 | +| "review this", "check against spec", bead review, quorum review, code review, adversarial check | `reference/review.md` | |
| 119 | +| "assess bead readiness", "score a bead", "triage a failed attempt", "refine a bead", bead authoring lint | `bead-lifecycle/` | |
| 120 | +| "run an agent", "dispatch", harness/provider/model passthrough, power, effort, "use a persona", role bindings | `reference/agents.md` | |
| 121 | +| "what's on the queue", "what's ready", "how am I doing", health check, "ddx doctor", sync status | `reference/status.md` | |
| 122 | + |
| 123 | +If the intent spans multiple files (e.g., "create a bead and then |
| 124 | +run it"), read beads.md first, then work.md. If no match, ask the |
| 125 | +user which concept they mean rather than guessing. |
| 126 | + |
| 127 | +## Top-level policy reminders |
| 128 | + |
| 129 | +These apply across all DDx operations. Do not restate them in every |
| 130 | +reference file; do not violate them. |
| 131 | + |
| 132 | +- **Never edit `.ddx/beads.jsonl` directly.** All tracker changes go |
| 133 | + through `ddx bead create/update/close/dep`. Direct edits corrupt |
| 134 | + bead history and cannot be audited. |
| 135 | +- **Tracker changes are commit-worthy.** After `ddx bead create`, |
| 136 | + `update`, `dep add/remove`, or `close`, commit the resulting |
| 137 | + `.ddx/beads.jsonl` change — either as a tracker-only commit or |
| 138 | + folded into the same commit as related implementation changes. |
| 139 | +- **Preserve bead-attempt commit history.** Branches containing |
| 140 | + `ddx try` / `ddx work` execution commits carry an audit trail. **Never |
| 141 | + squash, rebase, filter, or amend** these commits. Use only |
| 142 | + `git merge --ff-only` or `git merge --no-ff` when merging. |
| 143 | + `gh pr merge --squash` and `--rebase` are forbidden on these |
| 144 | + branches. |
| 145 | +- **Work in worktrees for parallel agents.** Use `wt switch -c |
| 146 | + <branch>` (worktrunk) or equivalent to give each concurrent agent |
| 147 | + its own isolated checkout. `ddx try` does this automatically; |
| 148 | + manual parallel work should too. |
| 149 | +- **Power-first execution dispatch.** Default to `ddx run`/`ddx try`/`ddx work` |
| 150 | + with power bounds. `--harness`, `--provider`, and `--model` are passthrough |
| 151 | + constraints only; DDx must not use them for routing policy. |
| 152 | + |
| 153 | +## Links out |
| 154 | + |
| 155 | +- Full CLI reference: `ddx --help`, `ddx <subcommand> --help`. |
| 156 | +- Governing feature specs: see `FEAT-*` documents under your |
| 157 | + project's `docs/` tree — especially the CLI, beads, agent-service, |
| 158 | + executions, and skills features. |
| 159 | +- Personas README: shipped by the default `ddx` plugin at |
| 160 | + `.ddx/plugins/ddx/personas/README.md`. |
| 161 | +- Open standard this skill conforms to: |
| 162 | + [agentskills.io](https://agentskills.io). |
0 commit comments