@mytechtoday/augment-extensions 1.2.2 → 1.3.0
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/augment-extensions/visual-design/CHANGELOG.md +132 -0
- package/augment-extensions/visual-design/README.md +255 -0
- package/augment-extensions/visual-design/__tests__/README.md +119 -0
- package/augment-extensions/visual-design/__tests__/style-selector.test.ts +172 -0
- package/augment-extensions/visual-design/__tests__/vendor-styles.test.ts +214 -0
- package/augment-extensions/visual-design/domains/other/ai-prompt-helper.ts +157 -0
- package/augment-extensions/visual-design/domains/other/dotnet-application.ts +156 -0
- package/augment-extensions/visual-design/domains/other/linux-platform.ts +156 -0
- package/augment-extensions/visual-design/domains/other/mobile-application.ts +157 -0
- package/augment-extensions/visual-design/domains/other/motion-picture.ts +156 -0
- package/augment-extensions/visual-design/domains/other/os-application.ts +156 -0
- package/augment-extensions/visual-design/domains/other/print-campaigns.ts +158 -0
- package/augment-extensions/visual-design/domains/other/web-app.ts +157 -0
- package/augment-extensions/visual-design/domains/other/website.ts +161 -0
- package/augment-extensions/visual-design/domains/other/windows-platform.ts +156 -0
- package/augment-extensions/visual-design/domains/web-page-styles/amazon-cloudscape.ts +506 -0
- package/augment-extensions/visual-design/domains/web-page-styles/google-modern.ts +615 -0
- package/augment-extensions/visual-design/domains/web-page-styles/microsoft-fluent.ts +531 -0
- package/augment-extensions/visual-design/examples/README.md +97 -0
- package/augment-extensions/visual-design/examples/ai-prompt-generation.md +233 -0
- package/augment-extensions/visual-design/examples/basic-usage.md +216 -0
- package/augment-extensions/visual-design/examples/domain-workflows.md +257 -0
- package/augment-extensions/visual-design/examples/vendor-comparison.md +247 -0
- package/augment-extensions/visual-design/module.json +78 -0
- package/augment-extensions/visual-design/style-selector.ts +177 -0
- package/augment-extensions/visual-design/types.ts +302 -0
- package/augment-extensions/visual-design/visual-design-core.ts +469 -0
- package/augment-extensions/workflows/adr-support/README.md +227 -0
- package/augment-extensions/workflows/adr-support/__tests__/adr-validator.test.ts +203 -0
- package/augment-extensions/workflows/adr-support/adr-validator.ts +162 -0
- package/augment-extensions/workflows/adr-support/examples/complete-lifecycle-example.md +449 -0
- package/augment-extensions/workflows/adr-support/examples/integration-example.md +580 -0
- package/augment-extensions/workflows/adr-support/examples/superseding-example.md +436 -0
- package/augment-extensions/workflows/adr-support/module.json +112 -0
- package/augment-extensions/workflows/adr-support/rules/adr-creation.md +372 -0
- package/augment-extensions/workflows/adr-support/rules/beads-integration.md +443 -0
- package/augment-extensions/workflows/adr-support/rules/conflict-detection.md +486 -0
- package/augment-extensions/workflows/adr-support/rules/decision-detection.md +362 -0
- package/augment-extensions/workflows/adr-support/rules/lifecycle-management.md +427 -0
- package/augment-extensions/workflows/adr-support/rules/openspec-integration.md +465 -0
- package/augment-extensions/workflows/adr-support/rules/template-selection.md +405 -0
- package/augment-extensions/workflows/adr-support/rules/validation-rules.md +543 -0
- package/augment-extensions/workflows/adr-support/schemas/adr-config.json +191 -0
- package/augment-extensions/workflows/adr-support/schemas/adr-metadata.json +172 -0
- package/augment-extensions/workflows/adr-support/templates/business-case.md +235 -0
- package/augment-extensions/workflows/adr-support/templates/madr-elaborate.md +197 -0
- package/augment-extensions/workflows/adr-support/templates/madr-simple.md +68 -0
- package/augment-extensions/workflows/adr-support/templates/nygard.md +84 -0
- package/cli/dist/utils/__tests__/adr-validator.example.d.ts +6 -0
- package/cli/dist/utils/__tests__/adr-validator.example.d.ts.map +1 -0
- package/cli/dist/utils/__tests__/adr-validator.example.js +148 -0
- package/cli/dist/utils/__tests__/adr-validator.example.js.map +1 -0
- package/cli/dist/utils/adr-validator.d.ts +65 -0
- package/cli/dist/utils/adr-validator.d.ts.map +1 -0
- package/cli/dist/utils/adr-validator.js +203 -0
- package/cli/dist/utils/adr-validator.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,486 @@
|
|
|
1
|
+
# Conflict Detection Rules
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
This document defines how to detect and resolve conflicts between Architecture Decision Records (ADRs), including analysis methods, detection criteria, conflict types, and resolution workflows.
|
|
6
|
+
|
|
7
|
+
## Conflict Types
|
|
8
|
+
|
|
9
|
+
### 1. Direct Conflicts
|
|
10
|
+
|
|
11
|
+
**Definition:** Two ADRs make contradictory decisions about the same topic.
|
|
12
|
+
|
|
13
|
+
**Example:**
|
|
14
|
+
- ADR-0042: "Use PostgreSQL for all databases"
|
|
15
|
+
- ADR-0055: "Use MongoDB for user data storage"
|
|
16
|
+
|
|
17
|
+
**Detection:**
|
|
18
|
+
- Same domain/category
|
|
19
|
+
- Contradictory decisions
|
|
20
|
+
- Overlapping scope
|
|
21
|
+
|
|
22
|
+
### 2. Implicit Conflicts
|
|
23
|
+
|
|
24
|
+
**Definition:** ADRs don't directly contradict but create incompatible system states.
|
|
25
|
+
|
|
26
|
+
**Example:**
|
|
27
|
+
- ADR-0030: "Use synchronous REST APIs for all services"
|
|
28
|
+
- ADR-0048: "Implement event-driven architecture with message queues"
|
|
29
|
+
|
|
30
|
+
**Detection:**
|
|
31
|
+
- Different approaches to same problem
|
|
32
|
+
- Incompatible architectural patterns
|
|
33
|
+
- Conflicting assumptions
|
|
34
|
+
|
|
35
|
+
### 3. Supersession Conflicts
|
|
36
|
+
|
|
37
|
+
**Definition:** New ADR supersedes old one but supersession not properly documented.
|
|
38
|
+
|
|
39
|
+
**Example:**
|
|
40
|
+
- ADR-0010: "Use MySQL" (status: implemented)
|
|
41
|
+
- ADR-0025: "Migrate to PostgreSQL" (status: approved)
|
|
42
|
+
- ADR-0010 should be marked as superseded
|
|
43
|
+
|
|
44
|
+
**Detection:**
|
|
45
|
+
- New ADR replaces old decision
|
|
46
|
+
- Old ADR still marked as active
|
|
47
|
+
- Missing supersedes/superseded_by links
|
|
48
|
+
|
|
49
|
+
### 4. Scope Conflicts
|
|
50
|
+
|
|
51
|
+
**Definition:** ADRs have overlapping but not identical scopes.
|
|
52
|
+
|
|
53
|
+
**Example:**
|
|
54
|
+
- ADR-0020: "Use Redis for all caching"
|
|
55
|
+
- ADR-0035: "Use Memcached for session caching"
|
|
56
|
+
|
|
57
|
+
**Detection:**
|
|
58
|
+
- Overlapping domains
|
|
59
|
+
- Different specificity levels
|
|
60
|
+
- Unclear precedence
|
|
61
|
+
|
|
62
|
+
## Detection Methods
|
|
63
|
+
|
|
64
|
+
### Automated Detection
|
|
65
|
+
|
|
66
|
+
#### Keyword Analysis
|
|
67
|
+
|
|
68
|
+
```typescript
|
|
69
|
+
function detectKeywordConflicts(adr: ADR, allADRs: ADR[]): Conflict[] {
|
|
70
|
+
const conflicts = [];
|
|
71
|
+
const keywords = extractKeywords(adr);
|
|
72
|
+
|
|
73
|
+
allADRs.forEach(otherADR => {
|
|
74
|
+
if (otherADR.id === adr.id) return;
|
|
75
|
+
if (otherADR.status === 'superseded' || otherADR.status === 'sunset') return;
|
|
76
|
+
|
|
77
|
+
const otherKeywords = extractKeywords(otherADR);
|
|
78
|
+
const overlap = keywords.filter(k => otherKeywords.includes(k));
|
|
79
|
+
|
|
80
|
+
if (overlap.length > 2) {
|
|
81
|
+
// Significant keyword overlap, potential conflict
|
|
82
|
+
conflicts.push({
|
|
83
|
+
type: 'potential',
|
|
84
|
+
adr1: adr.id,
|
|
85
|
+
adr2: otherADR.id,
|
|
86
|
+
reason: `Significant keyword overlap: ${overlap.join(', ')}`,
|
|
87
|
+
severity: 'medium'
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
|
|
92
|
+
return conflicts;
|
|
93
|
+
}
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
#### Category Analysis
|
|
97
|
+
|
|
98
|
+
```typescript
|
|
99
|
+
function detectCategoryConflicts(adr: ADR, allADRs: ADR[]): Conflict[] {
|
|
100
|
+
const conflicts = [];
|
|
101
|
+
const categories = extractCategories(adr);
|
|
102
|
+
|
|
103
|
+
allADRs.forEach(otherADR => {
|
|
104
|
+
if (otherADR.id === adr.id) return;
|
|
105
|
+
if (otherADR.status === 'superseded' || otherADR.status === 'sunset') return;
|
|
106
|
+
|
|
107
|
+
const otherCategories = extractCategories(otherADR);
|
|
108
|
+
const overlap = categories.filter(c => otherCategories.includes(c));
|
|
109
|
+
|
|
110
|
+
if (overlap.length > 0) {
|
|
111
|
+
// Same category, check for contradictions
|
|
112
|
+
const contradiction = detectContradiction(adr, otherADR);
|
|
113
|
+
if (contradiction) {
|
|
114
|
+
conflicts.push({
|
|
115
|
+
type: 'direct',
|
|
116
|
+
adr1: adr.id,
|
|
117
|
+
adr2: otherADR.id,
|
|
118
|
+
reason: contradiction,
|
|
119
|
+
severity: 'high'
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
});
|
|
124
|
+
|
|
125
|
+
return conflicts;
|
|
126
|
+
}
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
#### Technology Stack Analysis
|
|
130
|
+
|
|
131
|
+
```typescript
|
|
132
|
+
function detectTechnologyConflicts(adr: ADR, allADRs: ADR[]): Conflict[] {
|
|
133
|
+
const conflicts = [];
|
|
134
|
+
const technologies = extractTechnologies(adr);
|
|
135
|
+
|
|
136
|
+
allADRs.forEach(otherADR => {
|
|
137
|
+
if (otherADR.id === adr.id) return;
|
|
138
|
+
if (otherADR.status === 'superseded' || otherADR.status === 'sunset') return;
|
|
139
|
+
|
|
140
|
+
const otherTechnologies = extractTechnologies(otherADR);
|
|
141
|
+
|
|
142
|
+
// Check for mutually exclusive technologies
|
|
143
|
+
const mutuallyExclusive = checkMutualExclusion(technologies, otherTechnologies);
|
|
144
|
+
if (mutuallyExclusive) {
|
|
145
|
+
conflicts.push({
|
|
146
|
+
type: 'direct',
|
|
147
|
+
adr1: adr.id,
|
|
148
|
+
adr2: otherADR.id,
|
|
149
|
+
reason: `Mutually exclusive technologies: ${mutuallyExclusive}`,
|
|
150
|
+
severity: 'high'
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
});
|
|
154
|
+
|
|
155
|
+
return conflicts;
|
|
156
|
+
}
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
### Manual Detection
|
|
160
|
+
|
|
161
|
+
#### Review Checklist
|
|
162
|
+
|
|
163
|
+
When creating or reviewing ADR, check for conflicts:
|
|
164
|
+
|
|
165
|
+
- [ ] Search for ADRs in same category
|
|
166
|
+
- [ ] Review ADRs with similar keywords
|
|
167
|
+
- [ ] Check for technology overlaps
|
|
168
|
+
- [ ] Verify no contradictory decisions
|
|
169
|
+
- [ ] Confirm supersession properly documented
|
|
170
|
+
|
|
171
|
+
#### Peer Review
|
|
172
|
+
|
|
173
|
+
During ADR review, reviewers should:
|
|
174
|
+
|
|
175
|
+
1. **Search Related ADRs**
|
|
176
|
+
```bash
|
|
177
|
+
# Search for related ADRs
|
|
178
|
+
grep -r "database" adr/
|
|
179
|
+
grep -r "PostgreSQL\|MySQL\|MongoDB" adr/
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
2. **Compare Decisions**
|
|
183
|
+
- Read related ADRs
|
|
184
|
+
- Identify potential conflicts
|
|
185
|
+
- Raise concerns in review
|
|
186
|
+
|
|
187
|
+
3. **Validate Supersession**
|
|
188
|
+
- Check if new ADR supersedes old ones
|
|
189
|
+
- Verify supersession links
|
|
190
|
+
- Ensure old ADRs updated
|
|
191
|
+
|
|
192
|
+
## Conflict Severity Levels
|
|
193
|
+
|
|
194
|
+
### High Severity
|
|
195
|
+
|
|
196
|
+
**Characteristics:**
|
|
197
|
+
- Direct contradiction
|
|
198
|
+
- Same scope
|
|
199
|
+
- Both ADRs active
|
|
200
|
+
- Incompatible implementation
|
|
201
|
+
|
|
202
|
+
**Action Required:**
|
|
203
|
+
- Immediate resolution
|
|
204
|
+
- Block new ADR until resolved
|
|
205
|
+
- Update one or both ADRs
|
|
206
|
+
|
|
207
|
+
**Example:**
|
|
208
|
+
```
|
|
209
|
+
CONFLICT: High Severity
|
|
210
|
+
ADR-0042: Use PostgreSQL for all databases (status: implemented)
|
|
211
|
+
ADR-0055: Use MongoDB for user database (status: proposed)
|
|
212
|
+
|
|
213
|
+
Resolution Required: Decide which database to use for user data.
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
### Medium Severity
|
|
217
|
+
|
|
218
|
+
**Characteristics:**
|
|
219
|
+
- Implicit conflict
|
|
220
|
+
- Overlapping scope
|
|
221
|
+
- May be resolvable
|
|
222
|
+
- Requires clarification
|
|
223
|
+
|
|
224
|
+
**Action Required:**
|
|
225
|
+
- Review before approval
|
|
226
|
+
- Clarify scope boundaries
|
|
227
|
+
- Document relationship
|
|
228
|
+
|
|
229
|
+
**Example:**
|
|
230
|
+
```
|
|
231
|
+
CONFLICT: Medium Severity
|
|
232
|
+
ADR-0030: Use REST APIs for services (status: implemented)
|
|
233
|
+
ADR-0048: Use event-driven architecture (status: proposed)
|
|
234
|
+
|
|
235
|
+
Resolution: Clarify when to use REST vs events. May coexist.
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
### Low Severity
|
|
239
|
+
|
|
240
|
+
**Characteristics:**
|
|
241
|
+
- Potential conflict
|
|
242
|
+
- Different scopes
|
|
243
|
+
- May be complementary
|
|
244
|
+
- Needs verification
|
|
245
|
+
|
|
246
|
+
**Action Required:**
|
|
247
|
+
- Review during approval
|
|
248
|
+
- Document relationship
|
|
249
|
+
- No blocking required
|
|
250
|
+
|
|
251
|
+
**Example:**
|
|
252
|
+
```
|
|
253
|
+
CONFLICT: Low Severity
|
|
254
|
+
ADR-0020: Use Redis for caching (status: implemented)
|
|
255
|
+
ADR-0035: Use CDN for static assets (status: proposed)
|
|
256
|
+
|
|
257
|
+
Resolution: Different types of caching, likely complementary.
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
## Resolution Workflows
|
|
261
|
+
|
|
262
|
+
### Workflow 1: Supersession
|
|
263
|
+
|
|
264
|
+
**Use when:** New ADR replaces old decision.
|
|
265
|
+
|
|
266
|
+
```
|
|
267
|
+
1. Identify old ADR to be superseded
|
|
268
|
+
2. Update new ADR metadata:
|
|
269
|
+
supersedes: [adr-0042]
|
|
270
|
+
3. Update old ADR metadata:
|
|
271
|
+
status: superseded
|
|
272
|
+
superseded_by: adr-0055
|
|
273
|
+
superseded_date: 2026-02-05
|
|
274
|
+
4. Update coordination manifest
|
|
275
|
+
5. Close related tasks for old ADR
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
**Example:**
|
|
279
|
+
```yaml
|
|
280
|
+
# New ADR (adr-0055)
|
|
281
|
+
---
|
|
282
|
+
id: adr-0055
|
|
283
|
+
title: "Migrate to MongoDB for User Data"
|
|
284
|
+
status: proposed
|
|
285
|
+
supersedes: [adr-0042]
|
|
286
|
+
---
|
|
287
|
+
|
|
288
|
+
# Old ADR (adr-0042)
|
|
289
|
+
---
|
|
290
|
+
id: adr-0042
|
|
291
|
+
title: "Use PostgreSQL for All Databases"
|
|
292
|
+
status: superseded
|
|
293
|
+
superseded_by: adr-0055
|
|
294
|
+
superseded_date: 2026-02-05
|
|
295
|
+
---
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
### Workflow 2: Scope Clarification
|
|
299
|
+
|
|
300
|
+
**Use when:** ADRs can coexist with clear boundaries.
|
|
301
|
+
|
|
302
|
+
```
|
|
303
|
+
1. Identify scope overlap
|
|
304
|
+
2. Clarify boundaries in both ADRs
|
|
305
|
+
3. Add cross-references
|
|
306
|
+
4. Document relationship
|
|
307
|
+
5. Update coordination manifest
|
|
308
|
+
```
|
|
309
|
+
|
|
310
|
+
**Example:**
|
|
311
|
+
```markdown
|
|
312
|
+
# ADR-0020: Use Redis for Caching
|
|
313
|
+
|
|
314
|
+
## Scope
|
|
315
|
+
|
|
316
|
+
This ADR covers **application-level caching** including:
|
|
317
|
+
- Session data
|
|
318
|
+
- API response caching
|
|
319
|
+
- Database query caching
|
|
320
|
+
|
|
321
|
+
**Out of Scope:** Static asset caching (see ADR-0035)
|
|
322
|
+
|
|
323
|
+
## Related Decisions
|
|
324
|
+
|
|
325
|
+
- [ADR-0035: Use CDN for Static Assets](./0035-use-cdn-static-assets.md) - Complementary caching strategy
|
|
326
|
+
```
|
|
327
|
+
|
|
328
|
+
### Workflow 3: Consolidation
|
|
329
|
+
|
|
330
|
+
**Use when:** Multiple ADRs should be merged into one.
|
|
331
|
+
|
|
332
|
+
```
|
|
333
|
+
1. Create new consolidated ADR
|
|
334
|
+
2. Reference all previous ADRs
|
|
335
|
+
3. Mark previous ADRs as superseded
|
|
336
|
+
4. Update all related specs/tasks
|
|
337
|
+
5. Update coordination manifest
|
|
338
|
+
```
|
|
339
|
+
|
|
340
|
+
**Example:**
|
|
341
|
+
```yaml
|
|
342
|
+
# New consolidated ADR
|
|
343
|
+
---
|
|
344
|
+
id: adr-0060
|
|
345
|
+
title: "Unified Caching Strategy"
|
|
346
|
+
status: proposed
|
|
347
|
+
supersedes: [adr-0020, adr-0035, adr-0041]
|
|
348
|
+
---
|
|
349
|
+
|
|
350
|
+
## Context
|
|
351
|
+
|
|
352
|
+
This ADR consolidates previous caching decisions:
|
|
353
|
+
- ADR-0020: Redis for application caching
|
|
354
|
+
- ADR-0035: CDN for static assets
|
|
355
|
+
- ADR-0041: Browser caching headers
|
|
356
|
+
|
|
357
|
+
## Decision
|
|
358
|
+
|
|
359
|
+
[Unified caching strategy...]
|
|
360
|
+
```
|
|
361
|
+
|
|
362
|
+
### Workflow 4: Rejection
|
|
363
|
+
|
|
364
|
+
**Use when:** New ADR conflicts and should not proceed.
|
|
365
|
+
|
|
366
|
+
```
|
|
367
|
+
1. Document conflict
|
|
368
|
+
2. Reject new ADR
|
|
369
|
+
3. Add comment explaining conflict
|
|
370
|
+
4. Suggest alternative approach
|
|
371
|
+
```
|
|
372
|
+
|
|
373
|
+
**Example:**
|
|
374
|
+
```yaml
|
|
375
|
+
---
|
|
376
|
+
id: adr-0055
|
|
377
|
+
title: "Use MongoDB for User Data"
|
|
378
|
+
status: rejected
|
|
379
|
+
rejected_date: 2026-02-05
|
|
380
|
+
rejected_reason: "Conflicts with ADR-0042 (Use PostgreSQL). Team decided to maintain PostgreSQL for consistency."
|
|
381
|
+
---
|
|
382
|
+
```
|
|
383
|
+
|
|
384
|
+
## Prevention Strategies
|
|
385
|
+
|
|
386
|
+
### 1. Pre-Creation Search
|
|
387
|
+
|
|
388
|
+
Before creating ADR, search for related decisions:
|
|
389
|
+
|
|
390
|
+
```bash
|
|
391
|
+
# Search by keyword
|
|
392
|
+
grep -ri "database" adr/
|
|
393
|
+
|
|
394
|
+
# Search by technology
|
|
395
|
+
grep -ri "postgresql\|mysql\|mongodb" adr/
|
|
396
|
+
|
|
397
|
+
# Search by category
|
|
398
|
+
grep -ri "category: database" adr/
|
|
399
|
+
```
|
|
400
|
+
|
|
401
|
+
### 2. Category Taxonomy
|
|
402
|
+
|
|
403
|
+
Maintain clear category taxonomy:
|
|
404
|
+
|
|
405
|
+
```
|
|
406
|
+
- architecture
|
|
407
|
+
- patterns
|
|
408
|
+
- layers
|
|
409
|
+
- services
|
|
410
|
+
- infrastructure
|
|
411
|
+
- database
|
|
412
|
+
- caching
|
|
413
|
+
- messaging
|
|
414
|
+
- security
|
|
415
|
+
- authentication
|
|
416
|
+
- authorization
|
|
417
|
+
- encryption
|
|
418
|
+
```
|
|
419
|
+
|
|
420
|
+
### 3. ADR Index
|
|
421
|
+
|
|
422
|
+
Maintain index of ADRs by category:
|
|
423
|
+
|
|
424
|
+
```markdown
|
|
425
|
+
# ADR Index
|
|
426
|
+
|
|
427
|
+
## Database
|
|
428
|
+
- ADR-0001: Use PostgreSQL for Primary Database
|
|
429
|
+
- ADR-0015: Use Redis for Caching
|
|
430
|
+
- ADR-0028: Database Backup Strategy
|
|
431
|
+
|
|
432
|
+
## Architecture
|
|
433
|
+
- ADR-0042: Migrate to Microservices
|
|
434
|
+
- ADR-0043: Use gRPC for Service Communication
|
|
435
|
+
```
|
|
436
|
+
|
|
437
|
+
### 4. Automated Checks
|
|
438
|
+
|
|
439
|
+
Run automated conflict detection:
|
|
440
|
+
|
|
441
|
+
```bash
|
|
442
|
+
# Check for conflicts before creating ADR
|
|
443
|
+
augx adr check-conflicts adr/0055-use-mongodb.md
|
|
444
|
+
|
|
445
|
+
# Output:
|
|
446
|
+
# ⚠️ Potential conflict detected:
|
|
447
|
+
# ADR-0055 (proposed) conflicts with ADR-0042 (implemented)
|
|
448
|
+
# Both make decisions about primary database
|
|
449
|
+
# Severity: High
|
|
450
|
+
#
|
|
451
|
+
# Recommendation: Review ADR-0042 and clarify relationship
|
|
452
|
+
```
|
|
453
|
+
|
|
454
|
+
## Best Practices
|
|
455
|
+
|
|
456
|
+
1. **Search Before Creating**
|
|
457
|
+
- Always search for related ADRs
|
|
458
|
+
- Review similar decisions
|
|
459
|
+
- Check for conflicts early
|
|
460
|
+
|
|
461
|
+
2. **Document Relationships**
|
|
462
|
+
- Use supersedes/superseded_by
|
|
463
|
+
- Add related_decisions links
|
|
464
|
+
- Clarify scope boundaries
|
|
465
|
+
|
|
466
|
+
3. **Review Thoroughly**
|
|
467
|
+
- Include conflict check in review
|
|
468
|
+
- Have multiple reviewers
|
|
469
|
+
- Use automated tools
|
|
470
|
+
|
|
471
|
+
4. **Resolve Promptly**
|
|
472
|
+
- Don't ignore conflicts
|
|
473
|
+
- Resolve before approval
|
|
474
|
+
- Update all affected ADRs
|
|
475
|
+
|
|
476
|
+
5. **Maintain Index**
|
|
477
|
+
- Keep ADR index current
|
|
478
|
+
- Categorize consistently
|
|
479
|
+
- Make searchable
|
|
480
|
+
|
|
481
|
+
## See Also
|
|
482
|
+
|
|
483
|
+
- [ADR Creation Guidelines](./adr-creation.md)
|
|
484
|
+
- [Lifecycle Management](./lifecycle-management.md)
|
|
485
|
+
- [Validation Rules](./validation-rules.md)
|
|
486
|
+
|