Write and maintain Architecture Decision Records following

by wshobson · MIT license · ★ 39,857 on GitHub · updated Sep 21

Architecture decision records cover

Write and maintain Architecture Decision Records (ADRs) following best practices for technical decision documentation. Use when documenting significant technical decisions, reviewing past architectural choices, or establishing decision…

---
name: architecture-decision-records
description: Write and maintain Architecture Decision Records (ADRs) following best practices for technical decision documentation. Use when documenting significant technical decisions, reviewing past architectural choices, or establishing decision processes.
---

# Architecture Decision Records

Comprehensive patterns for creating, maintaining, and managing Architecture Decision Records (ADRs) that capture the context and rationale behind significant technical decisions.

## When to Use This Skill

- Making significant architectural decisions
- Documenting technology choices
- Recording design trade-offs
- Onboarding new team members
- Reviewing historical decisions
- Establishing decision-making processes

Overview

Comprehensive patterns for creating, maintaining, and managing Architecture Decision Records (ADRs) that capture the context and rationale behind significant technical decisions.

Manual install (npx, ZIP)
Claude Codenpx skills add wshobson/agents --skill architecture-decision-records -g -a claude-code
Claude Code (manual)mkdir -p ~/.claude/skills && curl -sL https://codeload.github.com/wshobson/agents/tar.gz/4236bb91f839 \ | tar -xz -C ~/.claude/skills --strip-components=4 agents-4236bb91f839/plugins/documentation-generation/skills/architecture-decision-records
Windows (PowerShell)New-Item -ItemType Directory -Force "$HOME\.claude\skills" | Out-Null; Invoke-WebRequest "https://m.agentalley.io/zip/5648ad22bd383bc630d4/architecture-decision-records.zip" -OutFile "$env:TEMP\architecture-decision-records.zip"; Expand-Archive "$env:TEMP\architecture-decision-records.zip" -DestinationPath "$HOME\.claude\skills" -Force
Claude.ai / desktopDownload the ZIP and upload it under Settings → Capabilities → Skills.
Codex, Cursor, other agentsPoint them at SKILL.md. The other files are plain text.

Connects with Agent Alley MCP · agentalley.io/mcp

Files included

  • SKILL.md12.4 KB
Read the files here
wshobson/4236bb91 file
SKILL.md
Show the full text442 lines

Architecture Decision Records

Comprehensive patterns for creating, maintaining, and managing Architecture Decision Records (ADRs) that capture the context and rationale behind significant technical decisions.

When to Use This Skill

  • Making significant architectural decisions
  • Documenting technology choices
  • Recording design trade-offs
  • Onboarding new team members
  • Reviewing historical decisions
  • Establishing decision-making processes

Core Concepts

1. What is an ADR?

An Architecture Decision Record captures:

  • Context: Why we needed to make a decision
  • Decision: What we decided
  • Consequences: What happens as a result
2. When to Write an ADR
Write ADR Skip ADR
New framework adoption Minor version upgrades
Database technology choice Bug fixes
API design patterns Implementation details
Security architecture Routine maintenance
Integration patterns Configuration changes
3. ADR Lifecycle
Proposed → Accepted → Deprecated → Superseded
              ↓
           Rejected

Templates

Template 1: Standard ADR (MADR Format)
# ADR-0001: Use PostgreSQL as Primary Database

## Status

Accepted

## Context

We need to select a primary database for our new e-commerce platform. The system
will handle:

- ~10,000 concurrent users
- Complex product catalog with hierarchical categories
- Transaction processing for orders and payments
- Full-text search for products
- Geospatial queries for store locator

The team has experience with MySQL, PostgreSQL, and MongoDB. We need ACID
compliance for financial transactions.

## Decision Drivers

- **Must have ACID compliance** for payment processing
- **Must support complex queries** for reporting
- **Should support full-text search** to reduce infrastructure complexity
- **Should have good JSON support** for flexible product attributes
- **Team familiarity** reduces onboarding time

## Considered Options

### Option 1: PostgreSQL

- **Pros**: ACID compliant, excellent JSON support (JSONB), built-in full-text
  search, PostGIS for geospatial, team has experience
- **Cons**: Slightly more complex replication setup than MySQL

### Option 2: MySQL

- **Pros**: Very familiar to team, simple replication, large community
- **Cons**: Weaker JSON support, no built-in full-text search (need
  Elasticsearch), no geospatial without extensions

### Option 3: MongoDB

- **Pros**: Flexible schema, native JSON, horizontal scaling
- **Cons**: No ACID for multi-document transactions (at decision time),
  team has limited experience, requires schema design discipline

## Decision

We will use **PostgreSQL 15** as our primary database.

## Rationale

PostgreSQL provides the best balance of:

1. **ACID compliance** essential for e-commerce transactions
2. **Built-in capabilities** (full-text search, JSONB, PostGIS) reduce
   infrastructure complexity
3. **Team familiarity** with SQL databases reduces learning curve
4. **Mature ecosystem** with excellent tooling and community support

The slight complexity in replication is outweighed by the reduction in
additional services (no separate Elasticsearch needed).

## Consequences

### Positive

- Single database handles transactions, search, and geospatial queries
- Reduced operational complexity (fewer services to manage)
- Strong consistency guarantees for financial data
- Team can leverage existing SQL expertise

### Negative

- Need to learn PostgreSQL-specific features (JSONB, full-text search syntax)
- Vertical scaling limits may require read replicas sooner
- Some team members need PostgreSQL-specific training

### Risks

- Full-text search may not scale as well as dedicated search engines
- Mitigation: Design for potential Elasticsearch addition if needed

## Implementation Notes

- Use JSONB for flexible product attributes
- Implement connection pooling with PgBouncer
- Set up streaming replication for read replicas
- Use pg_trgm extension for fuzzy search

## Related Decisions

- ADR-0002: Caching Strategy (Redis) - complements database choice
- ADR-0005: Search Architecture - may supersede if Elasticsearch needed

## References

- [PostgreSQL JSON Documentation](https://www.postgresql.org/docs/current/datatype-json.html)
- [PostgreSQL Full Text Search](https://www.postgresql.org/docs/current/textsearch.html)
- Internal: Performance benchmarks in `/docs/benchmarks/database-comparison.md`
Template 2: Lightweight ADR
# ADR-0012: Adopt TypeScript for Frontend Development

**Status**: Accepted
**Date**: 2024-01-15
**Deciders**: @alice, @bob, @charlie

## Context

Our React codebase has grown to 50+ components with increasing bug reports
related to prop type mismatches and undefined errors. PropTypes provide
runtime-only checking.

## Decision

Adopt TypeScript for all new frontend code. Migrate existing code incrementally.

## Consequences

**Good**: Catch type errors at compile time, better IDE support, self-documenting
code.

**Bad**: Learning curve for team, initial slowdown, build complexity increase.

**Mitigations**: TypeScript training sessions, allow gradual adoption with
`allowJs: true`.
Template 3: Y-Statement Format
# ADR-0015: API Gateway Selection

In the context of **building a microservices architecture**,
facing **the need for centralized API management, authentication, and rate limiting**,
we decided for **Kong Gateway**
and against **AWS API Gateway and custom Nginx solution**,
to achieve **vendor independence, plugin extensibility, and team familiarity with Lua**,
accepting that **we need to manage Kong infrastructure ourselves**.
Template 4: ADR for Deprecation
# ADR-0020: Deprecate MongoDB in Favor of PostgreSQL

## Status

Accepted (Supersedes ADR-0003)

## Context

ADR-0003 (2021) chose MongoDB for user profile storage due to schema flexibility
needs. Since then:

- MongoDB's multi-document transactions remain problematic for our use case
- Our schema has stabilized and rarely changes
- We now have PostgreSQL expertise from other services
- Maintaining two databases increases operational burden

## Decision

Deprecate MongoDB and migrate user profiles to PostgreSQL.

## Migration Plan

1. **Phase 1** (Week 1-2): Create PostgreSQL schema, dual-write enabled
2. **Phase 2** (Week 3-4): Backfill historical data, validate consistency
3. **Phase 3** (Week 5): Switch reads to PostgreSQL, monitor
4. **Phase 4** (Week 6): Remove MongoDB writes, decommission

## Consequences

### Positive

- Single database technology reduces operational complexity
- ACID transactions for user data
- Team can focus PostgreSQL expertise

### Negative

- Migration effort (~4 weeks)
- Risk of data issues during migration
- Lose some schema flexibility

## Lessons Learned

Document from ADR-0003 experience:

- Schema flexibility benefits were overestimated
- Operational cost of multiple databases was underestimated
- Consider long-term maintenance in technology decisions
Template 5: Request for Comments (RFC) Style
# RFC-0025: Adopt Event Sourcing for Order Management

## Summary

Propose adopting event sourcing pattern for the order management domain to
improve auditability, enable temporal queries, and support business analytics.

## Motivation

Current challenges:

1. Audit requirements need complete order history
2. "What was the order state at time X?" queries are impossible
3. Analytics team needs event stream for real-time dashboards
4. Order state reconstruction for customer support is manual

## Detailed Design

### Event Store

OrderCreated { orderId, customerId, items[], timestamp } OrderItemAdded { orderId, item, timestamp } OrderItemRemoved { orderId, itemId, timestamp } PaymentReceived { orderId, amount, paymentId, timestamp } OrderShipped { orderId, trackingNumber, timestamp }


### Projections

- **CurrentOrderState**: Materialized view for queries
- **OrderHistory**: Complete timeline for audit
- **DailyOrderMetrics**: Analytics aggregation

### Technology

- Event Store: EventStoreDB (purpose-built, handles projections)
- Alternative considered: Kafka + custom projection service

## Drawbacks

- Learning curve for team
- Increased complexity vs. CRUD
- Need to design events carefully (immutable once stored)
- Storage growth (events never deleted)

## Alternatives

1. **Audit tables**: Simpler but doesn't enable temporal queries
2. **CDC from existing DB**: Complex, doesn't change data model
3. **Hybrid**: Event source only for order state changes

## Unresolved Questions

- [ ] Event schema versioning strategy
- [ ] Retention policy for events
- [ ] Snapshot frequency for performance

## Implementation Plan

1. Prototype with single order type (2 weeks)
2. Team training on event sourcing (1 week)
3. Full implementation and migration (4 weeks)
4. Monitoring and optimization (ongoing)

## References

- [Event Sourcing by Martin Fowler](https://martinfowler.com/eaaDev/EventSourcing.html)
- [EventStoreDB Documentation](https://www.eventstore.com/docs)

ADR Management

Directory Structure
docs/
├── adr/
│   ├── README.md           # Index and guidelines
│   ├── template.md         # Team's ADR template
│   ├── 0001-use-postgresql.md
│   ├── 0002-caching-strategy.md
│   ├── 0003-mongodb-user-profiles.md  # [DEPRECATED]
│   └── 0020-deprecate-mongodb.md      # Supersedes 0003
ADR Index (README.md)
# Architecture Decision Records

This directory contains Architecture Decision Records (ADRs) for [Project Name].

## Index

| ADR                                   | Title                              | Status     | Date       |
| ------------------------------------- | ---------------------------------- | ---------- | ---------- |
| [0001](0001-use-postgresql.md)        | Use PostgreSQL as Primary Database | Accepted   | 2024-01-10 |
| [0002](0002-caching-strategy.md)      | Caching Strategy with Redis        | Accepted   | 2024-01-12 |
| [0003](0003-mongodb-user-profiles.md) | MongoDB for User Profiles          | Deprecated | 2023-06-15 |
| [0020](0020-deprecate-mongodb.md)     | Deprecate MongoDB                  | Accepted   | 2024-01-15 |

## Creating a New ADR

1. Copy `template.md` to `NNNN-title-with-dashes.md`
2. Fill in the template
3. Submit PR for review
4. Update this index after approval

## ADR Status

- **Proposed**: Under discussion
- **Accepted**: Decision made, implementing
- **Deprecated**: No longer relevant
- **Superseded**: Replaced by another ADR
- **Rejected**: Considered but not adopted
Automation (adr-tools)
# Install adr-tools
brew install adr-tools

# Initialize ADR directory
adr init docs/adr

# Create new ADR
adr new "Use PostgreSQL as Primary Database"

# Supersede an ADR
adr new -s 3 "Deprecate MongoDB in Favor of PostgreSQL"

# Generate table of contents
adr generate toc > docs/adr/README.md

# Link related ADRs
adr link 2 "Complements" 1 "Is complemented by"

Review Process

## ADR Review Checklist

### Before Submission

- [ ] Context clearly explains the problem
- [ ] All viable options considered
- [ ] Pros/cons balanced and honest
- [ ] Consequences (positive and negative) documented
- [ ] Related ADRs linked

### During Review

- [ ] At least 2 senior engineers reviewed
- [ ] Affected teams consulted
- [ ] Security implications considered
- [ ] Cost implications documented
- [ ] Reversibility assessed

### After Acceptance

- [ ] ADR index updated
- [ ] Team notified
- [ ] Implementation tickets created
- [ ] Related documentation updated

Best Practices

Do's
  • Write ADRs early - Before implementation starts
  • Keep them short - 1-2 pages maximum
  • Be honest about trade-offs - Include real cons
  • Link related decisions - Build decision graph
  • Update status - Deprecate when superseded
Don'ts
  • Don't change accepted ADRs - Write new ones to supersede
  • Don't skip context - Future readers need background
  • Don't hide failures - Rejected decisions are valuable
  • Don't be vague - Specific decisions, specific consequences
  • Don't forget implementation - ADR without action is waste
1---
2name: architecture-decision-records
3description: Write and maintain Architecture Decision Records (ADRs) following best practices for technical decision documentation. Use when documenting significant technical decisions, reviewing past architectural choices, or establishing decision processes.
4---
5 
6# Architecture Decision Records
7 
8Comprehensive patterns for creating, maintaining, and managing Architecture Decision Records (ADRs) that capture the context and rationale behind significant technical decisions.
9 
10## When to Use This Skill
11 
12- Making significant architectural decisions
13- Documenting technology choices
14- Recording design trade-offs
15- Onboarding new team members
16- Reviewing historical decisions
17- Establishing decision-making processes
18 
19## Core Concepts
20 
21### 1. What is an ADR?
22 
23An Architecture Decision Record captures:
24 
25- **Context**: Why we needed to make a decision
26- **Decision**: What we decided
27- **Consequences**: What happens as a result
28 
29### 2. When to Write an ADR
30 
31| Write ADR | Skip ADR |
32| -------------------------- | ---------------------- |
33| New framework adoption | Minor version upgrades |
34| Database technology choice | Bug fixes |
35| API design patterns | Implementation details |
36| Security architecture | Routine maintenance |
37| Integration patterns | Configuration changes |
38 
39### 3. ADR Lifecycle
40 
41```
42Proposed → Accepted → Deprecated → Superseded
43 ↓
44 Rejected
45```
46 
47## Templates
48 
49### Template 1: Standard ADR (MADR Format)
50 
51```markdown
52# ADR-0001: Use PostgreSQL as Primary Database
53 
54## Status
55 
56Accepted
57 
58## Context
59 
60We need to select a primary database for our new e-commerce platform. The system
61will handle:
62 
63- ~10,000 concurrent users
64- Complex product catalog with hierarchical categories
65- Transaction processing for orders and payments
66- Full-text search for products
67- Geospatial queries for store locator
68 
69The team has experience with MySQL, PostgreSQL, and MongoDB. We need ACID
70compliance for financial transactions.
71 
72## Decision Drivers
73 
74- **Must have ACID compliance** for payment processing
75- **Must support complex queries** for reporting
76- **Should support full-text search** to reduce infrastructure complexity
77- **Should have good JSON support** for flexible product attributes
78- **Team familiarity** reduces onboarding time
79 
80## Considered Options
81 
82### Option 1: PostgreSQL
83 
84- **Pros**: ACID compliant, excellent JSON support (JSONB), built-in full-text
85 search, PostGIS for geospatial, team has experience
86- **Cons**: Slightly more complex replication setup than MySQL
87 
88### Option 2: MySQL
89 
90- **Pros**: Very familiar to team, simple replication, large community
91- **Cons**: Weaker JSON support, no built-in full-text search (need
92 Elasticsearch), no geospatial without extensions
93 
94### Option 3: MongoDB
95 
96- **Pros**: Flexible schema, native JSON, horizontal scaling
97- **Cons**: No ACID for multi-document transactions (at decision time),
98 team has limited experience, requires schema design discipline
99 
100## Decision
101 
102We will use **PostgreSQL 15** as our primary database.
103 
104## Rationale
105 
106PostgreSQL provides the best balance of:
107 
1081. **ACID compliance** essential for e-commerce transactions
1092. **Built-in capabilities** (full-text search, JSONB, PostGIS) reduce
110 infrastructure complexity
1113. **Team familiarity** with SQL databases reduces learning curve
1124. **Mature ecosystem** with excellent tooling and community support
113 
114The slight complexity in replication is outweighed by the reduction in
115additional services (no separate Elasticsearch needed).
116 
117## Consequences
118 
119### Positive
120 
121- Single database handles transactions, search, and geospatial queries
122- Reduced operational complexity (fewer services to manage)
123- Strong consistency guarantees for financial data
124- Team can leverage existing SQL expertise
125 
126### Negative
127 
128- Need to learn PostgreSQL-specific features (JSONB, full-text search syntax)
129- Vertical scaling limits may require read replicas sooner
130- Some team members need PostgreSQL-specific training
131 
132### Risks
133 
134- Full-text search may not scale as well as dedicated search engines
135- Mitigation: Design for potential Elasticsearch addition if needed
136 
137## Implementation Notes
138 
139- Use JSONB for flexible product attributes
140- Implement connection pooling with PgBouncer
141- Set up streaming replication for read replicas
142- Use pg_trgm extension for fuzzy search
143 
144## Related Decisions
145 
146- ADR-0002: Caching Strategy (Redis) - complements database choice
147- ADR-0005: Search Architecture - may supersede if Elasticsearch needed
148 
149## References
150 
151- [PostgreSQL JSON Documentation](https://www.postgresql.org/docs/current/datatype-json.html)
152- [PostgreSQL Full Text Search](https://www.postgresql.org/docs/current/textsearch.html)
153- Internal: Performance benchmarks in `/docs/benchmarks/database-comparison.md`
154```
155 
156### Template 2: Lightweight ADR
157 
158```markdown
159# ADR-0012: Adopt TypeScript for Frontend Development
160 
161**Status**: Accepted
162**Date**: 2024-01-15
163**Deciders**: @alice, @bob, @charlie
164 
165## Context
166 
167Our React codebase has grown to 50+ components with increasing bug reports
168related to prop type mismatches and undefined errors. PropTypes provide
169runtime-only checking.
170 
171## Decision
172 
173Adopt TypeScript for all new frontend code. Migrate existing code incrementally.
174 
175## Consequences
176 
177**Good**: Catch type errors at compile time, better IDE support, self-documenting
178code.
179 
180**Bad**: Learning curve for team, initial slowdown, build complexity increase.
181 
182**Mitigations**: TypeScript training sessions, allow gradual adoption with
183`allowJs: true`.
184```
185 
186### Template 3: Y-Statement Format
187 
188```markdown
189# ADR-0015: API Gateway Selection
190 
191In the context of **building a microservices architecture**,
192facing **the need for centralized API management, authentication, and rate limiting**,
193we decided for **Kong Gateway**
194and against **AWS API Gateway and custom Nginx solution**,
195to achieve **vendor independence, plugin extensibility, and team familiarity with Lua**,
196accepting that **we need to manage Kong infrastructure ourselves**.
197```
198 
199### Template 4: ADR for Deprecation
200 
201```markdown
202# ADR-0020: Deprecate MongoDB in Favor of PostgreSQL
203 
204## Status
205 
206Accepted (Supersedes ADR-0003)
207 
208## Context
209 
210ADR-0003 (2021) chose MongoDB for user profile storage due to schema flexibility
211needs. Since then:
212 
213- MongoDB's multi-document transactions remain problematic for our use case
214- Our schema has stabilized and rarely changes
215- We now have PostgreSQL expertise from other services
216- Maintaining two databases increases operational burden
217 
218## Decision
219 
220Deprecate MongoDB and migrate user profiles to PostgreSQL.
221 
222## Migration Plan
223 
2241. **Phase 1** (Week 1-2): Create PostgreSQL schema, dual-write enabled
2252. **Phase 2** (Week 3-4): Backfill historical data, validate consistency
2263. **Phase 3** (Week 5): Switch reads to PostgreSQL, monitor
2274. **Phase 4** (Week 6): Remove MongoDB writes, decommission
228 
229## Consequences
230 
231### Positive
232 
233- Single database technology reduces operational complexity
234- ACID transactions for user data
235- Team can focus PostgreSQL expertise
236 
237### Negative
238 
239- Migration effort (~4 weeks)
240- Risk of data issues during migration
241- Lose some schema flexibility
242 
243## Lessons Learned
244 
245Document from ADR-0003 experience:
246 
247- Schema flexibility benefits were overestimated
248- Operational cost of multiple databases was underestimated
249- Consider long-term maintenance in technology decisions
250```
251 
252### Template 5: Request for Comments (RFC) Style
253 
254```markdown
255# RFC-0025: Adopt Event Sourcing for Order Management
256 
257## Summary
258 
259Propose adopting event sourcing pattern for the order management domain to
260improve auditability, enable temporal queries, and support business analytics.
261 
262## Motivation
263 
264Current challenges:
265 
2661. Audit requirements need complete order history
2672. "What was the order state at time X?" queries are impossible
2683. Analytics team needs event stream for real-time dashboards
2694. Order state reconstruction for customer support is manual
270 
271## Detailed Design
272 
273### Event Store
274```
275 
276OrderCreated { orderId, customerId, items[], timestamp }
277OrderItemAdded { orderId, item, timestamp }
278OrderItemRemoved { orderId, itemId, timestamp }
279PaymentReceived { orderId, amount, paymentId, timestamp }
280OrderShipped { orderId, trackingNumber, timestamp }
281 
282```
283 
284### Projections
285 
286- **CurrentOrderState**: Materialized view for queries
287- **OrderHistory**: Complete timeline for audit
288- **DailyOrderMetrics**: Analytics aggregation
289 
290### Technology
291 
292- Event Store: EventStoreDB (purpose-built, handles projections)
293- Alternative considered: Kafka + custom projection service
294 
295## Drawbacks
296 
297- Learning curve for team
298- Increased complexity vs. CRUD
299- Need to design events carefully (immutable once stored)
300- Storage growth (events never deleted)
301 
302## Alternatives
303 
3041. **Audit tables**: Simpler but doesn't enable temporal queries
3052. **CDC from existing DB**: Complex, doesn't change data model
3063. **Hybrid**: Event source only for order state changes
307 
308## Unresolved Questions
309 
310- [ ] Event schema versioning strategy
311- [ ] Retention policy for events
312- [ ] Snapshot frequency for performance
313 
314## Implementation Plan
315 
3161. Prototype with single order type (2 weeks)
3172. Team training on event sourcing (1 week)
3183. Full implementation and migration (4 weeks)
3194. Monitoring and optimization (ongoing)
320 
321## References
322 
323- [Event Sourcing by Martin Fowler](https://martinfowler.com/eaaDev/EventSourcing.html)
324- [EventStoreDB Documentation](https://www.eventstore.com/docs)
325```
326 
327## ADR Management
328 
329### Directory Structure
330 
331```
332docs/
333├── adr/
334│ ├── README.md # Index and guidelines
335│ ├── template.md # Team's ADR template
336│ ├── 0001-use-postgresql.md
337│ ├── 0002-caching-strategy.md
338│ ├── 0003-mongodb-user-profiles.md # [DEPRECATED]
339│ └── 0020-deprecate-mongodb.md # Supersedes 0003
340```
341 
342### ADR Index (README.md)
343 
344```markdown
345# Architecture Decision Records
346 
347This directory contains Architecture Decision Records (ADRs) for [Project Name].
348 
349## Index
350 
351| ADR | Title | Status | Date |
352| ------------------------------------- | ---------------------------------- | ---------- | ---------- |
353| [0001](0001-use-postgresql.md) | Use PostgreSQL as Primary Database | Accepted | 2024-01-10 |
354| [0002](0002-caching-strategy.md) | Caching Strategy with Redis | Accepted | 2024-01-12 |
355| [0003](0003-mongodb-user-profiles.md) | MongoDB for User Profiles | Deprecated | 2023-06-15 |
356| [0020](0020-deprecate-mongodb.md) | Deprecate MongoDB | Accepted | 2024-01-15 |
357 
358## Creating a New ADR
359 
3601. Copy `template.md` to `NNNN-title-with-dashes.md`
3612. Fill in the template
3623. Submit PR for review
3634. Update this index after approval
364 
365## ADR Status
366 
367- **Proposed**: Under discussion
368- **Accepted**: Decision made, implementing
369- **Deprecated**: No longer relevant
370- **Superseded**: Replaced by another ADR
371- **Rejected**: Considered but not adopted
372```
373 
374### Automation (adr-tools)
375 
376```bash
377# Install adr-tools
378brew install adr-tools
379 
380# Initialize ADR directory
381adr init docs/adr
382 
383# Create new ADR
384adr new "Use PostgreSQL as Primary Database"
385 
386# Supersede an ADR
387adr new -s 3 "Deprecate MongoDB in Favor of PostgreSQL"
388 
389# Generate table of contents
390adr generate toc > docs/adr/README.md
391 
392# Link related ADRs
393adr link 2 "Complements" 1 "Is complemented by"
394```
395 
396## Review Process
397 
398```markdown
399## ADR Review Checklist
400 
401### Before Submission
402 
403- [ ] Context clearly explains the problem
404- [ ] All viable options considered
405- [ ] Pros/cons balanced and honest
406- [ ] Consequences (positive and negative) documented
407- [ ] Related ADRs linked
408 
409### During Review
410 
411- [ ] At least 2 senior engineers reviewed
412- [ ] Affected teams consulted
413- [ ] Security implications considered
414- [ ] Cost implications documented
415- [ ] Reversibility assessed
416 
417### After Acceptance
418 
419- [ ] ADR index updated
420- [ ] Team notified
421- [ ] Implementation tickets created
422- [ ] Related documentation updated
423```
424 
425## Best Practices
426 
427### Do's
428 
429- **Write ADRs early** - Before implementation starts
430- **Keep them short** - 1-2 pages maximum
431- **Be honest about trade-offs** - Include real cons
432- **Link related decisions** - Build decision graph
433- **Update status** - Deprecate when superseded
434 
435### Don'ts
436 
437- **Don't change accepted ADRs** - Write new ones to supersede
438- **Don't skip context** - Future readers need background
439- **Don't hide failures** - Rejected decisions are valuable
440- **Don't be vague** - Specific decisions, specific consequences
441- **Don't forget implementation** - ADR without action is waste
442 
View all files on GitHub →

Details

Updated
Sep 21, 2026
License
MIT
Stars on the repo
★ 39,857
Checked
Source
wshobson/agents ↗
Creator
wshobson · 179 listings
View creator

Similar skills

See all →
SkillPaste the plan or decision you're about to make and get backPoke Holes In My Plan Before I CommitJeffallan/claude-skills · by https://github.com/JeffallanPaste the plan or decision you're about to make and get back its strongest weaknesses, blind spots, and hidden assumptions — plus a tougher version of the plan.★ 11.6k GitHub starsSkillTurns an answer into a one-page visual HTML explainerAnswer me with HTML: answer a complex question with one HTML pageQingYunA/answer-me-with-html · by QingYunATurns an answer into a one-page visual HTML explainer: the model writes a short Markdown draft and the bundled CLI builds one page. Use it proactively and liberally, without being asked, whenever a page would help the reader more than plain text, even if plain text would also work: any explanation of how something works or how parts relate (flow, request path, architecture, code or folder structure, state machine, lifecycle, history); any comparison, trade-off or decision with pros and cons; any diagnosis, review or investigation, especially with several causes or findings to rank; any answer with a table, a numbered or ranked list, steps, branches or several sections; or when the user says "I don't get it / draw it / explain visually / 讲讲原理 / 没看懂 / 画个图". When in doubt, use it: a page is quick and cheap to make. Also for explainer videos ("make a video", "做个视频") and for changing its settings. Skip only for small talk, a trivial one-line answer, or when the user asks for plain text.★ 3.7k GitHub starsSkillPrepare and validate research-only clinical decision-supportClinical Decision-Support Research and EvaluationK-Dense-AI/scientific-agent-skills · by K-Dense-AIPrepare and validate research-only clinical decision-support evaluation, evidence-profile, cohort, survival, biomarker/model, privacy, and governance artifacts. Use for aggregate or synthetic research documentation and traceability—not patient care or live clinical operation.★ 46k GitHub starsSkillHand in a decision you're stuck onTough Decision Advisor: Every Angle ConsideredK-Dense-AI/scientific-agent-skills · by K-Dense-AIHand in a decision you're stuck on. Get back a clear breakdown of every angle — the trade-offs, the risks, the blind spot, and a recommended path.★ 46k GitHub starsSkillRun a pre-mortem risk analysis on a PRD or launch planPre-Mortem: Risk Analysis for Product Launchphuryn/pm-skills · by phurynRun a pre-mortem risk analysis on a PRD or launch plan. Categorizes risks as Tigers (real problems), Paper Tigers (overblown concerns), and Elephants (unspoken worries), then classifies as launch-blocking, fast-follow, or track. Use when preparing for launch, stress-testing a product plan, or identifying what could go wrong.★ 26.6k GitHub starsSkill/cs:cdo-review <plan/cs:cdo-review — CDO Forcing Questionsalirezarezvani/claude-skills · by alirezarezvani/cs:cdo-review <plan> — Decision-driven Chief Data Officer interrogation of any plan that touches training data, data architecture, data productization, or data team hiring. Use when validating training-data rights before model work, choosing warehouse vs lakehouse vs mesh, or valuing data assets for productization or M&A.★ 26.3k GitHub stars

More from wshobson

SkillMaster C/.NET backend development patterns for buildingwshobson/agents · by wshobsonMaster C#/.NET backend development patterns for building robust APIs, MCP servers, and enterprise applications. Covers async/await, dependency injection, Entity Framework Core, Dapper, configuration, caching, and testing with xUnit. Use when developing .NET backends, reviewing C# code, or designing API architectures.★ 39.9k GitHub starsSkillImplement WCAG 2.2 compliant interfaces with mobileAccessibility compliancewshobson/agents · by wshobsonImplement WCAG 2.2 compliant interfaces with mobile accessibility, inclusive design patterns, and assistive technology support. Use when auditing accessibility, implementing ARIA patterns, building for screen readers, or ensuring inclusive user experiences.★ 39.9k GitHub starsSkillMaster Material Design 3 and Jetpack Compose patternsAndroid Mobile Designwshobson/agents · by wshobsonMaster Material Design 3 and Jetpack Compose patterns for building native Android apps. Use when designing Android interfaces, implementing Compose UI, or following Google's Material Design guidelines.★ 39.9k GitHub starsSkillMigrate from AngularJS to Angular using hybrid modeAngular migrationwshobson/agents · by wshobsonMigrate from AngularJS to Angular using hybrid mode, incremental component rewriting, and dependency injection updates. Use when upgrading AngularJS applications, planning framework migrations, or modernizing legacy Angular code.★ 39.9k GitHub starsSkillUnderstand anti-reversing, obfuscationAnti reversing techniqueswshobson/agents · by wshobsonUnderstand anti-reversing, obfuscation, and protection techniques encountered during software analysis. Use this skill when analyzing malware evasion techniques, when implementing anti-debugging protections for CTF challenges, when reverse engineering packed binaries, or when building security research tools that need to detect virtualized environments.★ 39.9k GitHub starsSkillBuild production Apache Airflow DAGs with best practicesApache Airflow DAG Patternswshobson/agents · by wshobsonBuild production Apache Airflow DAGs with best practices for operators, sensors, testing, and deployment. Use when creating data pipelines, orchestrating workflows, or scheduling batch jobs.★ 39.9k GitHub stars