Agent Decision Records (AgDR) — a standard for documenting technical decisions made by AI coding agents
npx claudepluginhub me2resh/agent-decision-recordStructured decision-making for AI coding agents. Creates auditable Agent Decision Records (AgDR) when technical choices are made — selecting libraries, patterns, or architecture.
Production-ready workflow orchestration with 79 focused plugins, 184 specialized agents, and 150 skills - optimized for granular installation and minimal token usage
Directory of popular Claude Code extensions including development tools, productivity plugins, and MCP integrations
Curated collection of 141 specialized Claude Code subagents organized into 10 focused categories
Share bugs, ideas, or general feedback.
A standard for documenting technical decisions made by AI coding agents.
AgDR extends the proven Architecture Decision Record (ADR) format for AI-assisted software development. When AI agents make technical choices—selecting libraries, choosing patterns, designing architecture—those decisions need the same rigor and traceability as human decisions.
AI coding agents (Claude Code, Codex, GitHub Copilot, Cursor, Windsurf, etc.) increasingly make technical decisions autonomously. Without documentation:
AgDR solves this by requiring agents to document decisions in a structured, human-readable format that lives with your code.
| Aspect | ADR | AgDR |
|---|---|---|
| Author | Human architect | AI agent |
| Trigger | Design meetings, RFCs | Detected decision patterns during coding |
| Timing | Before/after implementation | Real-time, as decisions are made |
| Metadata | Optional | Required (model, session, timestamp) |
| Enforcement | Manual process | Automated via hooks, skills, or prompts |
| Location | docs/adr/ | docs/agdr/ (per-project) |
/plugin marketplace add me2resh/agent-decision-record
/plugin install agent-decision-record@agent-decision-record
Then use:
/agent-decision-record:decide which testing framework to use
Copy commands/decide.md to your project's .claude/commands/decide.md:
/decide which testing framework to use
$agdr-decide which testing framework to use
Add to your AI assistant's context:
Before making any technical decision (choosing libraries, patterns, or architecture),
create an AgDR document following the template at:
https://github.com/me2resh/agent-decision-record
---
id: AgDR-0001
timestamp: 2026-01-30T18:45:00Z
agent: claude-code
model: claude-opus-4-5-20251101
trigger: user-prompt
status: executed
---
# Use Vitest for unit testing
> In the context of a new TypeScript project, facing the need for fast test execution,
> I decided to use Vitest to achieve rapid feedback loops, accepting that it's newer
> than Jest with a smaller ecosystem.
## Context
- New TypeScript monorepo with Vite build system
- Team prioritizes fast feedback during development
- Existing Jest knowledge on team
## Options Considered
| Option | Pros | Cons |
|--------|------|------|
| Jest | Industry standard, huge ecosystem | Slower, complex config with ESM |
| Vitest | Native Vite support, fast, Jest-compatible API | Newer, smaller ecosystem |
## Decision
Chosen: **Vitest**, because it integrates natively with our Vite setup and provides
significantly faster test execution while maintaining Jest API compatibility.
## Consequences
- Tests run 3-5x faster than Jest equivalent
- Team can reuse Jest knowledge (compatible API)
- May need workarounds for some Jest plugins
See agdr-template.md for the full template.
| Field | Description | Example |
|---|---|---|
id | Unique identifier | AgDR-0001 |
timestamp | ISO-8601 with time | 2026-01-30T18:45:00Z |
agent | Agent that made the decision | claude-code, codex, copilot, cursor |
model | Model identifier | claude-opus-4-5-20251101 |
trigger | What initiated the decision | user-prompt, hook, automation |
status | Decision status | proposed, executed, superseded |
Every AgDR must include a one-line summary following the Y-statement format:
In the context of [situation], facing [concern], I decided [decision] to achieve [goal], accepting [tradeoff].
AgDRs are stored per-project, not centralized:
your-project/
├── docs/
│ └── agdr/
│ ├── AgDR-0001-use-vitest-for-testing.md
│ ├── AgDR-0002-jwt-for-authentication.md
│ └── README.md # Index of decisions
├── src/
└── ...
Why per-project?