@mytechtoday/augment-extensions 1.2.2 → 1.3.1
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/LICENSE +22 -22
- package/augment-extensions/domain-rules/software-architecture/README.md +143 -143
- package/augment-extensions/domain-rules/software-architecture/examples/banking-layered.md +961 -961
- package/augment-extensions/domain-rules/software-architecture/examples/ecommerce-microservices.md +990 -990
- package/augment-extensions/domain-rules/software-architecture/examples/iot-eventdriven.md +882 -882
- package/augment-extensions/domain-rules/software-architecture/examples/monolith-to-microservices-migration.md +703 -703
- package/augment-extensions/domain-rules/software-architecture/examples/serverless-imageprocessing.md +957 -957
- package/augment-extensions/domain-rules/software-architecture/examples/trading-eventdriven.md +747 -747
- package/augment-extensions/domain-rules/software-architecture/module.json +119 -119
- package/augment-extensions/domain-rules/software-architecture/rules/challenges-solutions.md +763 -763
- package/augment-extensions/domain-rules/software-architecture/rules/definitions-terminology.md +409 -409
- package/augment-extensions/domain-rules/software-architecture/rules/design-principles.md +684 -684
- package/augment-extensions/domain-rules/software-architecture/rules/evaluation-testing.md +1381 -1381
- package/augment-extensions/domain-rules/software-architecture/rules/event-driven-architecture.md +616 -616
- package/augment-extensions/domain-rules/software-architecture/rules/fundamentals.md +306 -306
- package/augment-extensions/domain-rules/software-architecture/rules/industry-architectures.md +554 -554
- package/augment-extensions/domain-rules/software-architecture/rules/layered-architecture.md +776 -776
- package/augment-extensions/domain-rules/software-architecture/rules/microservices-architecture.md +503 -503
- package/augment-extensions/domain-rules/software-architecture/rules/modeling-documentation.md +1199 -1199
- package/augment-extensions/domain-rules/software-architecture/rules/monolithic-architecture.md +351 -351
- package/augment-extensions/domain-rules/software-architecture/rules/principles.md +556 -556
- package/augment-extensions/domain-rules/software-architecture/rules/quality-attributes.md +797 -797
- package/augment-extensions/domain-rules/software-architecture/rules/scalability-performance.md +1345 -1345
- package/augment-extensions/domain-rules/software-architecture/rules/security-architecture.md +1039 -1039
- package/augment-extensions/domain-rules/software-architecture/rules/serverless-architecture.md +711 -711
- package/augment-extensions/domain-rules/software-architecture/rules/skills-development.md +568 -568
- package/augment-extensions/domain-rules/software-architecture/rules/tools-methodologies.md +961 -961
- 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/augment-extensions/writing-standards/screenplay/rules/file-organization.md +213 -213
- package/augment-extensions/writing-standards/screenplay/utils/__tests__/file-organization.test.ts +169 -169
- package/augment-extensions/writing-standards/screenplay/utils/file-organization.ts +165 -165
- package/cli/dist/utils/auto-sync.js +19 -19
- package/package.json +5 -3
- package/augment-extensions/workflows/openspec/README.md +0 -96
- package/augment-extensions/workflows/openspec/examples/complete-change-example.md +0 -244
- package/augment-extensions/workflows/openspec/module.json +0 -54
- package/augment-extensions/workflows/openspec/rules/best-practices.md +0 -272
- package/augment-extensions/workflows/openspec/rules/manual-setup.md +0 -231
- package/augment-extensions/workflows/openspec/rules/spec-format.md +0 -236
- package/augment-extensions/workflows/openspec/rules/workflow.md +0 -214
|
@@ -0,0 +1,436 @@
|
|
|
1
|
+
# ADR Superseding Example
|
|
2
|
+
|
|
3
|
+
This example demonstrates how to properly supersede an Architecture Decision Record (ADR) when a previous decision needs to be replaced with a new one.
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
This example shows:
|
|
8
|
+
- **ADR-0023**: "Use MongoDB for Primary Database" (original decision)
|
|
9
|
+
- **ADR-0067**: "Migrate to PostgreSQL" (superseding decision)
|
|
10
|
+
|
|
11
|
+
The superseding workflow includes proper linking, status updates, and coordination manifest updates.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Step 1: Original ADR (Active)
|
|
16
|
+
|
|
17
|
+
**File:** `adr/0023-use-mongodb.md`
|
|
18
|
+
|
|
19
|
+
```markdown
|
|
20
|
+
# ADR-0023: Use MongoDB for Primary Database
|
|
21
|
+
|
|
22
|
+
**Status:** Implemented
|
|
23
|
+
|
|
24
|
+
**Date:** 2025-06-15
|
|
25
|
+
|
|
26
|
+
**Deciders:** Tech Lead, Database Architect, Backend Team
|
|
27
|
+
|
|
28
|
+
**Technical Story:** Related to OpenSpec spec: database/schema
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## Context
|
|
33
|
+
|
|
34
|
+
We need a database solution for our new application with the following requirements:
|
|
35
|
+
- Flexible schema for rapid iteration
|
|
36
|
+
- Horizontal scalability
|
|
37
|
+
- JSON-like document storage
|
|
38
|
+
- Strong community support
|
|
39
|
+
|
|
40
|
+
### Forces
|
|
41
|
+
|
|
42
|
+
- Development speed is critical (6-month deadline)
|
|
43
|
+
- Schema may evolve frequently during MVP phase
|
|
44
|
+
- Team has MongoDB experience
|
|
45
|
+
- Uncertain about final data model
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## Decision
|
|
50
|
+
|
|
51
|
+
We will use MongoDB as our primary database.
|
|
52
|
+
|
|
53
|
+
### Rationale
|
|
54
|
+
|
|
55
|
+
1. **Flexible Schema**: Document model allows rapid iteration
|
|
56
|
+
2. **Team Experience**: Team has 2+ years MongoDB experience
|
|
57
|
+
3. **Development Speed**: Faster prototyping with dynamic schema
|
|
58
|
+
4. **Scalability**: Built-in sharding for horizontal scaling
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## Consequences
|
|
63
|
+
|
|
64
|
+
### Positive
|
|
65
|
+
|
|
66
|
+
- Faster initial development
|
|
67
|
+
- Easy schema evolution
|
|
68
|
+
- Good developer experience
|
|
69
|
+
- Strong ecosystem and tooling
|
|
70
|
+
|
|
71
|
+
### Negative
|
|
72
|
+
|
|
73
|
+
- Limited transaction support (at time of decision)
|
|
74
|
+
- Eventual consistency challenges
|
|
75
|
+
- Complex aggregation queries
|
|
76
|
+
- Higher memory usage
|
|
77
|
+
|
|
78
|
+
### Neutral
|
|
79
|
+
|
|
80
|
+
- Need to learn MongoDB-specific patterns
|
|
81
|
+
- Different backup/restore procedures
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## Related Decisions
|
|
86
|
+
|
|
87
|
+
- Related to: [ADR-0022](0022-microservices-architecture.md)
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## Notes
|
|
92
|
+
|
|
93
|
+
### Implementation Notes
|
|
94
|
+
|
|
95
|
+
- MongoDB 4.2 selected for multi-document transactions
|
|
96
|
+
- Replica set with 3 nodes for high availability
|
|
97
|
+
- Mongoose ODM for Node.js integration
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
## Step 2: Identifying Need for Change
|
|
103
|
+
|
|
104
|
+
**Trigger:** After 18 months of production use, several issues emerged:
|
|
105
|
+
|
|
106
|
+
1. **Transaction Complexity**: Multi-collection transactions causing performance issues
|
|
107
|
+
2. **Query Performance**: Complex joins requiring multiple queries
|
|
108
|
+
3. **Data Integrity**: Lack of foreign key constraints causing data inconsistencies
|
|
109
|
+
4. **Operational Costs**: Higher memory and storage costs than anticipated
|
|
110
|
+
5. **Team Growth**: New team members prefer relational databases
|
|
111
|
+
|
|
112
|
+
**Decision Point:** Team decides to migrate to PostgreSQL.
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
## Step 3: Create Superseding ADR
|
|
117
|
+
|
|
118
|
+
**File:** `adr/0067-migrate-to-postgresql.md`
|
|
119
|
+
|
|
120
|
+
```markdown
|
|
121
|
+
# ADR-0067: Migrate to PostgreSQL
|
|
122
|
+
|
|
123
|
+
**Status:** Approved
|
|
124
|
+
|
|
125
|
+
**Date:** 2026-12-01
|
|
126
|
+
|
|
127
|
+
**Deciders:** Tech Lead, Database Architect, Backend Team, DevOps Lead
|
|
128
|
+
|
|
129
|
+
**Technical Story:** Related to OpenSpec change: postgresql-migration
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
## Context
|
|
134
|
+
|
|
135
|
+
After 18 months using MongoDB (ADR-0023), we've encountered several challenges:
|
|
136
|
+
|
|
137
|
+
1. **Transaction Complexity**: Multi-collection transactions causing 200ms+ latency
|
|
138
|
+
2. **Query Performance**: Complex aggregations requiring multiple round-trips
|
|
139
|
+
3. **Data Integrity**: 47 data inconsistency incidents due to lack of foreign keys
|
|
140
|
+
4. **Operational Costs**: 40% higher than projected ($12k/month vs $8.5k/month)
|
|
141
|
+
5. **Team Expertise**: 5 new hires with strong PostgreSQL background
|
|
142
|
+
|
|
143
|
+
### Forces
|
|
144
|
+
|
|
145
|
+
- Production system with 50k active users
|
|
146
|
+
- Cannot afford extended downtime
|
|
147
|
+
- Need to maintain feature velocity during migration
|
|
148
|
+
- Must preserve all existing data
|
|
149
|
+
- Team capacity: 2 backend engineers for migration
|
|
150
|
+
|
|
151
|
+
---
|
|
152
|
+
|
|
153
|
+
## Decision
|
|
154
|
+
|
|
155
|
+
We will migrate from MongoDB to PostgreSQL as our primary database.
|
|
156
|
+
|
|
157
|
+
### Rationale
|
|
158
|
+
|
|
159
|
+
1. **ACID Transactions**: Native support for complex multi-table transactions
|
|
160
|
+
2. **Query Performance**: Relational model better fits our evolved data structure
|
|
161
|
+
3. **Data Integrity**: Foreign key constraints prevent inconsistencies
|
|
162
|
+
4. **Cost Efficiency**: Projected 35% cost reduction
|
|
163
|
+
5. **Team Expertise**: Better alignment with current team skills
|
|
164
|
+
6. **JSON Support**: PostgreSQL JSONB provides flexibility where needed
|
|
165
|
+
|
|
166
|
+
---
|
|
167
|
+
|
|
168
|
+
## Consequences
|
|
169
|
+
|
|
170
|
+
### Positive
|
|
171
|
+
|
|
172
|
+
- Improved data integrity with foreign key constraints
|
|
173
|
+
- Better query performance for complex joins
|
|
174
|
+
- Lower operational costs
|
|
175
|
+
- Stronger ACID guarantees
|
|
176
|
+
- Better tooling and monitoring
|
|
177
|
+
|
|
178
|
+
### Negative
|
|
179
|
+
|
|
180
|
+
- 3-4 month migration effort
|
|
181
|
+
- Temporary dual-database complexity
|
|
182
|
+
- Need to rewrite aggregation queries
|
|
183
|
+
- Learning curve for PostgreSQL-specific features
|
|
184
|
+
|
|
185
|
+
### Neutral
|
|
186
|
+
|
|
187
|
+
- Different backup/restore procedures
|
|
188
|
+
- Schema migrations become more structured
|
|
189
|
+
- Need to adopt new ORM (Sequelize or TypeORM)
|
|
190
|
+
|
|
191
|
+
---
|
|
192
|
+
|
|
193
|
+
## Related Decisions
|
|
194
|
+
|
|
195
|
+
- **Supersedes**: [ADR-0023](0023-use-mongodb.md) - Use MongoDB for Primary Database
|
|
196
|
+
- Related to: [ADR-0022](0022-microservices-architecture.md)
|
|
197
|
+
|
|
198
|
+
---
|
|
199
|
+
|
|
200
|
+
## Notes
|
|
201
|
+
|
|
202
|
+
### Migration Strategy
|
|
203
|
+
|
|
204
|
+
1. **Phase 1**: Set up PostgreSQL infrastructure (2 weeks)
|
|
205
|
+
2. **Phase 2**: Dual-write to both databases (4 weeks)
|
|
206
|
+
3. **Phase 3**: Migrate historical data (2 weeks)
|
|
207
|
+
4. **Phase 4**: Switch reads to PostgreSQL (2 weeks)
|
|
208
|
+
5. **Phase 5**: Decommission MongoDB (2 weeks)
|
|
209
|
+
|
|
210
|
+
### Implementation Notes
|
|
211
|
+
|
|
212
|
+
- PostgreSQL 15 selected for improved JSON performance
|
|
213
|
+
- Primary-replica setup with 2 read replicas
|
|
214
|
+
- Sequelize ORM for Node.js integration
|
|
215
|
+
- Automated schema migration with db-migrate
|
|
216
|
+
|
|
217
|
+
### References
|
|
218
|
+
|
|
219
|
+
- [Migration Plan](../openspec/changes/postgresql-migration/proposal.md)
|
|
220
|
+
- [Performance Benchmarks](../docs/postgresql-benchmarks.md)
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
---
|
|
224
|
+
|
|
225
|
+
## Step 4: Update Original ADR Status
|
|
226
|
+
|
|
227
|
+
Update `adr/0023-use-mongodb.md` to mark it as superseded:
|
|
228
|
+
|
|
229
|
+
```diff
|
|
230
|
+
- **Status:** Implemented
|
|
231
|
+
+ **Status:** Superseded
|
|
232
|
+
|
|
233
|
+
+ **Superseded By:** [ADR-0067](0067-migrate-to-postgresql.md)
|
|
234
|
+
+ **Superseded Date:** 2026-12-01
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
Add superseded reason to the end of the file:
|
|
238
|
+
|
|
239
|
+
```markdown
|
|
240
|
+
---
|
|
241
|
+
|
|
242
|
+
## Superseded
|
|
243
|
+
|
|
244
|
+
**Date:** 2026-12-01
|
|
245
|
+
|
|
246
|
+
**Superseded By:** [ADR-0067](0067-migrate-to-postgresql.md) - Migrate to PostgreSQL
|
|
247
|
+
|
|
248
|
+
**Reason:** After 18 months in production, we encountered transaction complexity, query performance issues, data integrity challenges, and higher operational costs than anticipated. PostgreSQL better aligns with our evolved data model and team expertise.
|
|
249
|
+
|
|
250
|
+
**Historical Context:** This decision was appropriate for our MVP phase when schema flexibility and development speed were critical. As the application matured, the need for strong data integrity and complex transactions became more important.
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
---
|
|
254
|
+
|
|
255
|
+
## Step 5: Update Coordination Manifest
|
|
256
|
+
|
|
257
|
+
Update `.augment/coordination.json` to reflect the superseding relationship:
|
|
258
|
+
|
|
259
|
+
```json
|
|
260
|
+
{
|
|
261
|
+
"adrs": {
|
|
262
|
+
"adr-0023": {
|
|
263
|
+
"file": "adr/0023-use-mongodb.md",
|
|
264
|
+
"title": "Use MongoDB for Primary Database",
|
|
265
|
+
"status": "superseded",
|
|
266
|
+
"supersededBy": "adr-0067",
|
|
267
|
+
"supersededDate": "2026-12-01",
|
|
268
|
+
"relatedSpecs": ["database/schema"],
|
|
269
|
+
"relatedTasks": ["bd-db01", "bd-db02", "bd-db03"]
|
|
270
|
+
},
|
|
271
|
+
"adr-0067": {
|
|
272
|
+
"file": "adr/0067-migrate-to-postgresql.md",
|
|
273
|
+
"title": "Migrate to PostgreSQL",
|
|
274
|
+
"status": "approved",
|
|
275
|
+
"supersedes": ["adr-0023"],
|
|
276
|
+
"relatedSpecs": ["database/postgresql-schema"],
|
|
277
|
+
"relatedChanges": ["postgresql-migration"],
|
|
278
|
+
"relatedTasks": ["bd-pg01", "bd-pg02", "bd-pg03", "bd-pg04", "bd-pg05"]
|
|
279
|
+
}
|
|
280
|
+
},
|
|
281
|
+
"specs": {
|
|
282
|
+
"database/schema": {
|
|
283
|
+
"file": "openspec/specs/database/schema.md",
|
|
284
|
+
"status": "superseded",
|
|
285
|
+
"relatedADRs": ["adr-0023"],
|
|
286
|
+
"supersededBy": "database/postgresql-schema"
|
|
287
|
+
},
|
|
288
|
+
"database/postgresql-schema": {
|
|
289
|
+
"file": "openspec/specs/database/postgresql-schema.md",
|
|
290
|
+
"status": "active",
|
|
291
|
+
"relatedADRs": ["adr-0067"],
|
|
292
|
+
"supersedes": "database/schema"
|
|
293
|
+
}
|
|
294
|
+
},
|
|
295
|
+
"tasks": {
|
|
296
|
+
"bd-pg01": {
|
|
297
|
+
"title": "Set up PostgreSQL infrastructure",
|
|
298
|
+
"status": "in_progress",
|
|
299
|
+
"relatedADRs": ["adr-0067"],
|
|
300
|
+
"relatedSpecs": ["database/postgresql-schema"]
|
|
301
|
+
},
|
|
302
|
+
"bd-pg02": {
|
|
303
|
+
"title": "Implement dual-write layer",
|
|
304
|
+
"status": "open",
|
|
305
|
+
"relatedADRs": ["adr-0067"]
|
|
306
|
+
},
|
|
307
|
+
"bd-pg03": {
|
|
308
|
+
"title": "Migrate historical data",
|
|
309
|
+
"status": "open",
|
|
310
|
+
"relatedADRs": ["adr-0067"]
|
|
311
|
+
},
|
|
312
|
+
"bd-pg04": {
|
|
313
|
+
"title": "Switch reads to PostgreSQL",
|
|
314
|
+
"status": "open",
|
|
315
|
+
"relatedADRs": ["adr-0067"]
|
|
316
|
+
},
|
|
317
|
+
"bd-pg05": {
|
|
318
|
+
"title": "Decommission MongoDB",
|
|
319
|
+
"status": "open",
|
|
320
|
+
"relatedADRs": ["adr-0067"],
|
|
321
|
+
"blockedBy": ["bd-pg04"]
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
```
|
|
326
|
+
|
|
327
|
+
---
|
|
328
|
+
|
|
329
|
+
## Step 6: Create Beads Tasks
|
|
330
|
+
|
|
331
|
+
Create implementation tasks for the migration:
|
|
332
|
+
|
|
333
|
+
```bash
|
|
334
|
+
# Create epic for migration
|
|
335
|
+
bd create "Migrate from MongoDB to PostgreSQL" \
|
|
336
|
+
--type epic \
|
|
337
|
+
--priority 1 \
|
|
338
|
+
--labels "adr-0067,database,migration"
|
|
339
|
+
|
|
340
|
+
# Create subtasks
|
|
341
|
+
bd create "Set up PostgreSQL infrastructure" \
|
|
342
|
+
--parent bd-pg00 \
|
|
343
|
+
--priority 1 \
|
|
344
|
+
--labels "adr-0067,infrastructure"
|
|
345
|
+
|
|
346
|
+
bd create "Implement dual-write layer" \
|
|
347
|
+
--parent bd-pg00 \
|
|
348
|
+
--priority 1 \
|
|
349
|
+
--labels "adr-0067,implementation" \
|
|
350
|
+
--blocks bd-pg03
|
|
351
|
+
|
|
352
|
+
bd create "Migrate historical data" \
|
|
353
|
+
--parent bd-pg00 \
|
|
354
|
+
--priority 1 \
|
|
355
|
+
--labels "adr-0067,migration" \
|
|
356
|
+
--blocks bd-pg04
|
|
357
|
+
|
|
358
|
+
bd create "Switch reads to PostgreSQL" \
|
|
359
|
+
--parent bd-pg00 \
|
|
360
|
+
--priority 1 \
|
|
361
|
+
--labels "adr-0067,cutover" \
|
|
362
|
+
--blocks bd-pg05
|
|
363
|
+
|
|
364
|
+
bd create "Decommission MongoDB" \
|
|
365
|
+
--parent bd-pg00 \
|
|
366
|
+
--priority 2 \
|
|
367
|
+
--labels "adr-0067,cleanup"
|
|
368
|
+
|
|
369
|
+
# Link epic to ADR
|
|
370
|
+
bd comment bd-pg00 "Implementing ADR-0067: Migrate to PostgreSQL (adr/0067-migrate-to-postgresql.md)"
|
|
371
|
+
```
|
|
372
|
+
|
|
373
|
+
---
|
|
374
|
+
|
|
375
|
+
## Step 7: Update OpenSpec
|
|
376
|
+
|
|
377
|
+
Create OpenSpec change for the migration:
|
|
378
|
+
|
|
379
|
+
**File:** `openspec/changes/postgresql-migration/proposal.md`
|
|
380
|
+
|
|
381
|
+
```markdown
|
|
382
|
+
# PostgreSQL Migration
|
|
383
|
+
|
|
384
|
+
## Related ADR
|
|
385
|
+
|
|
386
|
+
- [ADR-0067: Migrate to PostgreSQL](../../../adr/0067-migrate-to-postgresql.md)
|
|
387
|
+
- Supersedes: [ADR-0023: Use MongoDB](../../../adr/0023-use-mongodb.md)
|
|
388
|
+
|
|
389
|
+
## Overview
|
|
390
|
+
|
|
391
|
+
Migrate from MongoDB to PostgreSQL based on architectural decision ADR-0067.
|
|
392
|
+
|
|
393
|
+
## Motivation
|
|
394
|
+
|
|
395
|
+
See ADR-0067 for detailed context and rationale.
|
|
396
|
+
|
|
397
|
+
## Proposed Changes
|
|
398
|
+
|
|
399
|
+
[Migration details...]
|
|
400
|
+
```
|
|
401
|
+
|
|
402
|
+
---
|
|
403
|
+
|
|
404
|
+
## Workflow Summary
|
|
405
|
+
|
|
406
|
+
### Superseding Checklist
|
|
407
|
+
|
|
408
|
+
- [x] **Create new ADR** with superseding decision
|
|
409
|
+
- [x] **Link to original ADR** in "Supersedes" section
|
|
410
|
+
- [x] **Update original ADR** status to "Superseded"
|
|
411
|
+
- [x] **Add superseded metadata** to original ADR
|
|
412
|
+
- [x] **Update coordination manifest** with both ADRs
|
|
413
|
+
- [x] **Create implementation tasks** in Beads
|
|
414
|
+
- [x] **Link OpenSpec changes** to new ADR
|
|
415
|
+
- [x] **Document migration strategy** in new ADR
|
|
416
|
+
- [x] **Preserve historical context** in original ADR
|
|
417
|
+
|
|
418
|
+
### Key Principles
|
|
419
|
+
|
|
420
|
+
1. **Never delete superseded ADRs** - They provide historical context
|
|
421
|
+
2. **Always link bidirectionally** - Both ADRs should reference each other
|
|
422
|
+
3. **Document the reason** - Explain why the decision changed
|
|
423
|
+
4. **Preserve context** - Original ADR shows why it made sense at the time
|
|
424
|
+
5. **Update all references** - Coordination manifest, specs, tasks
|
|
425
|
+
|
|
426
|
+
---
|
|
427
|
+
|
|
428
|
+
## See Also
|
|
429
|
+
|
|
430
|
+
- [Complete Lifecycle Example](./complete-lifecycle-example.md)
|
|
431
|
+
- [Integration Example](./integration-example.md)
|
|
432
|
+
- [Lifecycle Management Rules](../rules/lifecycle-management.md)
|
|
433
|
+
- [OpenSpec Integration](../rules/openspec-integration.md)
|
|
434
|
+
- [Beads Integration](../rules/beads-integration.md)
|
|
435
|
+
|
|
436
|
+
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "adr-support",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"displayName": "ADR Support Module",
|
|
5
|
+
"description": "Automatic Architecture Decision Record (ADR) management with decision detection, lifecycle tracking, templates, and integration with OpenSpec and Beads workflows",
|
|
6
|
+
"type": "workflow",
|
|
7
|
+
"tags": [
|
|
8
|
+
"adr",
|
|
9
|
+
"architecture",
|
|
10
|
+
"decision-records",
|
|
11
|
+
"documentation",
|
|
12
|
+
"workflow",
|
|
13
|
+
"automation",
|
|
14
|
+
"openspec",
|
|
15
|
+
"beads",
|
|
16
|
+
"lifecycle-management"
|
|
17
|
+
],
|
|
18
|
+
"dependencies": {
|
|
19
|
+
"workflows/openspec": ">=1.0.0",
|
|
20
|
+
"workflows/beads": ">=1.0.0"
|
|
21
|
+
},
|
|
22
|
+
"augment": {
|
|
23
|
+
"characterCount": 0,
|
|
24
|
+
"priority": "high",
|
|
25
|
+
"category": "workflow",
|
|
26
|
+
"appliesTo": {
|
|
27
|
+
"filePatterns": [
|
|
28
|
+
"adr/**/*.md",
|
|
29
|
+
"openspec/**/*",
|
|
30
|
+
".beads/**/*",
|
|
31
|
+
"**/*.md"
|
|
32
|
+
],
|
|
33
|
+
"languages": ["markdown", "json"],
|
|
34
|
+
"domains": [
|
|
35
|
+
"website",
|
|
36
|
+
"web-app",
|
|
37
|
+
"os-application",
|
|
38
|
+
"linux",
|
|
39
|
+
"windows",
|
|
40
|
+
"dotnet",
|
|
41
|
+
"mobile",
|
|
42
|
+
"ai-prompt-helper",
|
|
43
|
+
"motion-picture",
|
|
44
|
+
"print-campaigns"
|
|
45
|
+
]
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
"installation": {
|
|
49
|
+
"required": false,
|
|
50
|
+
"steps": [
|
|
51
|
+
"Link module: augx link workflows/adr-support",
|
|
52
|
+
"Create adr/ directory in project root",
|
|
53
|
+
"Copy templates to adr/templates/",
|
|
54
|
+
"Create .adr-config.json configuration file",
|
|
55
|
+
"Enable ADR detection and automation features"
|
|
56
|
+
]
|
|
57
|
+
},
|
|
58
|
+
"features": {
|
|
59
|
+
"decision_detection": {
|
|
60
|
+
"enabled": true,
|
|
61
|
+
"description": "Automatic detection of architectural decisions from code changes and conversations"
|
|
62
|
+
},
|
|
63
|
+
"adr_creation": {
|
|
64
|
+
"enabled": true,
|
|
65
|
+
"description": "Automated ADR creation with template selection and metadata generation"
|
|
66
|
+
},
|
|
67
|
+
"lifecycle_management": {
|
|
68
|
+
"enabled": true,
|
|
69
|
+
"description": "Track ADR lifecycle: draft → proposed → approved → implemented → maintained → superseded/sunset"
|
|
70
|
+
},
|
|
71
|
+
"validation": {
|
|
72
|
+
"enabled": true,
|
|
73
|
+
"description": "Validate ADR completeness, status transitions, and references"
|
|
74
|
+
},
|
|
75
|
+
"openspec_integration": {
|
|
76
|
+
"enabled": true,
|
|
77
|
+
"description": "Link ADRs to OpenSpec specifications with coordination manifest updates"
|
|
78
|
+
},
|
|
79
|
+
"beads_integration": {
|
|
80
|
+
"enabled": true,
|
|
81
|
+
"description": "Create and link Beads tasks for ADR implementation"
|
|
82
|
+
},
|
|
83
|
+
"conflict_detection": {
|
|
84
|
+
"enabled": true,
|
|
85
|
+
"description": "Detect contradictory decisions and suggest resolutions"
|
|
86
|
+
},
|
|
87
|
+
"review_scheduling": {
|
|
88
|
+
"enabled": true,
|
|
89
|
+
"description": "Schedule and conduct ADR reviews after implementation"
|
|
90
|
+
}
|
|
91
|
+
},
|
|
92
|
+
"contents": [
|
|
93
|
+
"rules/decision-detection.md - How AI agents detect architectural decisions",
|
|
94
|
+
"rules/adr-creation.md - ADR creation process and automation",
|
|
95
|
+
"rules/lifecycle-management.md - ADR lifecycle and status transitions",
|
|
96
|
+
"rules/template-selection.md - Template selection logic and guidelines",
|
|
97
|
+
"rules/validation.md - ADR validation and completeness checks",
|
|
98
|
+
"rules/openspec-integration.md - OpenSpec integration patterns",
|
|
99
|
+
"rules/beads-integration.md - Beads integration patterns",
|
|
100
|
+
"rules/conflict-detection.md - Conflict detection and resolution",
|
|
101
|
+
"templates/nygard.md - Michael Nygard ADR template (default)",
|
|
102
|
+
"templates/madr-simple.md - MADR Simple template",
|
|
103
|
+
"templates/madr-elaborate.md - MADR Elaborate template",
|
|
104
|
+
"templates/business-case.md - Business Case template",
|
|
105
|
+
"examples/complete-lifecycle-example.md - Full ADR lifecycle example",
|
|
106
|
+
"examples/superseding-example.md - ADR superseding workflow",
|
|
107
|
+
"examples/integration-example.md - OpenSpec + Beads integration",
|
|
108
|
+
"schemas/adr-config.json - ADR configuration schema",
|
|
109
|
+
"schemas/adr-metadata.json - ADR metadata schema"
|
|
110
|
+
]
|
|
111
|
+
}
|
|
112
|
+
|