Agent skill
technical-decision-record
Use when making technical decisions, choosing technologies, or documenting architectural choices. Creates ADRs (Architecture Decision Records).
Install this agent skill to your Project
npx add-skill https://github.com/aiskillstore/marketplace/tree/main/skills/chaiwithjai/technical-decision-record
SKILL.md
<framework_overview>
What This Is
A structured approach to documenting technical decisions using ADRs (Architecture Decision Records). Ensures decisions are traceable, well-reasoned, and understood by the team.
When to Use
- Choosing between technologies or frameworks
- Making architectural changes
- Selecting third-party services
- Changing established patterns
- Any decision you'd want to reference later </framework_overview>
1. DECISIONS ARE IMMUTABLE HISTORY
Once made, an ADR is never modified—only superseded. This preserves the reasoning at the time, even if context changes later.
2. CONTEXT OVER CONCLUSION
The "why" is more valuable than the "what." Future readers need to understand the constraints, options, and trade-offs that led to the decision.
3. BIAS TOWARD REVERSIBILITY
Prefer decisions that can be changed later. Document the reversal cost for irreversible choices.
4. EXPLICIT OVER IMPLICIT
If it wasn't written down, it wasn't decided. Verbal agreements don't count as architectural decisions.
5. TEAM OVER INDIVIDUAL
Decisions should be reviewed by affected parties. Surprise decisions create resistance.
Step 1: Define the Problem
What are we deciding? Be specific.
- "Which database for user data" not "database stuff"
- Include the trigger: what prompted this decision?
Step 2: List Constraints
What limits our options?
- Technical: performance, scalability, existing stack
- Business: budget, timeline, team skills
- Compliance: security, regulatory, data residency
Step 3: Enumerate Options
List 2-4 real options. For each:
- Brief description
- Pros (what it does well)
- Cons (what it does poorly)
- Estimated cost/effort
Step 4: Make the Decision
Choose one option. State it clearly.
- "We will use [X]"
- Include who made the decision and when
Step 5: Document Consequences
What follows from this decision?
- Positive: benefits we expect
- Negative: costs we accept
- Risks: what could go wrong
- Reversibility: how hard to change later
# ADR-[NUMBER]: [TITLE]
**Status**: [Proposed | Accepted | Superseded by ADR-X]
**Date**: [YYYY-MM-DD]
**Deciders**: [Names]
## Context
[What is the issue? What prompted this decision?]
## Constraints
- [Constraint 1]
- [Constraint 2]
- [Constraint 3]
## Options Considered
### Option 1: [Name]
[Description]
- Pros: [...]
- Cons: [...]
### Option 2: [Name]
[Description]
- Pros: [...]
- Cons: [...]
### Option 3: [Name]
[Description]
- Pros: [...]
- Cons: [...]
## Decision
We will use **[Option X]**.
[Reasoning: Why this option over others?]
## Consequences
### Positive
- [Benefit 1]
- [Benefit 2]
### Negative
- [Cost 1]
- [Cost 2]
### Risks
- [Risk 1]: [Mitigation]
- [Risk 2]: [Mitigation]
### Reversibility
[Easy | Moderate | Difficult | Irreversible]
[Explanation of what reversal would require]
1. DECIDING WITHOUT OPTIONS
Making a decision without exploring alternatives is not a decision—it's a default.
Why it's wrong: You can't justify a choice without knowing what you chose against. Instead: Always list at least 2 options, even if one is "do nothing."
2. BIKESHEDDING
Spending more time on reversible decisions than irreversible ones.
Why it's wrong: Time spent on low-stakes decisions is time not spent on high-stakes ones. Instead: Match deliberation time to reversibility. Irreversible = more process.
3. HIDDEN STAKEHOLDERS
Making decisions that affect teams without involving them.
Why it's wrong: Creates surprise, resistance, and rework. Instead: List affected parties in "Deciders" and get explicit sign-off.
4. REVISION INSTEAD OF SUPERSESSION
Editing old ADRs when context changes.
Why it's wrong: Loses the historical record of why decisions were made. Instead: Create a new ADR that supersedes the old one, referencing the original.
-
What's being decided?
- Technology choice
- Architectural pattern
- Third-party service
- Process change
- Other: ___
-
What triggered this decision?
- New requirement
- Performance issue
- Technical debt
- Team change
- Other: ___
-
How reversible should this be?
- Easy to change (experiment)
- Moderate effort to change
- Significant investment
- Hard to reverse (commit carefully)
I'll help you structure the ADR based on your answers.
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
perigon-backend
Perigon ASP.NET Core + EF Core + Aspire conventions
perigon-agent
Pointers for Copilot/agents to apply Perigon conventions
perigon-angular
Angular 21+ standalone/Material/signal conventions for Perigon WebApp
fastapi-mastery
Comprehensive FastAPI development skill covering REST API creation, routing, request/response handling, validation, authentication, database integration, middleware, and deployment. Use when working with FastAPI projects, building APIs, implementing CRUD operations, setting up authentication/authorization, integrating databases (SQL/NoSQL), adding middleware, handling WebSockets, or deploying FastAPI applications. Triggered by requests involving .py files with FastAPI code, API endpoint creation, Pydantic models, or FastAPI-specific features.
context7-efficient
Token-efficient library documentation fetcher using Context7 MCP with 86.8% token savings through intelligent shell pipeline filtering. Fetches code examples, API references, and best practices for JavaScript, Python, Go, Rust, and other libraries. Use when users ask about library documentation, need code examples, want API usage patterns, are learning a new framework, need syntax reference, or troubleshooting with library-specific information. Triggers include questions like "Show me React hooks", "How do I use Prisma", "What's the Next.js routing syntax", or any request for library/framework documentation.
browser-use
Browser automation using Playwright MCP. Navigate websites, fill forms, click elements, take screenshots, and extract data. Use when tasks require web browsing, form submission, web scraping, UI testing, or any browser interaction.
Didn't find tool you were looking for?