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