LLMs and agents¶
Using DADR should be frictionless. The dadrock software can help with tedious file management and validation. But the key to making this system work is to use LLM agents to draft and review decision candidates.
LLMs work especially well with DADR, because they are plain text (markdown) and atomic (one decision per file). This makes them easy for agents to process.
As noted in the workflow diagram, all acceptance or rejection decisions are human-gated. LLM agents
- MAY draft or edit candidate decisions.
- MUST NOT accept or reject decisions.
Implemented¶
These features are already implemented in dadrock:
- Draft a decision candidate based on user input.
- Chat interface for iterative improvement of decision candidates.
- MCP tools for structured project inspection and DADR lifecycle mutations during agent sessions.
- Optional local skill/prompt-pack instructions for agent drafts.
Dadrock Tasks¶
Dadrock tasks are editable prompt workflows that use the same Dadrock MCP and command layers as the CLI and web UI. Built-in tasks are examples, not special cases: project tasks live under dadr/tasks/, user-installed tasks can also be discovered, and task runs are persisted under dadr/runs/.
Agents running tasks must return the declared JSON output kind exactly. They must not accept, reject, supersede, or rewrite records except through explicit user-requested Dadrock lifecycle actions.
Roadmap¶
These features will be implemented in dadrock in the short term:
- Draft decision candidates automatically based on
- Git commits
- Working tree changes to the code base.
- Manuscript
- Pre-analysis plan.
- Faithfulness analysis to compare
- Manuscript vs. Decisions
- Pre-analysis plan vs. Decisions
- Code vs. Decisions
- Consistency and completeness
- Do some decisions contradict each other?
- Are the unresolved ambiguities?
- Are all the decisions made in the code recorded in DADR?
- Decision review
- Comment on the decisions and their unforseen consequences.
- Draft reports
- Write a draft methods section based on the narrative DADR.
LLM agent setup¶
dadrock uses local agents through the Agent Client Protocol (ACP).
Requirements¶
To use agent drafting or web candidate revision, the local machine needs:
- the
dadrockbinary installed; - an installed LLM agent like Claude Code, Codex, or Open Code;
- an ACP-compatible bridge;
- an authenticated account with a LLM provider.
Install a provider CLI¶
dadrock does not bundle LLM agents or ACP providers. Install one supported agent and ACP locally, and configure authentication in that provider's own tool.1,2
Install the CLI for any ACP-compatible provider of your choice, using your preferred method. For examples, see the table below.3
Warning
These install commands are included for convenience. Always refer to the official installation instructions from the respective ACP provider.
| Provider | Install |
|---|---|
| Claude Agent ACP | pnpm add -g @agentclientprotocol/claude-agent-acpOR npm i -g @agentclientprotocol/claude-agent-acpOR Download binary |
| Gemini CLI | pnpm add -g @google/gemini-cliOR npm i -g @google/gemini-cliOR brew install --cask gemini |
| Codex ACP | pnpm add -g @zed-industries/codex-acpOR npm i -g @zed-industries/codex-acpOR Download binary |
| OpenCode | pnpm add -g opencode-aiOR npm i -g opencode-aiOR brew install opencodeOR curl -fsSL https://opencode.ai/install \| bash |
| Cursor Agent | curl https://cursor.com/install -fsS \| bashOR Windows: irm 'https://cursor.com/install?win32=true' \| iexOR See Cursor docs |
| Copilot CLI | pnpm add -g @github/copilotOR npm i -g @github/copilotOR brew install copilot-cliOR curl -fsSL https://gh.io/copilot-install \| bash |
| Auggie | pnpm add -g @augmentcode/auggieOR npm i -g @augmentcode/auggieOR See Auggie docs |
| Mistral Vibe | curl -LsSf https://mistral.ai/vibe/install.sh \| bashOR uv tool install mistral-vibeOR pip install mistral-vibeOR Download binary |
| Cline | pnpm add -g clineOR npm i -g clineOR See Cline docs |
| Goose | brew install block-goose-cliOR See Goose docs |
Use a LLM agent to draft decision candidates¶
If exactly one supported provider is installed, automatic detection is enough:
To choose a provider explicitly:
ACP tool permission requests are denied by default. To allow them for a session:
By default, dadrock attaches an MCP server to ACP sessions so the agent can inspect records, tags, validation reports, and the bounded project snapshot with structured tools instead of guessing. The same MCP surface also exposes DADR lifecycle mutations through the dadrock::commands layer used by the CLI, so writes return command envelopes with changed paths and diagnostics. To run the MCP server directly for another client:
To check that a local ACP provider accepts a Dadrock session with MCP attached:
Disable automatic MCP attachment for one draft with --no-mcp:
Dadrock ships with a built-in dadr skill for DADR workflow guidance:
To add local guidance, put instructions in a SKILL.md file under .agents/skills/<name>/, .github/skills/<name>/, .claude/skills/<name>/, ~/.agents/skills/<name>/, ~/.codex/skills/<name>/, ~/.codex/skills/.system/<name>/, or ~/.claude/skills/<name>/, then pass it by name:
You can also pass a direct file or directory path with --skill; --prompt-pack is an alias. dadrock includes the selected instructions in the prompt and records a combined SHA-256 hash in the agent response provenance.
To inspect built-in, installed, and project-local skills and prompt packs:
Prompt-pack provenance stays in the agent response envelope rather than the DADR record front matter. This keeps record files focused on the decision itself and avoids expanding the DADR schema with tool-run metadata.
Even when permissions are allowed, the agent still produces candidates or revisions for review. It does not accept decisions.
-
For security reasons, dadrock does not install or manage provider binaries for you. You must install them manually. ↩
-
Note: The provider may still call a remote model; "local" here means dadrock talks to a local ACP process. ↩
-
This install table is adapted from the ACP provider installation guidance in the
agentic.nvimREADME. ↩