aios-core 4.0.2 → 4.0.4

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 (145) hide show
  1. package/.aios-core/.session/current-session.json +14 -0
  2. package/.aios-core/core/registry/registry-schema.json +166 -166
  3. package/.aios-core/core/registry/service-registry.json +6585 -6585
  4. package/.aios-core/data/registry-update-log.jsonl +113 -0
  5. package/.aios-core/development/scripts/approval-workflow.js +642 -642
  6. package/.aios-core/development/scripts/backup-manager.js +606 -606
  7. package/.aios-core/development/scripts/branch-manager.js +389 -389
  8. package/.aios-core/development/scripts/code-quality-improver.js +1311 -1311
  9. package/.aios-core/development/scripts/commit-message-generator.js +849 -849
  10. package/.aios-core/development/scripts/conflict-resolver.js +674 -674
  11. package/.aios-core/development/scripts/dependency-analyzer.js +637 -637
  12. package/.aios-core/development/scripts/diff-generator.js +351 -351
  13. package/.aios-core/development/scripts/elicitation-engine.js +384 -384
  14. package/.aios-core/development/scripts/elicitation-session-manager.js +299 -299
  15. package/.aios-core/development/scripts/git-wrapper.js +461 -461
  16. package/.aios-core/development/scripts/manifest-preview.js +244 -244
  17. package/.aios-core/development/scripts/metrics-tracker.js +775 -775
  18. package/.aios-core/development/scripts/modification-validator.js +554 -554
  19. package/.aios-core/development/scripts/pattern-learner.js +1224 -1224
  20. package/.aios-core/development/scripts/performance-analyzer.js +757 -757
  21. package/.aios-core/development/scripts/refactoring-suggester.js +1138 -1138
  22. package/.aios-core/development/scripts/rollback-handler.js +530 -530
  23. package/.aios-core/development/scripts/security-checker.js +358 -358
  24. package/.aios-core/development/scripts/template-engine.js +239 -239
  25. package/.aios-core/development/scripts/template-validator.js +278 -278
  26. package/.aios-core/development/scripts/test-generator.js +843 -843
  27. package/.aios-core/development/scripts/transaction-manager.js +589 -589
  28. package/.aios-core/development/scripts/usage-tracker.js +673 -673
  29. package/.aios-core/development/scripts/validate-filenames.js +226 -226
  30. package/.aios-core/development/scripts/version-tracker.js +526 -526
  31. package/.aios-core/development/scripts/yaml-validator.js +396 -396
  32. package/.aios-core/development/templates/service-template/README.md.hbs +158 -158
  33. package/.aios-core/development/templates/service-template/__tests__/index.test.ts.hbs +237 -237
  34. package/.aios-core/development/templates/service-template/client.ts.hbs +403 -403
  35. package/.aios-core/development/templates/service-template/errors.ts.hbs +182 -182
  36. package/.aios-core/development/templates/service-template/index.ts.hbs +120 -120
  37. package/.aios-core/development/templates/service-template/package.json.hbs +87 -87
  38. package/.aios-core/development/templates/service-template/types.ts.hbs +145 -145
  39. package/.aios-core/development/templates/squad-template/LICENSE +21 -21
  40. package/.aios-core/docs/SHARD-TRANSLATION-GUIDE.md +335 -0
  41. package/.aios-core/docs/component-creation-guide.md +458 -0
  42. package/.aios-core/docs/session-update-pattern.md +307 -0
  43. package/.aios-core/docs/standards/AIOS-FRAMEWORK-MASTER.md +1963 -0
  44. package/.aios-core/docs/standards/AIOS-LIVRO-DE-OURO-V2.1-SUMMARY.md +1190 -0
  45. package/.aios-core/docs/standards/AIOS-LIVRO-DE-OURO-V2.1.md +439 -0
  46. package/.aios-core/docs/standards/AIOS-LIVRO-DE-OURO.md +5398 -0
  47. package/.aios-core/docs/standards/V3-ARCHITECTURAL-DECISIONS.md +523 -0
  48. package/.aios-core/docs/template-syntax.md +267 -0
  49. package/.aios-core/docs/troubleshooting-guide.md +625 -0
  50. package/.aios-core/infrastructure/templates/aios-sync.yaml.template +193 -193
  51. package/.aios-core/infrastructure/templates/coderabbit.yaml.template +279 -279
  52. package/.aios-core/infrastructure/templates/github-workflows/ci.yml.template +169 -169
  53. package/.aios-core/infrastructure/templates/github-workflows/pr-automation.yml.template +330 -330
  54. package/.aios-core/infrastructure/templates/github-workflows/release.yml.template +196 -196
  55. package/.aios-core/infrastructure/templates/gitignore/gitignore-aios-base.tmpl +63 -63
  56. package/.aios-core/infrastructure/templates/gitignore/gitignore-brownfield-merge.tmpl +18 -18
  57. package/.aios-core/infrastructure/templates/gitignore/gitignore-node.tmpl +85 -85
  58. package/.aios-core/infrastructure/templates/gitignore/gitignore-python.tmpl +145 -145
  59. package/.aios-core/infrastructure/tests/utilities-audit-results.json +501 -0
  60. package/.aios-core/install-manifest.yaml +97 -97
  61. package/.aios-core/local-config.yaml.template +68 -68
  62. package/.aios-core/manifests/agents.csv +1 -0
  63. package/.aios-core/manifests/schema/manifest-schema.json +190 -190
  64. package/.aios-core/manifests/tasks.csv +121 -0
  65. package/.aios-core/manifests/workers.csv +204 -0
  66. package/.aios-core/monitor/hooks/lib/__init__.py +1 -1
  67. package/.aios-core/monitor/hooks/lib/enrich.py +58 -58
  68. package/.aios-core/monitor/hooks/lib/send_event.py +47 -47
  69. package/.aios-core/monitor/hooks/notification.py +29 -29
  70. package/.aios-core/monitor/hooks/post_tool_use.py +45 -45
  71. package/.aios-core/monitor/hooks/pre_compact.py +29 -29
  72. package/.aios-core/monitor/hooks/pre_tool_use.py +40 -40
  73. package/.aios-core/monitor/hooks/stop.py +29 -29
  74. package/.aios-core/monitor/hooks/subagent_stop.py +29 -29
  75. package/.aios-core/monitor/hooks/user_prompt_submit.py +38 -38
  76. package/.aios-core/product/templates/adr.hbs +125 -125
  77. package/.aios-core/product/templates/component-react-tmpl.tsx +98 -98
  78. package/.aios-core/product/templates/dbdr.hbs +241 -241
  79. package/.aios-core/product/templates/engine/schemas/adr.schema.json +102 -102
  80. package/.aios-core/product/templates/engine/schemas/dbdr.schema.json +205 -205
  81. package/.aios-core/product/templates/engine/schemas/epic.schema.json +175 -175
  82. package/.aios-core/product/templates/engine/schemas/pmdr.schema.json +175 -175
  83. package/.aios-core/product/templates/engine/schemas/prd-v2.schema.json +300 -300
  84. package/.aios-core/product/templates/engine/schemas/prd.schema.json +152 -152
  85. package/.aios-core/product/templates/engine/schemas/story.schema.json +222 -222
  86. package/.aios-core/product/templates/engine/schemas/task.schema.json +154 -154
  87. package/.aios-core/product/templates/epic.hbs +212 -212
  88. package/.aios-core/product/templates/eslintrc-security.json +32 -32
  89. package/.aios-core/product/templates/github-actions-cd.yml +212 -212
  90. package/.aios-core/product/templates/github-actions-ci.yml +172 -172
  91. package/.aios-core/product/templates/pmdr.hbs +186 -186
  92. package/.aios-core/product/templates/prd-v2.0.hbs +216 -216
  93. package/.aios-core/product/templates/prd.hbs +201 -201
  94. package/.aios-core/product/templates/shock-report-tmpl.html +502 -502
  95. package/.aios-core/product/templates/story.hbs +263 -263
  96. package/.aios-core/product/templates/task.hbs +170 -170
  97. package/.aios-core/product/templates/tmpl-comment-on-examples.sql +158 -158
  98. package/.aios-core/product/templates/tmpl-migration-script.sql +91 -91
  99. package/.aios-core/product/templates/tmpl-rls-granular-policies.sql +104 -104
  100. package/.aios-core/product/templates/tmpl-rls-kiss-policy.sql +10 -10
  101. package/.aios-core/product/templates/tmpl-rls-roles.sql +135 -135
  102. package/.aios-core/product/templates/tmpl-rls-simple.sql +77 -77
  103. package/.aios-core/product/templates/tmpl-rls-tenant.sql +152 -152
  104. package/.aios-core/product/templates/tmpl-rollback-script.sql +77 -77
  105. package/.aios-core/product/templates/tmpl-seed-data.sql +140 -140
  106. package/.aios-core/product/templates/tmpl-smoke-test.sql +16 -16
  107. package/.aios-core/product/templates/tmpl-staging-copy-merge.sql +139 -139
  108. package/.aios-core/product/templates/tmpl-stored-proc.sql +140 -140
  109. package/.aios-core/product/templates/tmpl-trigger.sql +152 -152
  110. package/.aios-core/product/templates/tmpl-view-materialized.sql +133 -133
  111. package/.aios-core/product/templates/tmpl-view.sql +177 -177
  112. package/.aios-core/product/templates/token-exports-css-tmpl.css +240 -240
  113. package/.aios-core/quality/schemas/quality-metrics.schema.json +233 -233
  114. package/.aios-core/scripts/migrate-framework-docs.sh +300 -300
  115. package/.aios-core/scripts/pm.sh +0 -0
  116. package/.claude/hooks/enforce-architecture-first.py +196 -0
  117. package/.claude/hooks/install-hooks.sh +41 -0
  118. package/.claude/hooks/mind-clone-governance.py +192 -0
  119. package/.claude/hooks/pre-commit-mmos-guard.sh +99 -0
  120. package/.claude/hooks/pre-commit-version-check.sh +156 -0
  121. package/.claude/hooks/read-protection.py +151 -0
  122. package/.claude/hooks/slug-validation.py +176 -0
  123. package/.claude/hooks/sql-governance.py +182 -0
  124. package/.claude/hooks/write-path-validation.py +194 -0
  125. package/.claude/rules/agent-authority.md +105 -0
  126. package/.claude/rules/coderabbit-integration.md +93 -0
  127. package/.claude/rules/ids-principles.md +112 -0
  128. package/.claude/rules/story-lifecycle.md +139 -0
  129. package/.claude/rules/workflow-execution.md +150 -0
  130. package/LICENSE +48 -48
  131. package/README.md +30 -7
  132. package/bin/aios-minimal.js +0 -0
  133. package/bin/aios.js +15 -15
  134. package/package.json +2 -4
  135. package/packages/aios-install/bin/aios-install.js +0 -0
  136. package/packages/aios-install/bin/edmcp.js +0 -0
  137. package/packages/aios-pro-cli/bin/aios-pro.js +0 -0
  138. package/scripts/check-markdown-links.py +352 -352
  139. package/scripts/dashboard-parallel-dev.sh +0 -0
  140. package/scripts/dashboard-parallel-phase3.sh +0 -0
  141. package/scripts/dashboard-parallel-phase4.sh +0 -0
  142. package/scripts/glue/README.md +355 -0
  143. package/scripts/glue/compose-agent-prompt.cjs +362 -0
  144. package/scripts/install-monitor-hooks.sh +0 -0
  145. package/.aios-core/lib/build.json +0 -1
@@ -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