
adr-decision-extraction
Use when you need to mine a conversation, session transcript, or design discussion for architectural decisions before writing ADRs. Identifies problem-solution pairs, trade-off debates, technology choices, and explicit "[ADR]" tags. Triggers on "what decisions did we make", "extract decisions from this chat", "find the choices in our discussion", or "summarize architectural decisions". Also useful after long planning sessions to capture decisions that were made implicitly. Does NOT write ADR documents — use adr-writing or write-adr for that.
- Installs
- 139
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/existential-birds/beagle --skill adr-decision-extraction- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads adr-decision-extraction automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
ADR Decision Extraction
Extract architectural decisions from conversation context for ADR generation.
Detection Signals
| Signal Type | Examples |
|---|---|
| Explicit markers | [ADR], "decided:", "the decision is" |
| Choice patterns | "let's go with X", "we'll use Y", "choosing Z" |
| Trade-off discussions | "X vs Y", "pros/cons", "considering alternatives" |
| Problem-solution pairs | "the problem is... so we'll..." |
Extraction Rules
Explicit Tags (Guaranteed Inclusion)
Text marked with [ADR] is always extracted:
[ADR] Using PostgreSQL for user data storage due to ACID requirements
These receive confidence: "high" automatically.
AI-Detected Decisions
Patterns detected without explicit tags require confidence assessment:
| Confidence | Criteria |
|---|---|
| high | Clear statement of choice with rationale |
| medium | Implied decision from action taken |
| low | Contextual inference, may need verification |
Output Format
{
"decisions": [
{
"title": "Use PostgreSQL for user data",
"problem": "Need ACID transactions for financial records",
"chosen_option": "PostgreSQL",
"alternatives_discussed": ["MongoDB", "SQLite"],
"drivers": ["ACID compliance", "team familiarity"],
"confidence": "high",
"source_context": "Discussion about database selection in planning phase"
}
]
}
Field Definitions
| Field | Required | Description |
|---|---|---|
title | Yes | Concise decision summary |
problem | Yes | Problem or context driving the decision |
chosen_option | Yes | The selected solution or approach |
alternatives_discussed | No | Other options mentioned (empty array if none) |
drivers | No | Factors influencing the decision |
confidence | Yes | high, medium, or low |
source_context | No | Brief description of where decision appeared |
Extraction Workflow
- Scan for explicit markers - Find all
[ADR]tagged content - Identify choice patterns - Look for decision language
- Extract trade-off discussions - Capture alternatives and reasoning
- Assess confidence - Rate each non-explicit decision
- Capture context - Note surrounding discussion for ADR writer
Hard gates
Run these in order after the workflow above and before returning output. Each step has an objective pass condition.
- Explicit
[ADR]inventory — Capture every[ADR]segment from the full source (verbatim in working notes). Pass: a second pass over the same source adds no new[ADR]blocks. - De-duplicate — Merge or drop inferred rows that repeat an explicit
[ADR]decision (see Merge Related Decisions). Pass: at most one row per distinct decision. - Schema validity — Serialized JSON matches Output Format and Field Definitions. Pass: parse succeeds; every
decisions[]item has non-emptytitle,problem,chosen_option;confidence∈ {high,medium,low};alternatives_discussedis an array (use[]if none); other optional fields per table. - Low-confidence audit — For any
confidence: "low",source_contextstates what was missing, weak, or contradictory. Pass: a reader can see why the rating is not higher.
Pattern Examples
High Confidence
"We decided to use Redis for caching because of its sub-millisecond latency
and native TTL support. Memcached was considered but lacks persistence."
Extracts:
- Title: Use Redis for caching
- Problem: Need fast caching with TTL
- Chosen: Redis
- Alternatives: Memcached
- Drivers: sub-millisecond latency, native TTL, persistence
- Confidence: high
Medium Confidence
"Let's go with TypeScript for the frontend since we're already using it
in the backend."
Extracts:
- Title: Use TypeScript for frontend
- Problem: Language choice for frontend
- Chosen: TypeScript
- Alternatives: (none stated)
- Drivers: consistency with backend
- Confidence: medium
Low Confidence
"The API seems to be working well with REST endpoints."
Extracts:
- Title: REST API architecture
- Problem: API design approach
- Chosen: REST
- Alternatives: (none stated)
- Drivers: (none stated)
- Confidence: low
Best Practices
Context Capture
Always capture sufficient context for the ADR writer:
- What was the discussion about?
- Who was involved (if known)?
- What prompted the decision?
Merge Related Decisions
If multiple statements relate to the same decision, consolidate them:
- Combine alternatives from different mentions
- Aggregate drivers
- Use highest confidence level
Flag Ambiguity
When decisions are unclear or contradictory:
- Note the ambiguity in
source_context - Set confidence to
low - Include all interpretations if multiple exist
When to Use This Skill
- Analyzing session transcripts for ADR generation
- Reviewing conversation history for documentation
- Extracting decisions from design discussions
- Preparing input for ADR writing tools
FAQ
What does the adr-decision-extraction skill do?
Use when you need to mine a conversation, session transcript, or design discussion for architectural decisions before writing ADRs. Identifies problem-solution pairs, trade-off debates, technology choices, and explicit "[ADR]" tags. Triggers on "what decisions did we make", "extract decisions from this chat", "find the choices in our discussion", or "summarize architectural decisions". Also useful after long planning sessions to capture decisions that were made implicitly. Does NOT write ADR documents — use adr-writing or write-adr for that.
How do I install adr-decision-extraction?
Run npx skills add https://github.com/existential-birds/beagle --skill adr-decision-extraction in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/adr-decision-extraction/ (personal) or .claude/skills/adr-decision-extraction/ (project).
Which AI agents can use adr-decision-extraction?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is adr-decision-extraction safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains adr-decision-extraction?
It is published by existential-birds in existential-birds/beagle. It has 139 recorded installs.
More from existential-birds/beagle
react-flow
existential-birds/beagle
React Flow (@xyflow/react) for workflow visualization with custom nodes and edges. Use when building graph visualizations, creating custom workflow nodes, implementing edge labels, or controlling viewport. Triggers on ReactFlow, @xyflow/react, Handle, NodeProps, EdgeProps, useReactFlow, fitView.
python-code-review
existential-birds/beagle
Reviews Python code for type safety, async patterns, error handling, and common mistakes. Use when reviewing .py files, checking type hints, async/await usage, or exception handling.
langgraph-code-review
existential-birds/beagle
Reviews LangGraph code for bugs, anti-patterns, and improvements. Use when reviewing code that uses StateGraph, nodes, edges, checkpointing, or other LangGraph features. Catches common mistakes in state management, graph structure, and async patterns.
tailwind-v4
existential-birds/beagle
Tailwind CSS v4 with CSS-first configuration and design tokens. Use when setting up Tailwind v4, defining theme variables, using OKLCH colors, or configuring dark mode. Triggers on @theme, @tailwindcss/vite, oklch, CSS variables, --color-, tailwind v4.
react-flow-advanced
existential-birds/beagle
Advanced React Flow patterns for complex use cases. Use when implementing sub-flows, custom connection lines, programmatic layouts, drag-and-drop, undo/redo, or complex state synchronization.
react-router-v7
existential-birds/beagle
React Router v7 best practices for data-driven routing. Use when implementing routes, loaders, actions, Form components, fetchers, navigation guards, protected routes, or URL search params. Triggers on createBrowserRouter, RouterProvider, useLoaderData, useActionData, useFetcher, NavLink, Outlet.
Popular docs & writing skills
grill-with-docs
mattpocock/skills
A relentless interview to sharpen a plan or design, which also creates docs (ADR's and glossary) as we go.
lark-markdown
open.feishu.cn
飞书 Markdown:查看、创建、上传、编辑和比较飞书中的原生 Markdown 文件。当用户要操作飞书 Markdown 文件,或比较其远端版本及本地草稿时使用。纯本地 Markdown 文件操作不触发本 skill。不负责将 Markdown 导入为飞书在线文档,也不负责文件搜索、权限、评论、移动、删除等云空间管理操作。
writing-beats
mattpocock/skills
Writing, exploit; assemble raw material into a journey of beats, grounding each term before a beat leans on it.
writing-shape
mattpocock/skills
Writing, exploit: shape raw material into an article, paragraph by paragraph.
writing-fragments
mattpocock/skills
Writing, explore: mine raw fragments, no structure yet.
writing-for-agents
mattpocock/skills
Writing documents for agents. Use when creating or editing skills, or modifying AGENTS.md or CLAUDE.md.