aios-core 4.1.0 → 4.2.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/.aios-core/.session/current-session.json +14 -0
- package/.aios-core/core/registry/registry-schema.json +166 -166
- package/.aios-core/core/registry/service-registry.json +6585 -6585
- package/.aios-core/data/entity-registry.yaml +208 -8
- package/.aios-core/data/registry-update-log.jsonl +165 -0
- package/.aios-core/development/scripts/approval-workflow.js +642 -642
- package/.aios-core/development/scripts/backup-manager.js +606 -606
- package/.aios-core/development/scripts/branch-manager.js +389 -389
- package/.aios-core/development/scripts/code-quality-improver.js +1311 -1311
- package/.aios-core/development/scripts/commit-message-generator.js +849 -849
- package/.aios-core/development/scripts/conflict-resolver.js +674 -674
- package/.aios-core/development/scripts/dependency-analyzer.js +637 -637
- package/.aios-core/development/scripts/diff-generator.js +351 -351
- package/.aios-core/development/scripts/elicitation-engine.js +384 -384
- package/.aios-core/development/scripts/elicitation-session-manager.js +299 -299
- package/.aios-core/development/scripts/git-wrapper.js +461 -461
- package/.aios-core/development/scripts/manifest-preview.js +244 -244
- package/.aios-core/development/scripts/metrics-tracker.js +775 -775
- package/.aios-core/development/scripts/modification-validator.js +554 -554
- package/.aios-core/development/scripts/pattern-learner.js +1224 -1224
- package/.aios-core/development/scripts/performance-analyzer.js +757 -757
- package/.aios-core/development/scripts/refactoring-suggester.js +1138 -1138
- package/.aios-core/development/scripts/rollback-handler.js +530 -530
- package/.aios-core/development/scripts/security-checker.js +358 -358
- package/.aios-core/development/scripts/template-engine.js +239 -239
- package/.aios-core/development/scripts/template-validator.js +278 -278
- package/.aios-core/development/scripts/test-generator.js +843 -843
- package/.aios-core/development/scripts/transaction-manager.js +589 -589
- package/.aios-core/development/scripts/usage-tracker.js +673 -673
- package/.aios-core/development/scripts/validate-filenames.js +226 -226
- package/.aios-core/development/scripts/version-tracker.js +526 -526
- package/.aios-core/development/scripts/yaml-validator.js +396 -396
- package/.aios-core/development/tasks/validate-next-story.md +99 -2
- package/.aios-core/development/templates/service-template/README.md.hbs +158 -158
- package/.aios-core/development/templates/service-template/__tests__/index.test.ts.hbs +237 -237
- package/.aios-core/development/templates/service-template/client.ts.hbs +403 -403
- package/.aios-core/development/templates/service-template/errors.ts.hbs +182 -182
- package/.aios-core/development/templates/service-template/index.ts.hbs +120 -120
- package/.aios-core/development/templates/service-template/package.json.hbs +87 -87
- package/.aios-core/development/templates/service-template/types.ts.hbs +145 -145
- package/.aios-core/development/templates/squad-template/LICENSE +21 -21
- package/.aios-core/docs/SHARD-TRANSLATION-GUIDE.md +335 -0
- package/.aios-core/docs/component-creation-guide.md +458 -0
- package/.aios-core/docs/session-update-pattern.md +307 -0
- package/.aios-core/docs/standards/AIOS-FRAMEWORK-MASTER.md +1963 -0
- package/.aios-core/docs/standards/AIOS-LIVRO-DE-OURO-V2.1-SUMMARY.md +1190 -0
- package/.aios-core/docs/standards/AIOS-LIVRO-DE-OURO-V2.1.md +439 -0
- package/.aios-core/docs/standards/AIOS-LIVRO-DE-OURO.md +5398 -0
- package/.aios-core/docs/standards/V3-ARCHITECTURAL-DECISIONS.md +523 -0
- package/.aios-core/docs/template-syntax.md +267 -0
- package/.aios-core/docs/troubleshooting-guide.md +625 -0
- package/.aios-core/infrastructure/templates/aios-sync.yaml.template +193 -193
- package/.aios-core/infrastructure/templates/coderabbit.yaml.template +279 -279
- package/.aios-core/infrastructure/templates/github-workflows/ci.yml.template +169 -169
- package/.aios-core/infrastructure/templates/github-workflows/pr-automation.yml.template +330 -330
- package/.aios-core/infrastructure/templates/github-workflows/release.yml.template +196 -196
- package/.aios-core/infrastructure/templates/gitignore/gitignore-aios-base.tmpl +63 -63
- package/.aios-core/infrastructure/templates/gitignore/gitignore-brownfield-merge.tmpl +18 -18
- package/.aios-core/infrastructure/templates/gitignore/gitignore-node.tmpl +85 -85
- package/.aios-core/infrastructure/templates/gitignore/gitignore-python.tmpl +145 -145
- package/.aios-core/infrastructure/tests/utilities-audit-results.json +501 -0
- package/.aios-core/install-manifest.yaml +101 -101
- package/.aios-core/local-config.yaml.template +70 -70
- package/.aios-core/manifests/agents.csv +29 -0
- package/.aios-core/manifests/schema/manifest-schema.json +190 -190
- package/.aios-core/manifests/tasks.csv +198 -0
- package/.aios-core/manifests/workers.csv +204 -0
- package/.aios-core/monitor/hooks/lib/__init__.py +1 -1
- package/.aios-core/monitor/hooks/lib/enrich.py +58 -58
- package/.aios-core/monitor/hooks/lib/send_event.py +47 -47
- package/.aios-core/monitor/hooks/notification.py +29 -29
- package/.aios-core/monitor/hooks/post_tool_use.py +45 -45
- package/.aios-core/monitor/hooks/pre_compact.py +29 -29
- package/.aios-core/monitor/hooks/pre_tool_use.py +40 -40
- package/.aios-core/monitor/hooks/stop.py +29 -29
- package/.aios-core/monitor/hooks/subagent_stop.py +29 -29
- package/.aios-core/monitor/hooks/user_prompt_submit.py +38 -38
- package/.aios-core/product/templates/adr.hbs +125 -125
- package/.aios-core/product/templates/component-react-tmpl.tsx +98 -98
- package/.aios-core/product/templates/dbdr.hbs +241 -241
- package/.aios-core/product/templates/engine/schemas/adr.schema.json +102 -102
- package/.aios-core/product/templates/engine/schemas/dbdr.schema.json +205 -205
- package/.aios-core/product/templates/engine/schemas/epic.schema.json +175 -175
- package/.aios-core/product/templates/engine/schemas/pmdr.schema.json +175 -175
- package/.aios-core/product/templates/engine/schemas/prd-v2.schema.json +300 -300
- package/.aios-core/product/templates/engine/schemas/prd.schema.json +152 -152
- package/.aios-core/product/templates/engine/schemas/story.schema.json +222 -222
- package/.aios-core/product/templates/engine/schemas/task.schema.json +154 -154
- package/.aios-core/product/templates/epic.hbs +212 -212
- package/.aios-core/product/templates/eslintrc-security.json +32 -32
- package/.aios-core/product/templates/github-actions-cd.yml +212 -212
- package/.aios-core/product/templates/github-actions-ci.yml +172 -172
- package/.aios-core/product/templates/pmdr.hbs +186 -186
- package/.aios-core/product/templates/prd-v2.0.hbs +216 -216
- package/.aios-core/product/templates/prd.hbs +201 -201
- package/.aios-core/product/templates/shock-report-tmpl.html +502 -502
- package/.aios-core/product/templates/story.hbs +263 -263
- package/.aios-core/product/templates/task.hbs +170 -170
- package/.aios-core/product/templates/tmpl-comment-on-examples.sql +158 -158
- package/.aios-core/product/templates/tmpl-migration-script.sql +91 -91
- package/.aios-core/product/templates/tmpl-rls-granular-policies.sql +104 -104
- package/.aios-core/product/templates/tmpl-rls-kiss-policy.sql +10 -10
- package/.aios-core/product/templates/tmpl-rls-roles.sql +135 -135
- package/.aios-core/product/templates/tmpl-rls-simple.sql +77 -77
- package/.aios-core/product/templates/tmpl-rls-tenant.sql +152 -152
- package/.aios-core/product/templates/tmpl-rollback-script.sql +77 -77
- package/.aios-core/product/templates/tmpl-seed-data.sql +140 -140
- package/.aios-core/product/templates/tmpl-smoke-test.sql +16 -16
- package/.aios-core/product/templates/tmpl-staging-copy-merge.sql +139 -139
- package/.aios-core/product/templates/tmpl-stored-proc.sql +140 -140
- package/.aios-core/product/templates/tmpl-trigger.sql +152 -152
- package/.aios-core/product/templates/tmpl-view-materialized.sql +133 -133
- package/.aios-core/product/templates/tmpl-view.sql +177 -177
- package/.aios-core/product/templates/token-exports-css-tmpl.css +240 -240
- package/.aios-core/quality/schemas/quality-metrics.schema.json +233 -233
- package/.aios-core/scripts/migrate-framework-docs.sh +300 -300
- package/.aios-core/scripts/pm.sh +0 -0
- package/.claude/hooks/enforce-architecture-first.py +196 -196
- package/.claude/hooks/mind-clone-governance.py +192 -192
- package/.claude/hooks/read-protection.py +151 -151
- package/.claude/hooks/slug-validation.py +176 -176
- package/.claude/hooks/sql-governance.py +182 -182
- package/.claude/hooks/write-path-validation.py +194 -194
- package/.claude/rules/agent-authority.md +105 -0
- package/.claude/rules/coderabbit-integration.md +93 -0
- package/.claude/rules/ids-principles.md +112 -0
- package/.claude/rules/story-lifecycle.md +139 -0
- package/.claude/rules/workflow-execution.md +150 -0
- package/LICENSE +48 -48
- package/bin/aios-minimal.js +0 -0
- package/bin/aios.js +0 -0
- package/package.json +1 -1
- package/packages/aios-install/bin/aios-install.js +0 -0
- package/packages/aios-install/bin/edmcp.js +0 -0
- package/packages/aios-pro-cli/bin/aios-pro.js +0 -0
- package/packages/installer/src/wizard/pro-setup.js +433 -49
- package/scripts/check-markdown-links.py +352 -352
- package/scripts/code-intel-health-check.js +343 -0
- package/scripts/dashboard-parallel-dev.sh +0 -0
- package/scripts/dashboard-parallel-phase3.sh +0 -0
- package/scripts/dashboard-parallel-phase4.sh +0 -0
- package/scripts/glue/README.md +355 -0
- package/scripts/glue/compose-agent-prompt.cjs +362 -0
- package/scripts/install-monitor-hooks.sh +0 -0
- package/.aios-core/lib/build.json +0 -1
|
@@ -1,241 +1,241 @@
|
|
|
1
|
-
---
|
|
2
|
-
template_id: dbdr
|
|
3
|
-
template_name: Database Decision Record
|
|
4
|
-
version: 1.0
|
|
5
|
-
variables:
|
|
6
|
-
- name: number
|
|
7
|
-
type: number
|
|
8
|
-
required: true
|
|
9
|
-
auto: next_dbdr_number
|
|
10
|
-
- name: title
|
|
11
|
-
type: string
|
|
12
|
-
required: true
|
|
13
|
-
prompt: "Title of the database decision:"
|
|
14
|
-
- name: status
|
|
15
|
-
type: choice
|
|
16
|
-
required: true
|
|
17
|
-
choices: [Proposed, Approved, Implemented, Rolled Back]
|
|
18
|
-
default: Proposed
|
|
19
|
-
- name: dbType
|
|
20
|
-
type: choice
|
|
21
|
-
required: true
|
|
22
|
-
choices: [PostgreSQL, MySQL, MongoDB, SQLite, Supabase, Other]
|
|
23
|
-
prompt: "Which database?"
|
|
24
|
-
- name: owner
|
|
25
|
-
type: string
|
|
26
|
-
required: true
|
|
27
|
-
prompt: "Who is the decision owner?"
|
|
28
|
-
- name: context
|
|
29
|
-
type: text
|
|
30
|
-
required: true
|
|
31
|
-
prompt: "What is the context and data problem?"
|
|
32
|
-
- name: decision
|
|
33
|
-
type: text
|
|
34
|
-
required: true
|
|
35
|
-
prompt: "What is the decision being made?"
|
|
36
|
-
- name: migrationStrategy
|
|
37
|
-
type: text
|
|
38
|
-
required: true
|
|
39
|
-
prompt: "What is the migration strategy?"
|
|
40
|
-
- name: rollbackPlan
|
|
41
|
-
type: text
|
|
42
|
-
required: true
|
|
43
|
-
prompt: "What is the rollback plan?"
|
|
44
|
-
---
|
|
45
|
-
|
|
46
|
-
# DBDR {{padNumber number 3}}: {{title}}
|
|
47
|
-
|
|
48
|
-
**Status:** {{status}}
|
|
49
|
-
**Date:** {{formatDate now "YYYY-MM-DD"}}
|
|
50
|
-
**Owner:** {{owner}}
|
|
51
|
-
**Database:** {{dbType}}
|
|
52
|
-
|
|
53
|
-
---
|
|
54
|
-
|
|
55
|
-
## Context
|
|
56
|
-
|
|
57
|
-
{{#if currentState}}
|
|
58
|
-
### Current State
|
|
59
|
-
{{currentState}}
|
|
60
|
-
{{/if}}
|
|
61
|
-
|
|
62
|
-
### Problem Statement
|
|
63
|
-
{{context}}
|
|
64
|
-
|
|
65
|
-
{{#if dataVolume}}
|
|
66
|
-
### Data Volume Considerations
|
|
67
|
-
- **Current Size:** {{dataVolume.current}}
|
|
68
|
-
- **Projected Growth:** {{dataVolume.projected}}
|
|
69
|
-
- **Retention Policy:** {{dataVolume.retention}}
|
|
70
|
-
{{/if}}
|
|
71
|
-
|
|
72
|
-
---
|
|
73
|
-
|
|
74
|
-
## Decision
|
|
75
|
-
|
|
76
|
-
{{decision}}
|
|
77
|
-
|
|
78
|
-
{{#if rationale}}
|
|
79
|
-
### Rationale
|
|
80
|
-
{{rationale}}
|
|
81
|
-
{{/if}}
|
|
82
|
-
|
|
83
|
-
---
|
|
84
|
-
|
|
85
|
-
## Schema Changes
|
|
86
|
-
|
|
87
|
-
{{#if schemaChanges}}
|
|
88
|
-
### Tables Affected
|
|
89
|
-
|
|
90
|
-
| Table | Change Type | Description |
|
|
91
|
-
|-------|-------------|-------------|
|
|
92
|
-
{{#each schemaChanges}}
|
|
93
|
-
| `{{this.table}}` | {{this.changeType}} | {{this.description}} |
|
|
94
|
-
{{/each}}
|
|
95
|
-
|
|
96
|
-
### SQL Migrations
|
|
97
|
-
|
|
98
|
-
```sql
|
|
99
|
-
{{#each schemaChanges}}
|
|
100
|
-
-- {{this.table}}: {{this.changeType}}
|
|
101
|
-
{{this.sql}}
|
|
102
|
-
|
|
103
|
-
{{/each}}
|
|
104
|
-
```
|
|
105
|
-
{{else}}
|
|
106
|
-
_No schema changes required._
|
|
107
|
-
{{/if}}
|
|
108
|
-
|
|
109
|
-
---
|
|
110
|
-
|
|
111
|
-
## Migration Strategy
|
|
112
|
-
|
|
113
|
-
### Approach
|
|
114
|
-
{{migrationStrategy}}
|
|
115
|
-
|
|
116
|
-
{{#if migrationPhases}}
|
|
117
|
-
### Phases
|
|
118
|
-
|
|
119
|
-
{{#each migrationPhases}}
|
|
120
|
-
1. **{{this.phase}}** ({{this.duration}})
|
|
121
|
-
- {{this.description}}
|
|
122
|
-
- Validation: {{this.validation}}
|
|
123
|
-
{{/each}}
|
|
124
|
-
{{/if}}
|
|
125
|
-
|
|
126
|
-
{{#if dataMigrationScripts}}
|
|
127
|
-
### Data Migration Scripts
|
|
128
|
-
|
|
129
|
-
```sql
|
|
130
|
-
{{dataMigrationScripts}}
|
|
131
|
-
```
|
|
132
|
-
{{/if}}
|
|
133
|
-
|
|
134
|
-
---
|
|
135
|
-
|
|
136
|
-
## Performance Impact
|
|
137
|
-
|
|
138
|
-
{{#if performanceMetrics}}
|
|
139
|
-
### Expected Impact
|
|
140
|
-
|
|
141
|
-
| Metric | Before | After | Acceptable? |
|
|
142
|
-
|--------|--------|-------|-------------|
|
|
143
|
-
{{#each performanceMetrics}}
|
|
144
|
-
| {{this.metric}} | {{this.before}} | {{this.after}} | {{this.acceptable}} |
|
|
145
|
-
{{/each}}
|
|
146
|
-
{{/if}}
|
|
147
|
-
|
|
148
|
-
{{#if indexes}}
|
|
149
|
-
### Indexing Strategy
|
|
150
|
-
|
|
151
|
-
{{#each indexes}}
|
|
152
|
-
- `{{this.name}}` on `{{this.table}}({{this.columns}})` - {{this.reason}}
|
|
153
|
-
{{/each}}
|
|
154
|
-
{{else}}
|
|
155
|
-
_No new indexes required._
|
|
156
|
-
{{/if}}
|
|
157
|
-
|
|
158
|
-
---
|
|
159
|
-
|
|
160
|
-
## Rollback Plan
|
|
161
|
-
|
|
162
|
-
### Rollback Strategy
|
|
163
|
-
{{rollbackPlan}}
|
|
164
|
-
|
|
165
|
-
{{#if rollbackScripts}}
|
|
166
|
-
### Rollback Scripts
|
|
167
|
-
|
|
168
|
-
```sql
|
|
169
|
-
{{rollbackScripts}}
|
|
170
|
-
```
|
|
171
|
-
{{/if}}
|
|
172
|
-
|
|
173
|
-
{{#if rollbackTriggers}}
|
|
174
|
-
### Rollback Triggers
|
|
175
|
-
|
|
176
|
-
{{#each rollbackTriggers}}
|
|
177
|
-
- **{{this.condition}}**: {{this.action}}
|
|
178
|
-
{{/each}}
|
|
179
|
-
{{/if}}
|
|
180
|
-
|
|
181
|
-
---
|
|
182
|
-
|
|
183
|
-
## Testing
|
|
184
|
-
|
|
185
|
-
{{#if preMigrationTests}}
|
|
186
|
-
### Pre-Migration Testing
|
|
187
|
-
{{#each preMigrationTests}}
|
|
188
|
-
- [ ] {{this}}
|
|
189
|
-
{{/each}}
|
|
190
|
-
{{/if}}
|
|
191
|
-
|
|
192
|
-
{{#if postMigrationValidation}}
|
|
193
|
-
### Post-Migration Validation
|
|
194
|
-
{{#each postMigrationValidation}}
|
|
195
|
-
- [ ] {{this}}
|
|
196
|
-
{{/each}}
|
|
197
|
-
{{/if}}
|
|
198
|
-
|
|
199
|
-
---
|
|
200
|
-
|
|
201
|
-
## Consequences
|
|
202
|
-
|
|
203
|
-
{{#if positiveConsequences}}
|
|
204
|
-
### Positive
|
|
205
|
-
{{#each positiveConsequences}}
|
|
206
|
-
- ✅ {{this}}
|
|
207
|
-
{{/each}}
|
|
208
|
-
{{/if}}
|
|
209
|
-
|
|
210
|
-
{{#if negativeConsequences}}
|
|
211
|
-
### Negative (Trade-offs)
|
|
212
|
-
{{#each negativeConsequences}}
|
|
213
|
-
- ⚠️ {{this}}
|
|
214
|
-
{{/each}}
|
|
215
|
-
{{else}}
|
|
216
|
-
_No significant trade-offs identified._
|
|
217
|
-
{{/if}}
|
|
218
|
-
|
|
219
|
-
---
|
|
220
|
-
|
|
221
|
-
## Related Decisions
|
|
222
|
-
|
|
223
|
-
{{#if relatedDBDRs}}
|
|
224
|
-
{{#each relatedDBDRs}}
|
|
225
|
-
- [DBDR {{this.number}}](./dbdr-{{padNumber this.number 3}}.md): {{this.title}}
|
|
226
|
-
{{/each}}
|
|
227
|
-
{{else}}
|
|
228
|
-
_No related decisions._
|
|
229
|
-
{{/if}}
|
|
230
|
-
|
|
231
|
-
{{#if relatedADRs}}
|
|
232
|
-
### Related ADRs
|
|
233
|
-
{{#each relatedADRs}}
|
|
234
|
-
- [ADR {{this.number}}](../adr/adr-{{padNumber this.number 3}}.md): {{this.title}}
|
|
235
|
-
{{/each}}
|
|
236
|
-
{{/if}}
|
|
237
|
-
|
|
238
|
-
---
|
|
239
|
-
|
|
240
|
-
**Generated by:** AIOS Template Engine v2.0
|
|
241
|
-
**Template Version:** dbdr-1.0
|
|
1
|
+
---
|
|
2
|
+
template_id: dbdr
|
|
3
|
+
template_name: Database Decision Record
|
|
4
|
+
version: 1.0
|
|
5
|
+
variables:
|
|
6
|
+
- name: number
|
|
7
|
+
type: number
|
|
8
|
+
required: true
|
|
9
|
+
auto: next_dbdr_number
|
|
10
|
+
- name: title
|
|
11
|
+
type: string
|
|
12
|
+
required: true
|
|
13
|
+
prompt: "Title of the database decision:"
|
|
14
|
+
- name: status
|
|
15
|
+
type: choice
|
|
16
|
+
required: true
|
|
17
|
+
choices: [Proposed, Approved, Implemented, Rolled Back]
|
|
18
|
+
default: Proposed
|
|
19
|
+
- name: dbType
|
|
20
|
+
type: choice
|
|
21
|
+
required: true
|
|
22
|
+
choices: [PostgreSQL, MySQL, MongoDB, SQLite, Supabase, Other]
|
|
23
|
+
prompt: "Which database?"
|
|
24
|
+
- name: owner
|
|
25
|
+
type: string
|
|
26
|
+
required: true
|
|
27
|
+
prompt: "Who is the decision owner?"
|
|
28
|
+
- name: context
|
|
29
|
+
type: text
|
|
30
|
+
required: true
|
|
31
|
+
prompt: "What is the context and data problem?"
|
|
32
|
+
- name: decision
|
|
33
|
+
type: text
|
|
34
|
+
required: true
|
|
35
|
+
prompt: "What is the decision being made?"
|
|
36
|
+
- name: migrationStrategy
|
|
37
|
+
type: text
|
|
38
|
+
required: true
|
|
39
|
+
prompt: "What is the migration strategy?"
|
|
40
|
+
- name: rollbackPlan
|
|
41
|
+
type: text
|
|
42
|
+
required: true
|
|
43
|
+
prompt: "What is the rollback plan?"
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
# DBDR {{padNumber number 3}}: {{title}}
|
|
47
|
+
|
|
48
|
+
**Status:** {{status}}
|
|
49
|
+
**Date:** {{formatDate now "YYYY-MM-DD"}}
|
|
50
|
+
**Owner:** {{owner}}
|
|
51
|
+
**Database:** {{dbType}}
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## Context
|
|
56
|
+
|
|
57
|
+
{{#if currentState}}
|
|
58
|
+
### Current State
|
|
59
|
+
{{currentState}}
|
|
60
|
+
{{/if}}
|
|
61
|
+
|
|
62
|
+
### Problem Statement
|
|
63
|
+
{{context}}
|
|
64
|
+
|
|
65
|
+
{{#if dataVolume}}
|
|
66
|
+
### Data Volume Considerations
|
|
67
|
+
- **Current Size:** {{dataVolume.current}}
|
|
68
|
+
- **Projected Growth:** {{dataVolume.projected}}
|
|
69
|
+
- **Retention Policy:** {{dataVolume.retention}}
|
|
70
|
+
{{/if}}
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## Decision
|
|
75
|
+
|
|
76
|
+
{{decision}}
|
|
77
|
+
|
|
78
|
+
{{#if rationale}}
|
|
79
|
+
### Rationale
|
|
80
|
+
{{rationale}}
|
|
81
|
+
{{/if}}
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## Schema Changes
|
|
86
|
+
|
|
87
|
+
{{#if schemaChanges}}
|
|
88
|
+
### Tables Affected
|
|
89
|
+
|
|
90
|
+
| Table | Change Type | Description |
|
|
91
|
+
|-------|-------------|-------------|
|
|
92
|
+
{{#each schemaChanges}}
|
|
93
|
+
| `{{this.table}}` | {{this.changeType}} | {{this.description}} |
|
|
94
|
+
{{/each}}
|
|
95
|
+
|
|
96
|
+
### SQL Migrations
|
|
97
|
+
|
|
98
|
+
```sql
|
|
99
|
+
{{#each schemaChanges}}
|
|
100
|
+
-- {{this.table}}: {{this.changeType}}
|
|
101
|
+
{{this.sql}}
|
|
102
|
+
|
|
103
|
+
{{/each}}
|
|
104
|
+
```
|
|
105
|
+
{{else}}
|
|
106
|
+
_No schema changes required._
|
|
107
|
+
{{/if}}
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
## Migration Strategy
|
|
112
|
+
|
|
113
|
+
### Approach
|
|
114
|
+
{{migrationStrategy}}
|
|
115
|
+
|
|
116
|
+
{{#if migrationPhases}}
|
|
117
|
+
### Phases
|
|
118
|
+
|
|
119
|
+
{{#each migrationPhases}}
|
|
120
|
+
1. **{{this.phase}}** ({{this.duration}})
|
|
121
|
+
- {{this.description}}
|
|
122
|
+
- Validation: {{this.validation}}
|
|
123
|
+
{{/each}}
|
|
124
|
+
{{/if}}
|
|
125
|
+
|
|
126
|
+
{{#if dataMigrationScripts}}
|
|
127
|
+
### Data Migration Scripts
|
|
128
|
+
|
|
129
|
+
```sql
|
|
130
|
+
{{dataMigrationScripts}}
|
|
131
|
+
```
|
|
132
|
+
{{/if}}
|
|
133
|
+
|
|
134
|
+
---
|
|
135
|
+
|
|
136
|
+
## Performance Impact
|
|
137
|
+
|
|
138
|
+
{{#if performanceMetrics}}
|
|
139
|
+
### Expected Impact
|
|
140
|
+
|
|
141
|
+
| Metric | Before | After | Acceptable? |
|
|
142
|
+
|--------|--------|-------|-------------|
|
|
143
|
+
{{#each performanceMetrics}}
|
|
144
|
+
| {{this.metric}} | {{this.before}} | {{this.after}} | {{this.acceptable}} |
|
|
145
|
+
{{/each}}
|
|
146
|
+
{{/if}}
|
|
147
|
+
|
|
148
|
+
{{#if indexes}}
|
|
149
|
+
### Indexing Strategy
|
|
150
|
+
|
|
151
|
+
{{#each indexes}}
|
|
152
|
+
- `{{this.name}}` on `{{this.table}}({{this.columns}})` - {{this.reason}}
|
|
153
|
+
{{/each}}
|
|
154
|
+
{{else}}
|
|
155
|
+
_No new indexes required._
|
|
156
|
+
{{/if}}
|
|
157
|
+
|
|
158
|
+
---
|
|
159
|
+
|
|
160
|
+
## Rollback Plan
|
|
161
|
+
|
|
162
|
+
### Rollback Strategy
|
|
163
|
+
{{rollbackPlan}}
|
|
164
|
+
|
|
165
|
+
{{#if rollbackScripts}}
|
|
166
|
+
### Rollback Scripts
|
|
167
|
+
|
|
168
|
+
```sql
|
|
169
|
+
{{rollbackScripts}}
|
|
170
|
+
```
|
|
171
|
+
{{/if}}
|
|
172
|
+
|
|
173
|
+
{{#if rollbackTriggers}}
|
|
174
|
+
### Rollback Triggers
|
|
175
|
+
|
|
176
|
+
{{#each rollbackTriggers}}
|
|
177
|
+
- **{{this.condition}}**: {{this.action}}
|
|
178
|
+
{{/each}}
|
|
179
|
+
{{/if}}
|
|
180
|
+
|
|
181
|
+
---
|
|
182
|
+
|
|
183
|
+
## Testing
|
|
184
|
+
|
|
185
|
+
{{#if preMigrationTests}}
|
|
186
|
+
### Pre-Migration Testing
|
|
187
|
+
{{#each preMigrationTests}}
|
|
188
|
+
- [ ] {{this}}
|
|
189
|
+
{{/each}}
|
|
190
|
+
{{/if}}
|
|
191
|
+
|
|
192
|
+
{{#if postMigrationValidation}}
|
|
193
|
+
### Post-Migration Validation
|
|
194
|
+
{{#each postMigrationValidation}}
|
|
195
|
+
- [ ] {{this}}
|
|
196
|
+
{{/each}}
|
|
197
|
+
{{/if}}
|
|
198
|
+
|
|
199
|
+
---
|
|
200
|
+
|
|
201
|
+
## Consequences
|
|
202
|
+
|
|
203
|
+
{{#if positiveConsequences}}
|
|
204
|
+
### Positive
|
|
205
|
+
{{#each positiveConsequences}}
|
|
206
|
+
- ✅ {{this}}
|
|
207
|
+
{{/each}}
|
|
208
|
+
{{/if}}
|
|
209
|
+
|
|
210
|
+
{{#if negativeConsequences}}
|
|
211
|
+
### Negative (Trade-offs)
|
|
212
|
+
{{#each negativeConsequences}}
|
|
213
|
+
- ⚠️ {{this}}
|
|
214
|
+
{{/each}}
|
|
215
|
+
{{else}}
|
|
216
|
+
_No significant trade-offs identified._
|
|
217
|
+
{{/if}}
|
|
218
|
+
|
|
219
|
+
---
|
|
220
|
+
|
|
221
|
+
## Related Decisions
|
|
222
|
+
|
|
223
|
+
{{#if relatedDBDRs}}
|
|
224
|
+
{{#each relatedDBDRs}}
|
|
225
|
+
- [DBDR {{this.number}}](./dbdr-{{padNumber this.number 3}}.md): {{this.title}}
|
|
226
|
+
{{/each}}
|
|
227
|
+
{{else}}
|
|
228
|
+
_No related decisions._
|
|
229
|
+
{{/if}}
|
|
230
|
+
|
|
231
|
+
{{#if relatedADRs}}
|
|
232
|
+
### Related ADRs
|
|
233
|
+
{{#each relatedADRs}}
|
|
234
|
+
- [ADR {{this.number}}](../adr/adr-{{padNumber this.number 3}}.md): {{this.title}}
|
|
235
|
+
{{/each}}
|
|
236
|
+
{{/if}}
|
|
237
|
+
|
|
238
|
+
---
|
|
239
|
+
|
|
240
|
+
**Generated by:** AIOS Template Engine v2.0
|
|
241
|
+
**Template Version:** dbdr-1.0
|
|
@@ -1,102 +1,102 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
-
"title": "ADR Template Variables",
|
|
4
|
-
"description": "Schema for Architecture Decision Record template variables",
|
|
5
|
-
"type": "object",
|
|
6
|
-
"required": ["number", "title", "status", "deciders", "context", "decision", "positiveConsequences"],
|
|
7
|
-
"properties": {
|
|
8
|
-
"number": {
|
|
9
|
-
"type": "integer",
|
|
10
|
-
"minimum": 1,
|
|
11
|
-
"description": "ADR number for ordering and reference"
|
|
12
|
-
},
|
|
13
|
-
"title": {
|
|
14
|
-
"type": "string",
|
|
15
|
-
"minLength": 5,
|
|
16
|
-
"maxLength": 100,
|
|
17
|
-
"description": "Short title describing the decision"
|
|
18
|
-
},
|
|
19
|
-
"status": {
|
|
20
|
-
"type": "string",
|
|
21
|
-
"enum": ["Proposed", "Accepted", "Deprecated", "Superseded"],
|
|
22
|
-
"description": "Current status of the decision"
|
|
23
|
-
},
|
|
24
|
-
"deciders": {
|
|
25
|
-
"type": "string",
|
|
26
|
-
"minLength": 1,
|
|
27
|
-
"description": "Names of people involved in the decision"
|
|
28
|
-
},
|
|
29
|
-
"context": {
|
|
30
|
-
"type": "string",
|
|
31
|
-
"minLength": 20,
|
|
32
|
-
"description": "Context and background that led to this decision"
|
|
33
|
-
},
|
|
34
|
-
"decision": {
|
|
35
|
-
"type": "string",
|
|
36
|
-
"minLength": 20,
|
|
37
|
-
"description": "The decision being made"
|
|
38
|
-
},
|
|
39
|
-
"positiveConsequences": {
|
|
40
|
-
"type": "array",
|
|
41
|
-
"minItems": 1,
|
|
42
|
-
"items": { "type": "string" },
|
|
43
|
-
"description": "Positive outcomes of the decision"
|
|
44
|
-
},
|
|
45
|
-
"negativeConsequences": {
|
|
46
|
-
"type": "array",
|
|
47
|
-
"items": { "type": "string" },
|
|
48
|
-
"description": "Negative outcomes or trade-offs"
|
|
49
|
-
},
|
|
50
|
-
"alternatives": {
|
|
51
|
-
"type": "array",
|
|
52
|
-
"items": {
|
|
53
|
-
"type": "object",
|
|
54
|
-
"required": ["name", "description"],
|
|
55
|
-
"properties": {
|
|
56
|
-
"name": {
|
|
57
|
-
"type": "string",
|
|
58
|
-
"description": "Alternative option name"
|
|
59
|
-
},
|
|
60
|
-
"description": {
|
|
61
|
-
"type": "string",
|
|
62
|
-
"description": "Description of the alternative"
|
|
63
|
-
},
|
|
64
|
-
"pros": {
|
|
65
|
-
"type": "string",
|
|
66
|
-
"description": "Advantages of this alternative"
|
|
67
|
-
},
|
|
68
|
-
"cons": {
|
|
69
|
-
"type": "string",
|
|
70
|
-
"description": "Disadvantages of this alternative"
|
|
71
|
-
},
|
|
72
|
-
"whyNot": {
|
|
73
|
-
"type": "string",
|
|
74
|
-
"description": "Why this alternative was not chosen"
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
},
|
|
78
|
-
"description": "Alternative options considered"
|
|
79
|
-
},
|
|
80
|
-
"relatedADRs": {
|
|
81
|
-
"type": "array",
|
|
82
|
-
"items": {
|
|
83
|
-
"type": "object",
|
|
84
|
-
"required": ["number", "title"],
|
|
85
|
-
"properties": {
|
|
86
|
-
"number": { "type": "integer" },
|
|
87
|
-
"title": { "type": "string" }
|
|
88
|
-
}
|
|
89
|
-
},
|
|
90
|
-
"description": "Related ADR references"
|
|
91
|
-
},
|
|
92
|
-
"references": {
|
|
93
|
-
"type": "array",
|
|
94
|
-
"items": { "type": "string" },
|
|
95
|
-
"description": "External references and links"
|
|
96
|
-
},
|
|
97
|
-
"supersededBy": {
|
|
98
|
-
"type": "integer",
|
|
99
|
-
"description": "ADR number that supersedes this one"
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"title": "ADR Template Variables",
|
|
4
|
+
"description": "Schema for Architecture Decision Record template variables",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"required": ["number", "title", "status", "deciders", "context", "decision", "positiveConsequences"],
|
|
7
|
+
"properties": {
|
|
8
|
+
"number": {
|
|
9
|
+
"type": "integer",
|
|
10
|
+
"minimum": 1,
|
|
11
|
+
"description": "ADR number for ordering and reference"
|
|
12
|
+
},
|
|
13
|
+
"title": {
|
|
14
|
+
"type": "string",
|
|
15
|
+
"minLength": 5,
|
|
16
|
+
"maxLength": 100,
|
|
17
|
+
"description": "Short title describing the decision"
|
|
18
|
+
},
|
|
19
|
+
"status": {
|
|
20
|
+
"type": "string",
|
|
21
|
+
"enum": ["Proposed", "Accepted", "Deprecated", "Superseded"],
|
|
22
|
+
"description": "Current status of the decision"
|
|
23
|
+
},
|
|
24
|
+
"deciders": {
|
|
25
|
+
"type": "string",
|
|
26
|
+
"minLength": 1,
|
|
27
|
+
"description": "Names of people involved in the decision"
|
|
28
|
+
},
|
|
29
|
+
"context": {
|
|
30
|
+
"type": "string",
|
|
31
|
+
"minLength": 20,
|
|
32
|
+
"description": "Context and background that led to this decision"
|
|
33
|
+
},
|
|
34
|
+
"decision": {
|
|
35
|
+
"type": "string",
|
|
36
|
+
"minLength": 20,
|
|
37
|
+
"description": "The decision being made"
|
|
38
|
+
},
|
|
39
|
+
"positiveConsequences": {
|
|
40
|
+
"type": "array",
|
|
41
|
+
"minItems": 1,
|
|
42
|
+
"items": { "type": "string" },
|
|
43
|
+
"description": "Positive outcomes of the decision"
|
|
44
|
+
},
|
|
45
|
+
"negativeConsequences": {
|
|
46
|
+
"type": "array",
|
|
47
|
+
"items": { "type": "string" },
|
|
48
|
+
"description": "Negative outcomes or trade-offs"
|
|
49
|
+
},
|
|
50
|
+
"alternatives": {
|
|
51
|
+
"type": "array",
|
|
52
|
+
"items": {
|
|
53
|
+
"type": "object",
|
|
54
|
+
"required": ["name", "description"],
|
|
55
|
+
"properties": {
|
|
56
|
+
"name": {
|
|
57
|
+
"type": "string",
|
|
58
|
+
"description": "Alternative option name"
|
|
59
|
+
},
|
|
60
|
+
"description": {
|
|
61
|
+
"type": "string",
|
|
62
|
+
"description": "Description of the alternative"
|
|
63
|
+
},
|
|
64
|
+
"pros": {
|
|
65
|
+
"type": "string",
|
|
66
|
+
"description": "Advantages of this alternative"
|
|
67
|
+
},
|
|
68
|
+
"cons": {
|
|
69
|
+
"type": "string",
|
|
70
|
+
"description": "Disadvantages of this alternative"
|
|
71
|
+
},
|
|
72
|
+
"whyNot": {
|
|
73
|
+
"type": "string",
|
|
74
|
+
"description": "Why this alternative was not chosen"
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
"description": "Alternative options considered"
|
|
79
|
+
},
|
|
80
|
+
"relatedADRs": {
|
|
81
|
+
"type": "array",
|
|
82
|
+
"items": {
|
|
83
|
+
"type": "object",
|
|
84
|
+
"required": ["number", "title"],
|
|
85
|
+
"properties": {
|
|
86
|
+
"number": { "type": "integer" },
|
|
87
|
+
"title": { "type": "string" }
|
|
88
|
+
}
|
|
89
|
+
},
|
|
90
|
+
"description": "Related ADR references"
|
|
91
|
+
},
|
|
92
|
+
"references": {
|
|
93
|
+
"type": "array",
|
|
94
|
+
"items": { "type": "string" },
|
|
95
|
+
"description": "External references and links"
|
|
96
|
+
},
|
|
97
|
+
"supersededBy": {
|
|
98
|
+
"type": "integer",
|
|
99
|
+
"description": "ADR number that supersedes this one"
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|