aios-core 2.2.2 → 3.0.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.
Files changed (107) hide show
  1. package/.aios-core/.session/current-session.json +14 -14
  2. package/.aios-core/cli/commands/migrate/validate.js +1 -1
  3. package/.aios-core/core/docs/session-update-pattern.md +17 -10
  4. package/.aios-core/core/elicitation/elicitation-engine.js +11 -6
  5. package/.aios-core/core/elicitation/session-manager.js +2 -1
  6. package/.aios-core/core/registry/registry-schema.json +166 -166
  7. package/.aios-core/core/registry/service-registry.json +6585 -6585
  8. package/.aios-core/core-config.yaml +66 -1
  9. package/.aios-core/data/agent-config-requirements.yaml +5 -5
  10. package/.aios-core/development/agents/devops.md +12 -0
  11. package/.aios-core/development/scripts/squad/README.md +112 -0
  12. package/.aios-core/development/scripts/squad/index.js +41 -0
  13. package/.aios-core/development/scripts/squad/squad-loader.js +359 -0
  14. package/.aios-core/development/scripts/squad/squad-validator.js +685 -0
  15. package/.aios-core/development/tasks/add-mcp.md +11 -5
  16. package/.aios-core/development/tasks/github-devops-github-pr-automation.md +240 -3
  17. package/.aios-core/development/tasks/search-mcp.md +309 -0
  18. package/.aios-core/development/tasks/setup-mcp-docker.md +11 -8
  19. package/.aios-core/development/tasks/squad-creator-validate.md +151 -0
  20. package/.aios-core/docs/standards/AGENT-PERSONALIZATION-STANDARD-V1.md +3 -3
  21. package/.aios-core/index.d.ts +7 -7
  22. package/.aios-core/index.js +1 -1
  23. package/.aios-core/infrastructure/scripts/batch-creator.js +1 -1
  24. package/.aios-core/infrastructure/scripts/component-generator.js +1 -1
  25. package/.aios-core/infrastructure/templates/coderabbit.yaml.template +279 -279
  26. package/.aios-core/infrastructure/templates/core-config/core-config-greenfield.tmpl.yaml +41 -0
  27. package/.aios-core/infrastructure/templates/github-workflows/ci.yml.template +169 -169
  28. package/.aios-core/infrastructure/templates/github-workflows/pr-automation.yml.template +330 -330
  29. package/.aios-core/infrastructure/templates/github-workflows/release.yml.template +196 -196
  30. package/.aios-core/infrastructure/templates/gitignore/gitignore-aios-base.tmpl +63 -63
  31. package/.aios-core/infrastructure/templates/gitignore/gitignore-brownfield-merge.tmpl +18 -18
  32. package/.aios-core/infrastructure/templates/gitignore/gitignore-node.tmpl +85 -85
  33. package/.aios-core/infrastructure/templates/gitignore/gitignore-python.tmpl +145 -145
  34. package/.aios-core/infrastructure/tests/utilities-audit-results.json +500 -500
  35. package/.aios-core/infrastructure/tools/README.md +1 -1
  36. package/.aios-core/install-manifest.yaml +4 -1
  37. package/.aios-core/manifests/schema/manifest-schema.json +190 -190
  38. package/.aios-core/manifests/workers.csv +203 -203
  39. package/.aios-core/package.json +102 -102
  40. package/.aios-core/product/templates/activation-instructions-template.md +7 -7
  41. package/.aios-core/product/templates/adr.hbs +125 -125
  42. package/.aios-core/product/templates/component-react-tmpl.tsx +98 -98
  43. package/.aios-core/product/templates/dbdr.hbs +241 -241
  44. package/.aios-core/product/templates/engine/schemas/adr.schema.json +102 -102
  45. package/.aios-core/product/templates/engine/schemas/dbdr.schema.json +205 -205
  46. package/.aios-core/product/templates/engine/schemas/epic.schema.json +175 -175
  47. package/.aios-core/product/templates/engine/schemas/pmdr.schema.json +175 -175
  48. package/.aios-core/product/templates/engine/schemas/prd-v2.schema.json +300 -300
  49. package/.aios-core/product/templates/engine/schemas/prd.schema.json +152 -152
  50. package/.aios-core/product/templates/engine/schemas/story.schema.json +222 -222
  51. package/.aios-core/product/templates/engine/schemas/task.schema.json +154 -154
  52. package/.aios-core/product/templates/epic.hbs +212 -212
  53. package/.aios-core/product/templates/eslintrc-security.json +32 -32
  54. package/.aios-core/product/templates/github-actions-cd.yml +212 -212
  55. package/.aios-core/product/templates/github-actions-ci.yml +172 -172
  56. package/.aios-core/product/templates/pmdr.hbs +186 -186
  57. package/.aios-core/product/templates/prd-v2.0.hbs +216 -216
  58. package/.aios-core/product/templates/prd.hbs +201 -201
  59. package/.aios-core/product/templates/shock-report-tmpl.html +502 -502
  60. package/.aios-core/product/templates/story.hbs +263 -263
  61. package/.aios-core/product/templates/task.hbs +170 -170
  62. package/.aios-core/product/templates/tmpl-comment-on-examples.sql +158 -158
  63. package/.aios-core/product/templates/tmpl-migration-script.sql +91 -91
  64. package/.aios-core/product/templates/tmpl-rls-granular-policies.sql +104 -104
  65. package/.aios-core/product/templates/tmpl-rls-kiss-policy.sql +10 -10
  66. package/.aios-core/product/templates/tmpl-rls-roles.sql +135 -135
  67. package/.aios-core/product/templates/tmpl-rls-simple.sql +77 -77
  68. package/.aios-core/product/templates/tmpl-rls-tenant.sql +152 -152
  69. package/.aios-core/product/templates/tmpl-rollback-script.sql +77 -77
  70. package/.aios-core/product/templates/tmpl-seed-data.sql +140 -140
  71. package/.aios-core/product/templates/tmpl-smoke-test.sql +16 -16
  72. package/.aios-core/product/templates/tmpl-staging-copy-merge.sql +139 -139
  73. package/.aios-core/product/templates/tmpl-stored-proc.sql +140 -140
  74. package/.aios-core/product/templates/tmpl-trigger.sql +152 -152
  75. package/.aios-core/product/templates/tmpl-view-materialized.sql +133 -133
  76. package/.aios-core/product/templates/tmpl-view.sql +177 -177
  77. package/.aios-core/product/templates/token-exports-css-tmpl.css +240 -240
  78. package/.aios-core/quality/schemas/quality-metrics.schema.json +233 -233
  79. package/.aios-core/schemas/squad-schema.json +185 -0
  80. package/.aios-core/scripts/README.md +90 -322
  81. package/.aios-core/scripts/migrate-framework-docs.sh +300 -300
  82. package/.claude/rules/mcp-usage.md +116 -100
  83. package/LICENSE +48 -48
  84. package/README.md +3 -4
  85. package/bin/aios.js +2 -1
  86. package/package.json +1 -3
  87. package/packages/installer/package.json +39 -39
  88. package/templates/squad/LICENSE +21 -21
  89. package/templates/squad/README.md +37 -37
  90. package/templates/squad/agents/example-agent.yaml +36 -36
  91. package/templates/squad/package.json +19 -19
  92. package/templates/squad/squad.yaml +25 -25
  93. package/templates/squad/tasks/example-task.yaml +46 -46
  94. package/templates/squad/templates/example-template.md +24 -24
  95. package/templates/squad/tests/example-agent.test.js +53 -53
  96. package/templates/squad/workflows/example-workflow.yaml +54 -54
  97. package/tools/diagnose-npx-issue.ps1 +96 -96
  98. package/tools/quick-diagnose.cmd +85 -85
  99. package/tools/quick-diagnose.ps1 +117 -117
  100. package/.aios-core/core/data/agent-config-requirements.yaml +0 -368
  101. package/.aios-core/core/data/aios-kb.md +0 -924
  102. package/.aios-core/core/data/workflow-patterns.yaml +0 -267
  103. package/.aios-core/product/templates/1mcp-config.yaml +0 -225
  104. package/.aios-core/scripts/context-detector.js +0 -226
  105. package/.aios-core/scripts/elicitation-engine.js +0 -385
  106. package/.aios-core/scripts/elicitation-session-manager.js +0 -300
  107. package/.claude/CLAUDE.md +0 -221
@@ -1,98 +1,98 @@
1
- // {{ComponentName}}.tsx
2
- // Generated by Atlas (Design System Builder)
3
- // Atomic level: {{atomic_level}}
4
- // Utility-first Tailwind, zero hardcoded values
5
-
6
- import * as React from 'react';
7
- import { Slot } from '@radix-ui/react-slot';
8
- import { cva, type VariantProps } from 'class-variance-authority';
9
- import { cn } from '{{UtilityImportPath}}';
10
- {{SpinnerImport}}
11
-
12
- /**
13
- * Variant catalogue generated from consolidated tokens.
14
- * Extend with additional groups (state, density, alignment) as needed.
15
- */
16
- export const {{componentName}}Variants = cva(
17
- '{{baseClasses}}',
18
- {
19
- variants: {
20
- variant: {
21
- {{VariantDefinitions}}
22
- },
23
- size: {
24
- {{SizeDefinitions}}
25
- }{{AdditionalVariantGroups}}
26
- },
27
- compoundVariants: [
28
- {{CompoundVariants}}
29
- ],
30
- defaultVariants: {
31
- variant: '{{DefaultVariant}}',
32
- size: '{{DefaultSize}}'{{DefaultVariantOverrides}}
33
- }
34
- }
35
- );
36
-
37
- export interface {{ComponentName}}Props
38
- extends React.{{ElementAttributes}}<{{ElementTag}}>,
39
- VariantProps<typeof {{componentName}}Variants> {
40
- /** Render as child element instead of the default tag */
41
- asChild?: boolean;
42
- /** Display loading UI and disable interactions */
43
- isLoading?: boolean;
44
- /** Optional custom loading indicator */
45
- loadingIcon?: React.ReactNode;
46
- {{AdditionalProps}}
47
- }
48
-
49
- /**
50
- * {{ComponentDescription}}
51
- *
52
- * @example
53
- * ```tsx
54
- * <{{ComponentName}} variant="{{DefaultVariant}}" size="{{DefaultSize}}">
55
- * {{ExampleContent}}
56
- * </{{ComponentName}}>
57
- * ```
58
- */
59
- export const {{ComponentName}} = React.forwardRef<{{ElementTag}}, {{ComponentName}}Props>(
60
- (
61
- {
62
- asChild = false,
63
- className,
64
- variant = '{{DefaultVariant}}',
65
- size = '{{DefaultSize}}',
66
- isLoading = false,
67
- loadingIcon,
68
- children,
69
- ...props
70
- },
71
- ref
72
- ) => {
73
- const Comp = asChild ? Slot : '{{HtmlElement}}';
74
-
75
- return (
76
- <Comp
77
- ref={ref}
78
- className={cn(
79
- {{componentName}}Variants({ variant, size }),
80
- isLoading && 'pointer-events-none opacity-70',
81
- className
82
- )}
83
- data-state={isLoading ? 'loading' : props['data-state']}
84
- {...props}
85
- >
86
- {isLoading &&
87
- (loadingIcon ?? (
88
- <{{SpinnerComponent}} className="mr-2 h-4 w-4 animate-spin" aria-hidden="true" />
89
- ))}
90
- <span className="inline-flex items-center gap-1">{{ChildWrapper}}</span>
91
- </Comp>
92
- );
93
- }
94
- );
95
-
96
- {{ComponentName}}.displayName = '{{ComponentName}}';
97
-
98
- export type {{ComponentName}}Variant = VariantProps<typeof {{componentName}}Variants>;
1
+ // {{ComponentName}}.tsx
2
+ // Generated by Atlas (Design System Builder)
3
+ // Atomic level: {{atomic_level}}
4
+ // Utility-first Tailwind, zero hardcoded values
5
+
6
+ import * as React from 'react';
7
+ import { Slot } from '@radix-ui/react-slot';
8
+ import { cva, type VariantProps } from 'class-variance-authority';
9
+ import { cn } from '{{UtilityImportPath}}';
10
+ {{SpinnerImport}}
11
+
12
+ /**
13
+ * Variant catalogue generated from consolidated tokens.
14
+ * Extend with additional groups (state, density, alignment) as needed.
15
+ */
16
+ export const {{componentName}}Variants = cva(
17
+ '{{baseClasses}}',
18
+ {
19
+ variants: {
20
+ variant: {
21
+ {{VariantDefinitions}}
22
+ },
23
+ size: {
24
+ {{SizeDefinitions}}
25
+ }{{AdditionalVariantGroups}}
26
+ },
27
+ compoundVariants: [
28
+ {{CompoundVariants}}
29
+ ],
30
+ defaultVariants: {
31
+ variant: '{{DefaultVariant}}',
32
+ size: '{{DefaultSize}}'{{DefaultVariantOverrides}}
33
+ }
34
+ }
35
+ );
36
+
37
+ export interface {{ComponentName}}Props
38
+ extends React.{{ElementAttributes}}<{{ElementTag}}>,
39
+ VariantProps<typeof {{componentName}}Variants> {
40
+ /** Render as child element instead of the default tag */
41
+ asChild?: boolean;
42
+ /** Display loading UI and disable interactions */
43
+ isLoading?: boolean;
44
+ /** Optional custom loading indicator */
45
+ loadingIcon?: React.ReactNode;
46
+ {{AdditionalProps}}
47
+ }
48
+
49
+ /**
50
+ * {{ComponentDescription}}
51
+ *
52
+ * @example
53
+ * ```tsx
54
+ * <{{ComponentName}} variant="{{DefaultVariant}}" size="{{DefaultSize}}">
55
+ * {{ExampleContent}}
56
+ * </{{ComponentName}}>
57
+ * ```
58
+ */
59
+ export const {{ComponentName}} = React.forwardRef<{{ElementTag}}, {{ComponentName}}Props>(
60
+ (
61
+ {
62
+ asChild = false,
63
+ className,
64
+ variant = '{{DefaultVariant}}',
65
+ size = '{{DefaultSize}}',
66
+ isLoading = false,
67
+ loadingIcon,
68
+ children,
69
+ ...props
70
+ },
71
+ ref
72
+ ) => {
73
+ const Comp = asChild ? Slot : '{{HtmlElement}}';
74
+
75
+ return (
76
+ <Comp
77
+ ref={ref}
78
+ className={cn(
79
+ {{componentName}}Variants({ variant, size }),
80
+ isLoading && 'pointer-events-none opacity-70',
81
+ className
82
+ )}
83
+ data-state={isLoading ? 'loading' : props['data-state']}
84
+ {...props}
85
+ >
86
+ {isLoading &&
87
+ (loadingIcon ?? (
88
+ <{{SpinnerComponent}} className="mr-2 h-4 w-4 animate-spin" aria-hidden="true" />
89
+ ))}
90
+ <span className="inline-flex items-center gap-1">{{ChildWrapper}}</span>
91
+ </Comp>
92
+ );
93
+ }
94
+ );
95
+
96
+ {{ComponentName}}.displayName = '{{ComponentName}}';
97
+
98
+ export type {{ComponentName}}Variant = VariantProps<typeof {{componentName}}Variants>;
@@ -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