| name | adr-decision-extraction |
| description | Extract architectural decisions from conversations. Identifies problem-solution pairs, trade-off discussions, and explicit choices. Use when analyzing session transcripts for ADR generation. |
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
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