Skip to content

Agents overview

autoducks agents are organized into adoptable layers — start with the Execution agent alone and add layers as your needs grow. You don’t need to adopt everything at once.

flowchart LR
  E["Execution
/agents execute"]
  W["+ Wave Orchestrator
parallel task dispatch"]
  T["+ Tactical
task decomposition"]
  D["+ Design
spec generation"]

  E --> W --> T --> D

  class E executionBlue
  class W waveGreen
  class T tacticalPink
  class D designPurple

  classDef executionBlue fill:#cfe8ff,stroke:#0366d6,color:#0366d6
  classDef waveGreen fill:#d4f8d4,stroke:#28a745,color:#28a745
  classDef tacticalPink fill:#f8d4e4,stroke:#e55398,color:#e55398
  classDef designPurple fill:#f0d4f8,stroke:#a836e5,color:#a836e5

Start at Execution and add layers progressively. Each layer is independent — you can use Tactical without Design, or run Execution directly without any orchestration.

AgentCommandTypeWhat it does
Design/agents designLLMWrites a technical spec from a feature request
Tactical/agents deviseLLMDecomposes the spec into numbered task issues
Wave Orchestrator/agents execute (on Feature)BashSequences and dispatches execution agents by wave
Execution/agents execute (on task)LLMImplements a single task and opens a PR
CommandTypeWhat it does
/agents fixLLMRetries a failed task using failure context
/agents revertBashUndoes tactical planning, restores the original issue
/agents closeBashFull cleanup: closes issues, PRs, and branches

See the Utility commands page for full details.

A deliberate design choice: only agents that need reasoning use LLM. Orchestration, reconciliation, and cleanup are pure deterministic bash.

Needs LLMPure bash
Design, Tactical, Execution, FixWave Orchestrator, Revert, Close

This makes wave progression fast, cheap (no API calls), and auditable. Bash agents can be read and understood without running them.

All agents use three provider interfaces:

InterfacePrefixSupportedResponsibility
ITSits::githubIssues, PRs, labels, comments
Gitgit::githubBranches, commits, merges
LLMllm::claudeAgent reasoning, code writing

Switching providers requires implementing the same function signatures under a new provider directory — agent logic stays unchanged. For example, adding GitLab support means creating providers/its/gitlab/ with the same function surface as providers/its/github/.

All agents use emoji reactions to report status on the trigger comment:

EmojiMeaning
👀Agent started (pre-execution)
👍Agent completed successfully
😕Agent failed

This lets you see at a glance which command triggered which run and whether it succeeded — without reading log output.