@devobsessed/code-captain 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +214 -0
- package/bin/install.js +1048 -0
- package/claude-code/README.md +276 -0
- package/claude-code/agents/code-captain.md +121 -0
- package/claude-code/agents/spec-generator.md +271 -0
- package/claude-code/agents/story-creator.md +309 -0
- package/claude-code/agents/tech-spec.md +440 -0
- package/claude-code/commands/cc-initialize.md +520 -0
- package/copilot/README.md +210 -0
- package/copilot/chatmodes/Code Captain.chatmode.md +60 -0
- package/copilot/docs/best-practices.md +74 -0
- package/copilot/prompts/create-adr.prompt.md +468 -0
- package/copilot/prompts/create-spec.prompt.md +430 -0
- package/copilot/prompts/edit-spec.prompt.md +396 -0
- package/copilot/prompts/execute-task.prompt.md +144 -0
- package/copilot/prompts/explain-code.prompt.md +292 -0
- package/copilot/prompts/initialize.prompt.md +65 -0
- package/copilot/prompts/new-command.prompt.md +310 -0
- package/copilot/prompts/plan-product.prompt.md +450 -0
- package/copilot/prompts/research.prompt.md +329 -0
- package/copilot/prompts/status.prompt.md +424 -0
- package/copilot/prompts/swab.prompt.md +217 -0
- package/cursor/README.md +224 -0
- package/cursor/cc.md +183 -0
- package/cursor/cc.mdc +69 -0
- package/cursor/commands/create-adr.md +504 -0
- package/cursor/commands/create-spec.md +430 -0
- package/cursor/commands/edit-spec.md +405 -0
- package/cursor/commands/execute-task.md +514 -0
- package/cursor/commands/explain-code.md +289 -0
- package/cursor/commands/initialize.md +397 -0
- package/cursor/commands/new-command.md +312 -0
- package/cursor/commands/plan-product.md +466 -0
- package/cursor/commands/research.md +317 -0
- package/cursor/commands/status.md +413 -0
- package/cursor/commands/swab.md +209 -0
- package/cursor/docs/best-practices.md +74 -0
- package/cursor/integrations/azure-devops/create-azure-work-items.md +403 -0
- package/cursor/integrations/azure-devops/sync-azure-work-items.md +486 -0
- package/cursor/integrations/github/create-github-issues.md +765 -0
- package/cursor/integrations/github/scripts/create-issues-batch.sh +272 -0
- package/cursor/integrations/github/sync-github-issues.md +237 -0
- package/cursor/integrations/github/sync.md +305 -0
- package/manifest.json +381 -0
- package/package.json +58 -0
- package/windsurf/README.md +254 -0
- package/windsurf/rules/cc.md +5 -0
- package/windsurf/workflows/create-adr.md +331 -0
- package/windsurf/workflows/create-spec.md +280 -0
- package/windsurf/workflows/edit-spec.md +273 -0
- package/windsurf/workflows/execute-task.md +276 -0
- package/windsurf/workflows/explain-code.md +292 -0
- package/windsurf/workflows/initialize.md +298 -0
- package/windsurf/workflows/new-command.md +321 -0
- package/windsurf/workflows/status.md +213 -0
|
@@ -0,0 +1,504 @@
|
|
|
1
|
+
# Create ADR Command (cc: create-adr)
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
Create comprehensive Architecture Decision Records (ADRs) that systematically document architectural decisions with clear rationale, alternatives considered, and consequences through a structured analysis and review process.
|
|
6
|
+
|
|
7
|
+
## Usage
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
cc: create-adr "architectural decision description"
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## When to Use
|
|
14
|
+
|
|
15
|
+
- Making significant architectural decisions that affect system structure or design
|
|
16
|
+
- Documenting technology choices with vendor lock-in or high switching costs
|
|
17
|
+
- Recording decisions contrary to team expectations or industry standards
|
|
18
|
+
- Capturing complex trade-offs between competing architectural approaches
|
|
19
|
+
- Establishing architectural patterns and standards for team consistency
|
|
20
|
+
- Onboarding new team members to architectural reasoning and context
|
|
21
|
+
- Creating audit trails for compliance and governance requirements
|
|
22
|
+
|
|
23
|
+
## Prerequisites
|
|
24
|
+
|
|
25
|
+
**MANDATORY:** This command **automatically executes research** if no relevant research exists. The ADR creation process will:
|
|
26
|
+
|
|
27
|
+
1. Check for existing research on the decision topic
|
|
28
|
+
2. If no research found: **automatically read and execute** the complete research workflow from `.code-captain/commands/research.md`
|
|
29
|
+
3. Only proceed with ADR creation after research is completed and documented
|
|
30
|
+
|
|
31
|
+
## Command Process
|
|
32
|
+
|
|
33
|
+
### Step 0: Check for Existing Research and Auto-Execute if Missing
|
|
34
|
+
|
|
35
|
+
**Objective:** Ensure comprehensive research exists before creating ADR - automatically execute research if missing
|
|
36
|
+
|
|
37
|
+
**Actions:**
|
|
38
|
+
|
|
39
|
+
1. **Check for existing research:**
|
|
40
|
+
|
|
41
|
+
- Use `file_search` to look for related research in `.code-captain/research/` directory
|
|
42
|
+
- Search for research documents that might relate to the architectural decision
|
|
43
|
+
- Use `list_dir` to explore the research directory structure
|
|
44
|
+
|
|
45
|
+
2. **Automatic research execution if missing:**
|
|
46
|
+
|
|
47
|
+
```
|
|
48
|
+
If no relevant research found:
|
|
49
|
+
"❌ No existing research found for this architectural decision.
|
|
50
|
+
|
|
51
|
+
Architecture Decision Records require comprehensive research to document alternatives properly.
|
|
52
|
+
|
|
53
|
+
🔄 AUTOMATICALLY EXECUTING RESEARCH WORKFLOW FIRST...
|
|
54
|
+
|
|
55
|
+
Reading .code-captain/commands/research.md and executing complete research process..."
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
3. **Execute research workflow automatically:**
|
|
59
|
+
|
|
60
|
+
- **IMMEDIATELY** use `read_file` to read `.code-captain/commands/research.md`
|
|
61
|
+
- **EXECUTE** the complete 4-phase research methodology as defined in research.md:
|
|
62
|
+
- Phase 1: Define Research Scope
|
|
63
|
+
- Phase 2: Initial Discovery
|
|
64
|
+
- Phase 3: Deep Dive Analysis
|
|
65
|
+
- Phase 4: Synthesis and Recommendations
|
|
66
|
+
- **CREATE** research document in `.code-captain/research/{date}-{topic}-research.md`
|
|
67
|
+
- **ONLY CONTINUE** with ADR creation after research is completed
|
|
68
|
+
|
|
69
|
+
4. **Handle research workflow:**
|
|
70
|
+
- If no research found: **AUTOMATICALLY execute complete research workflow first**
|
|
71
|
+
- If existing research found: Load and reference it throughout the ADR process
|
|
72
|
+
- If research is incomplete: Execute additional research before continuing
|
|
73
|
+
|
|
74
|
+
**Deliverables:**
|
|
75
|
+
|
|
76
|
+
- Research availability assessment
|
|
77
|
+
- **Completed research documentation** (auto-executed if missing)
|
|
78
|
+
- Research document ready for ADR reference
|
|
79
|
+
|
|
80
|
+
### Step 1: Analyze Decision Context and Current State
|
|
81
|
+
|
|
82
|
+
**Objective:** Understand the current architectural state and decision context before proceeding
|
|
83
|
+
|
|
84
|
+
**PREREQUISITE:** This step only begins AFTER Step 0 confirms research exists or completes automatic research execution
|
|
85
|
+
|
|
86
|
+
**CRITICAL:** If Step 0 executed research automatically, load and reference the newly created research document
|
|
87
|
+
|
|
88
|
+
**Create todo tracking:**
|
|
89
|
+
|
|
90
|
+
Use `todo_write` to track the ADR creation process:
|
|
91
|
+
|
|
92
|
+
```json
|
|
93
|
+
{
|
|
94
|
+
"todos": [
|
|
95
|
+
{
|
|
96
|
+
"id": "check-research",
|
|
97
|
+
"content": "Check for existing research and auto-execute if missing",
|
|
98
|
+
"status": "completed"
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
"id": "execute-research",
|
|
102
|
+
"content": "Execute complete research workflow (auto-completed if needed)",
|
|
103
|
+
"status": "completed"
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
"id": "analyze-context",
|
|
107
|
+
"content": "Analyze decision context and current architectural state",
|
|
108
|
+
"status": "in_progress"
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
"id": "define-scope",
|
|
112
|
+
"content": "Define decision scope and evaluation criteria",
|
|
113
|
+
"status": "pending"
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
"id": "research-alternatives",
|
|
117
|
+
"content": "Research alternatives and evaluate options",
|
|
118
|
+
"status": "pending"
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
"id": "document-adr",
|
|
122
|
+
"content": "Document ADR with decision rationale",
|
|
123
|
+
"status": "pending"
|
|
124
|
+
}
|
|
125
|
+
]
|
|
126
|
+
}
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
**Analysis Actions:**
|
|
130
|
+
|
|
131
|
+
1. **Understand current architectural patterns:**
|
|
132
|
+
|
|
133
|
+
- Use `codebase_search` with queries:
|
|
134
|
+
- "What architectural patterns are currently in use?"
|
|
135
|
+
- "How are similar decisions handled in the codebase?"
|
|
136
|
+
- "What dependencies and integrations exist?"
|
|
137
|
+
|
|
138
|
+
2. **Find existing ADRs and documentation:**
|
|
139
|
+
|
|
140
|
+
- Use `file_search` to find existing ADRs in `.code-captain/decision-records/` directory
|
|
141
|
+
- Use `list_dir` to explore system structure and identify affected components
|
|
142
|
+
|
|
143
|
+
3. **Gather decision context:**
|
|
144
|
+
- Identify decision stakeholders and their concerns
|
|
145
|
+
- Determine the specific decision that needs to be made and its urgency
|
|
146
|
+
- Document current architectural context summary
|
|
147
|
+
|
|
148
|
+
**Deliverables:**
|
|
149
|
+
|
|
150
|
+
- Current architectural context summary
|
|
151
|
+
- Decision scope and stakeholder identification
|
|
152
|
+
- Existing ADR inventory and numbering
|
|
153
|
+
|
|
154
|
+
### Step 2: Define Decision Scope and Criteria
|
|
155
|
+
|
|
156
|
+
**Objective:** Clearly define what decision needs to be made and establish evaluation criteria
|
|
157
|
+
|
|
158
|
+
**Actions:**
|
|
159
|
+
|
|
160
|
+
1. **Define the specific architectural decision** requiring documentation
|
|
161
|
+
|
|
162
|
+
2. **Identify driving forces and constraints:**
|
|
163
|
+
|
|
164
|
+
- Business requirements and goals
|
|
165
|
+
- Technical constraints and limitations
|
|
166
|
+
- Performance, security, and scalability requirements
|
|
167
|
+
- Team skills and organizational capabilities
|
|
168
|
+
- Timeline and budget constraints
|
|
169
|
+
|
|
170
|
+
3. **Establish decision criteria and priorities**
|
|
171
|
+
|
|
172
|
+
4. **Determine decision maker(s) and approval process**
|
|
173
|
+
|
|
174
|
+
5. **Set boundaries for the decision scope**
|
|
175
|
+
|
|
176
|
+
**Deliverables:**
|
|
177
|
+
|
|
178
|
+
- Clear problem statement
|
|
179
|
+
- Decision criteria and evaluation framework
|
|
180
|
+
- Stakeholder roles and responsibilities
|
|
181
|
+
- Decision timeline and process
|
|
182
|
+
|
|
183
|
+
### Step 3: Research Alternatives and Evaluate Options
|
|
184
|
+
|
|
185
|
+
**Objective:** Systematically research and evaluate alternative approaches to the architectural decision
|
|
186
|
+
|
|
187
|
+
**Research Actions:**
|
|
188
|
+
|
|
189
|
+
1. **Leverage existing research (if found in Step 0):**
|
|
190
|
+
|
|
191
|
+
- Review research documents from `.code-captain/research/` for relevant findings
|
|
192
|
+
- Extract key insights, alternatives, and recommendations from prior research
|
|
193
|
+
- Identify gaps in existing research that need additional investigation
|
|
194
|
+
|
|
195
|
+
2. **Conduct additional web research as needed:**
|
|
196
|
+
|
|
197
|
+
- "[technology/pattern] architectural approaches"
|
|
198
|
+
- "[decision area] best practices"
|
|
199
|
+
- "[technology] vs [alternative] comparison"
|
|
200
|
+
- "[pattern] pros and cons"
|
|
201
|
+
- "[industry/domain] architecture patterns"
|
|
202
|
+
- "[scale] architecture examples"
|
|
203
|
+
|
|
204
|
+
3. **Use `codebase_search` to understand current implementation approaches**
|
|
205
|
+
|
|
206
|
+
4. **Identify and document alternative options:**
|
|
207
|
+
- Current state/status quo option
|
|
208
|
+
- Industry standard approaches
|
|
209
|
+
- Innovative or emerging alternatives
|
|
210
|
+
- Hybrid approaches combining multiple patterns
|
|
211
|
+
|
|
212
|
+
**Evaluation Framework:**
|
|
213
|
+
|
|
214
|
+
For each alternative, evaluate against established criteria:
|
|
215
|
+
|
|
216
|
+
- Technical feasibility and complexity
|
|
217
|
+
- Performance and scalability implications
|
|
218
|
+
- Security and compliance considerations
|
|
219
|
+
- Development effort and timeline
|
|
220
|
+
- Long-term maintenance and evolution
|
|
221
|
+
- Risk assessment and mitigation strategies
|
|
222
|
+
|
|
223
|
+
**Deliverables:**
|
|
224
|
+
|
|
225
|
+
- Comprehensive alternatives analysis
|
|
226
|
+
- Pros and cons evaluation matrix
|
|
227
|
+
- Risk assessment for each option
|
|
228
|
+
- Expert opinions and team input summary
|
|
229
|
+
|
|
230
|
+
### Step 4: Document ADR with Decision Rationale
|
|
231
|
+
|
|
232
|
+
**Objective:** Create comprehensive ADR documentation with clear decision rationale and consequences
|
|
233
|
+
|
|
234
|
+
**Preparation Actions:**
|
|
235
|
+
|
|
236
|
+
1. **Get current date:**
|
|
237
|
+
|
|
238
|
+
```bash
|
|
239
|
+
date +%Y-%m-%d
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
2. **Determine ADR number:**
|
|
243
|
+
|
|
244
|
+
- Check existing ADRs in `.code-captain/decision-records/` directory
|
|
245
|
+
- Use sequential numbering (0001, 0002, etc.)
|
|
246
|
+
|
|
247
|
+
3. **Create ADR directory structure:**
|
|
248
|
+
|
|
249
|
+
Create the decision records directory (Code Captain will use platform-appropriate commands based on your shell from `state.json`):
|
|
250
|
+
|
|
251
|
+
**ADR Creation:**
|
|
252
|
+
|
|
253
|
+
Create markdown file: `.code-captain/decision-records/NNNN-decision-title.md`
|
|
254
|
+
|
|
255
|
+
**ADR Document Template:**
|
|
256
|
+
|
|
257
|
+
```markdown
|
|
258
|
+
# NNNN. [Decision Title]
|
|
259
|
+
|
|
260
|
+
**Date:** [Use output from date +%Y-%m-%d command]
|
|
261
|
+
|
|
262
|
+
**Status:** [Proposed/Accepted/Deprecated/Superseded]
|
|
263
|
+
|
|
264
|
+
**Deciders:** [Names or roles of decision makers]
|
|
265
|
+
|
|
266
|
+
**Technical Story:** [Brief reference to related issue, epic, or requirement]
|
|
267
|
+
|
|
268
|
+
## Context and Problem Statement
|
|
269
|
+
|
|
270
|
+
[Describe the architectural problem or decision that needs to be made. Include the business context, technical context, and driving forces that led to this decision being necessary.]
|
|
271
|
+
|
|
272
|
+
### Driving Forces
|
|
273
|
+
|
|
274
|
+
- **Business Driver 1:** [e.g., Need to support 10x user growth]
|
|
275
|
+
- **Technical Driver 2:** [e.g., Current monolith becoming unmaintainable]
|
|
276
|
+
- **Organizational Driver 3:** [e.g., Team scaling requires better separation of concerns]
|
|
277
|
+
|
|
278
|
+
### Assumptions
|
|
279
|
+
|
|
280
|
+
- [Any assumptions made during the decision process]
|
|
281
|
+
- [External dependencies or constraints assumed to remain stable]
|
|
282
|
+
|
|
283
|
+
## Decision Drivers
|
|
284
|
+
|
|
285
|
+
[List the key factors that influenced this architectural decision, in order of importance]
|
|
286
|
+
|
|
287
|
+
- **Driver 1:** [e.g., Scalability requirements]
|
|
288
|
+
- **Driver 2:** [e.g., Team autonomy and development velocity]
|
|
289
|
+
- **Driver 3:** [e.g., Technology stack modernization]
|
|
290
|
+
- **Driver 4:** [e.g., Operational complexity management]
|
|
291
|
+
|
|
292
|
+
## Considered Options
|
|
293
|
+
|
|
294
|
+
### Option 1: [Name of option, e.g., "Maintain Current Monolithic Architecture"]
|
|
295
|
+
|
|
296
|
+
**Description:** [Brief description of this approach]
|
|
297
|
+
|
|
298
|
+
**Pros:**
|
|
299
|
+
|
|
300
|
+
- [Positive aspect 1]
|
|
301
|
+
- [Positive aspect 2]
|
|
302
|
+
|
|
303
|
+
**Cons:**
|
|
304
|
+
|
|
305
|
+
- [Negative aspect 1]
|
|
306
|
+
- [Negative aspect 2]
|
|
307
|
+
|
|
308
|
+
**Effort:** [Implementation effort assessment]
|
|
309
|
+
|
|
310
|
+
**Risk:** [Risk level and key risks]
|
|
311
|
+
|
|
312
|
+
### Option 2: [Name of option, e.g., "Migrate to Microservices Architecture"]
|
|
313
|
+
|
|
314
|
+
**Description:** [Brief description of this approach]
|
|
315
|
+
|
|
316
|
+
**Pros:**
|
|
317
|
+
|
|
318
|
+
- [Positive aspect 1]
|
|
319
|
+
- [Positive aspect 2]
|
|
320
|
+
|
|
321
|
+
**Cons:**
|
|
322
|
+
|
|
323
|
+
- [Negative aspect 1]
|
|
324
|
+
- [Negative aspect 2]
|
|
325
|
+
|
|
326
|
+
**Effort:** [Implementation effort assessment]
|
|
327
|
+
|
|
328
|
+
**Risk:** [Risk level and key risks]
|
|
329
|
+
|
|
330
|
+
### Option 3: [Name of option, e.g., "Hybrid Modular Monolith Approach"]
|
|
331
|
+
|
|
332
|
+
**Description:** [Brief description of this approach]
|
|
333
|
+
|
|
334
|
+
**Pros:**
|
|
335
|
+
|
|
336
|
+
- [Positive aspect 1]
|
|
337
|
+
- [Positive aspect 2]
|
|
338
|
+
|
|
339
|
+
**Cons:**
|
|
340
|
+
|
|
341
|
+
- [Negative aspect 1]
|
|
342
|
+
- [Negative aspect 2]
|
|
343
|
+
|
|
344
|
+
**Effort:** [Implementation effort assessment]
|
|
345
|
+
|
|
346
|
+
**Risk:** [Risk level and key risks]
|
|
347
|
+
|
|
348
|
+
## Decision Outcome
|
|
349
|
+
|
|
350
|
+
**Chosen Option:** [Selected option with brief rationale]
|
|
351
|
+
|
|
352
|
+
### Rationale
|
|
353
|
+
|
|
354
|
+
[Detailed explanation of why this option was selected over the alternatives. Reference the decision drivers and how this option best addresses them.]
|
|
355
|
+
|
|
356
|
+
### Confirmation
|
|
357
|
+
|
|
358
|
+
[How will we know this decision is working? What metrics or indicators will we monitor?]
|
|
359
|
+
|
|
360
|
+
## Consequences
|
|
361
|
+
|
|
362
|
+
### Positive Consequences
|
|
363
|
+
|
|
364
|
+
- [Positive outcome 1 - what improvements this decision enables]
|
|
365
|
+
- [Positive outcome 2 - what capabilities this decision provides]
|
|
366
|
+
- [Positive outcome 3 - what risks this decision mitigates]
|
|
367
|
+
|
|
368
|
+
### Negative Consequences
|
|
369
|
+
|
|
370
|
+
- [Negative outcome 1 - what complexities this decision introduces]
|
|
371
|
+
- [Negative outcome 2 - what trade-offs this decision requires]
|
|
372
|
+
- [Negative outcome 3 - what new risks this decision creates]
|
|
373
|
+
|
|
374
|
+
### Mitigation Strategies
|
|
375
|
+
|
|
376
|
+
- [Strategy 1 for addressing negative consequences]
|
|
377
|
+
- [Strategy 2 for managing introduced complexities]
|
|
378
|
+
|
|
379
|
+
## Implementation Notes
|
|
380
|
+
|
|
381
|
+
### Prerequisites
|
|
382
|
+
|
|
383
|
+
- [What needs to be in place before implementing this decision]
|
|
384
|
+
- [Dependencies that must be resolved first]
|
|
385
|
+
|
|
386
|
+
### Implementation Steps
|
|
387
|
+
|
|
388
|
+
1. [Step 1 - immediate actions required]
|
|
389
|
+
2. [Step 2 - follow-up activities]
|
|
390
|
+
3. [Step 3 - validation and monitoring setup]
|
|
391
|
+
|
|
392
|
+
### Success Criteria
|
|
393
|
+
|
|
394
|
+
- [Measurable criteria for successful implementation]
|
|
395
|
+
- [Timeline for achieving implementation milestones]
|
|
396
|
+
|
|
397
|
+
## Follow-up Actions
|
|
398
|
+
|
|
399
|
+
- [Action item 1 with owner and timeline]
|
|
400
|
+
- [Action item 2 with owner and timeline]
|
|
401
|
+
- [Review date for evaluating decision effectiveness]
|
|
402
|
+
|
|
403
|
+
## References
|
|
404
|
+
|
|
405
|
+
- [Link to related ADRs]
|
|
406
|
+
- [Prior research documents from .code-captain/research/ (if applicable)]
|
|
407
|
+
- [External documentation, articles, or research]
|
|
408
|
+
- [Code repositories or examples]
|
|
409
|
+
- [Meeting notes or discussion records]
|
|
410
|
+
|
|
411
|
+
## Related Decisions
|
|
412
|
+
|
|
413
|
+
- [ADR-XXXX: Related decision that influences this one]
|
|
414
|
+
- [ADR-YYYY: Decision that this one supersedes or is superseded by]
|
|
415
|
+
```
|
|
416
|
+
|
|
417
|
+
**Review and Finalization:**
|
|
418
|
+
|
|
419
|
+
1. **Review ADR with stakeholders and decision makers**
|
|
420
|
+
2. **Update ADR status based on team consensus and approval**
|
|
421
|
+
3. **Link related ADRs to show decision evolution**
|
|
422
|
+
4. **Commit ADR to version control**
|
|
423
|
+
|
|
424
|
+
**Deliverables:**
|
|
425
|
+
|
|
426
|
+
- Comprehensive ADR document in `.code-captain/decision-records/NNNN-decision-title.md`
|
|
427
|
+
- Stakeholder review and approval record
|
|
428
|
+
- Updated todo status marking completion
|
|
429
|
+
|
|
430
|
+
## Best Practices
|
|
431
|
+
|
|
432
|
+
### Decision Scope and Focus
|
|
433
|
+
|
|
434
|
+
- Focus on one significant architectural decision per ADR
|
|
435
|
+
- Clearly separate the problem from potential solutions
|
|
436
|
+
- Include sufficient context for future readers to understand the decision
|
|
437
|
+
- Document the decision even if it seems obvious at the time
|
|
438
|
+
- Consider both technical and business implications
|
|
439
|
+
|
|
440
|
+
### Alternatives Analysis
|
|
441
|
+
|
|
442
|
+
- Always include the "do nothing" or "status quo" option
|
|
443
|
+
- Research industry standards and best practices
|
|
444
|
+
- Consider both short-term and long-term implications
|
|
445
|
+
- Include effort and risk assessments for each option
|
|
446
|
+
- Seek diverse perspectives and expert opinions
|
|
447
|
+
|
|
448
|
+
### Decision Documentation
|
|
449
|
+
|
|
450
|
+
- Use clear, jargon-free language that new team members can understand
|
|
451
|
+
- Include relevant diagrams, code examples, or architectural sketches
|
|
452
|
+
- Reference external sources and supporting documentation
|
|
453
|
+
- Document both positive and negative consequences honestly
|
|
454
|
+
- Plan for decision review and potential revision
|
|
455
|
+
|
|
456
|
+
### Stakeholder Engagement
|
|
457
|
+
|
|
458
|
+
- Involve all teams affected by the architectural decision
|
|
459
|
+
- Allow time for thoughtful review and feedback
|
|
460
|
+
- Document dissenting opinions and how they were addressed
|
|
461
|
+
- Ensure decision makers have sufficient context and time
|
|
462
|
+
- Follow up on implementation and measure success
|
|
463
|
+
|
|
464
|
+
### ADR Management
|
|
465
|
+
|
|
466
|
+
- Maintain sequential numbering for easy reference
|
|
467
|
+
- Store ADRs in version control alongside code
|
|
468
|
+
- Link related ADRs to show decision evolution
|
|
469
|
+
- Update status when decisions are superseded or deprecated
|
|
470
|
+
- Regular review of ADR effectiveness and team satisfaction
|
|
471
|
+
|
|
472
|
+
## Common Pitfalls to Avoid
|
|
473
|
+
|
|
474
|
+
### Decision Process Issues
|
|
475
|
+
|
|
476
|
+
- Rushing to document a decision without proper analysis
|
|
477
|
+
- Making decisions in isolation without stakeholder input
|
|
478
|
+
- Failing to research alternative approaches thoroughly
|
|
479
|
+
- Not considering long-term consequences and evolution
|
|
480
|
+
- Avoiding difficult trade-off discussions
|
|
481
|
+
|
|
482
|
+
### Documentation Problems
|
|
483
|
+
|
|
484
|
+
- Writing ADRs that are too technical for business stakeholders
|
|
485
|
+
- Failing to include sufficient context for future understanding
|
|
486
|
+
- Not updating ADR status when decisions change
|
|
487
|
+
- Creating ADRs for trivial decisions that don't warrant documentation
|
|
488
|
+
- Writing overly long ADRs that obscure the key decision
|
|
489
|
+
|
|
490
|
+
### Team and Process Challenges
|
|
491
|
+
|
|
492
|
+
- Not establishing clear decision-making authority
|
|
493
|
+
- Failing to follow up on implementation and monitoring
|
|
494
|
+
- Creating ADRs after decisions are already implemented
|
|
495
|
+
- Not linking ADRs to related architectural documentation
|
|
496
|
+
- Ignoring dissenting opinions without proper consideration
|
|
497
|
+
|
|
498
|
+
### Maintenance and Evolution
|
|
499
|
+
|
|
500
|
+
- Letting ADRs become stale or outdated
|
|
501
|
+
- Not reviewing and learning from past decisions
|
|
502
|
+
- Failing to update related ADRs when superseding decisions
|
|
503
|
+
- Not considering the cumulative effect of multiple ADRs
|
|
504
|
+
- Avoiding difficult conversations about failed decisions
|