aios-core 2.2.2 → 2.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/.aios-core/.session/current-session.json +14 -14
- package/.aios-core/cli/commands/migrate/validate.js +1 -1
- package/.aios-core/core/docs/session-update-pattern.md +17 -10
- package/.aios-core/core/elicitation/elicitation-engine.js +11 -6
- package/.aios-core/core/elicitation/session-manager.js +2 -1
- package/.aios-core/core/registry/registry-schema.json +166 -166
- package/.aios-core/core/registry/service-registry.json +6585 -6585
- package/.aios-core/core-config.yaml +12 -1
- package/.aios-core/data/agent-config-requirements.yaml +5 -5
- package/.aios-core/development/agents/devops.md +12 -0
- package/.aios-core/development/scripts/squad/README.md +112 -0
- package/.aios-core/development/scripts/squad/index.js +41 -0
- package/.aios-core/development/scripts/squad/squad-loader.js +359 -0
- package/.aios-core/development/scripts/squad/squad-validator.js +685 -0
- package/.aios-core/development/tasks/add-mcp.md +11 -5
- package/.aios-core/development/tasks/search-mcp.md +309 -0
- package/.aios-core/development/tasks/setup-mcp-docker.md +11 -8
- package/.aios-core/development/tasks/squad-creator-validate.md +151 -0
- package/.aios-core/docs/standards/AGENT-PERSONALIZATION-STANDARD-V1.md +3 -3
- package/.aios-core/index.d.ts +7 -7
- package/.aios-core/index.js +1 -1
- package/.aios-core/infrastructure/scripts/batch-creator.js +1 -1
- package/.aios-core/infrastructure/scripts/component-generator.js +1 -1
- 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 +500 -500
- package/.aios-core/infrastructure/tools/README.md +1 -1
- package/.aios-core/install-manifest.yaml +4 -1
- package/.aios-core/manifests/schema/manifest-schema.json +190 -190
- package/.aios-core/manifests/workers.csv +203 -203
- package/.aios-core/package.json +102 -102
- package/.aios-core/product/templates/activation-instructions-template.md +7 -7
- 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/schemas/squad-schema.json +185 -0
- package/.aios-core/scripts/README.md +90 -322
- package/.aios-core/scripts/migrate-framework-docs.sh +300 -300
- package/.claude/rules/mcp-usage.md +116 -100
- package/LICENSE +48 -48
- package/README.md +3 -4
- package/bin/aios.js +2 -1
- package/package.json +1 -3
- package/packages/installer/package.json +39 -39
- package/templates/squad/LICENSE +21 -21
- package/templates/squad/README.md +37 -37
- package/templates/squad/agents/example-agent.yaml +36 -36
- package/templates/squad/package.json +19 -19
- package/templates/squad/squad.yaml +25 -25
- package/templates/squad/tasks/example-task.yaml +46 -46
- package/templates/squad/templates/example-template.md +24 -24
- package/templates/squad/tests/example-agent.test.js +53 -53
- package/templates/squad/workflows/example-workflow.yaml +54 -54
- package/tools/diagnose-npx-issue.ps1 +96 -96
- package/tools/quick-diagnose.cmd +85 -85
- package/tools/quick-diagnose.ps1 +117 -117
- package/.aios-core/core/data/agent-config-requirements.yaml +0 -368
- package/.aios-core/core/data/aios-kb.md +0 -924
- package/.aios-core/core/data/workflow-patterns.yaml +0 -267
- package/.aios-core/product/templates/1mcp-config.yaml +0 -225
- package/.aios-core/scripts/context-detector.js +0 -226
- package/.aios-core/scripts/elicitation-engine.js +0 -385
- package/.aios-core/scripts/elicitation-session-manager.js +0 -300
- package/.claude/CLAUDE.md +0 -221
|
@@ -1,300 +1,300 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
-
"title": "PRD Template Variables v2.0",
|
|
4
|
-
"description": "Schema for Product Requirements Document template variables with conditional validation",
|
|
5
|
-
"type": "object",
|
|
6
|
-
"required": [
|
|
7
|
-
"projectName",
|
|
8
|
-
"productName",
|
|
9
|
-
"author",
|
|
10
|
-
"problemStatement",
|
|
11
|
-
"goals",
|
|
12
|
-
"userStories",
|
|
13
|
-
"functionalRequirements",
|
|
14
|
-
"nonFunctionalRequirements",
|
|
15
|
-
"successMetrics",
|
|
16
|
-
"milestones",
|
|
17
|
-
"risks"
|
|
18
|
-
],
|
|
19
|
-
"properties": {
|
|
20
|
-
"projectName": {
|
|
21
|
-
"type": "string",
|
|
22
|
-
"minLength": 1,
|
|
23
|
-
"description": "Name of the project"
|
|
24
|
-
},
|
|
25
|
-
"productName": {
|
|
26
|
-
"type": "string",
|
|
27
|
-
"minLength": 1,
|
|
28
|
-
"description": "Name of the product"
|
|
29
|
-
},
|
|
30
|
-
"version": {
|
|
31
|
-
"type": "string",
|
|
32
|
-
"pattern": "^\\d+\\.\\d+\\.\\d+$",
|
|
33
|
-
"default": "1.0.0",
|
|
34
|
-
"description": "Document version in semver format"
|
|
35
|
-
},
|
|
36
|
-
"author": {
|
|
37
|
-
"type": "string",
|
|
38
|
-
"minLength": 1,
|
|
39
|
-
"description": "Document author"
|
|
40
|
-
},
|
|
41
|
-
"problemStatement": {
|
|
42
|
-
"type": "string",
|
|
43
|
-
"minLength": 50,
|
|
44
|
-
"description": "Description of the problem being solved (minimum 50 characters)"
|
|
45
|
-
},
|
|
46
|
-
"goals": {
|
|
47
|
-
"type": "array",
|
|
48
|
-
"minItems": 1,
|
|
49
|
-
"items": {
|
|
50
|
-
"type": "string",
|
|
51
|
-
"minLength": 1
|
|
52
|
-
},
|
|
53
|
-
"description": "Product/feature goals"
|
|
54
|
-
},
|
|
55
|
-
"userStories": {
|
|
56
|
-
"type": "array",
|
|
57
|
-
"minItems": 1,
|
|
58
|
-
"items": {
|
|
59
|
-
"type": "object",
|
|
60
|
-
"required": ["title", "actor", "action", "benefit"],
|
|
61
|
-
"properties": {
|
|
62
|
-
"title": {
|
|
63
|
-
"type": "string",
|
|
64
|
-
"minLength": 1,
|
|
65
|
-
"description": "User story title"
|
|
66
|
-
},
|
|
67
|
-
"actor": {
|
|
68
|
-
"type": "string",
|
|
69
|
-
"minLength": 1,
|
|
70
|
-
"description": "The user persona"
|
|
71
|
-
},
|
|
72
|
-
"action": {
|
|
73
|
-
"type": "string",
|
|
74
|
-
"minLength": 1,
|
|
75
|
-
"description": "What the user wants to do"
|
|
76
|
-
},
|
|
77
|
-
"benefit": {
|
|
78
|
-
"type": "string",
|
|
79
|
-
"minLength": 1,
|
|
80
|
-
"description": "The benefit to the user"
|
|
81
|
-
},
|
|
82
|
-
"criteria": {
|
|
83
|
-
"type": "array",
|
|
84
|
-
"items": {
|
|
85
|
-
"type": "string"
|
|
86
|
-
},
|
|
87
|
-
"description": "Acceptance criteria"
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
},
|
|
91
|
-
"description": "User stories in As a/I want/So that format"
|
|
92
|
-
},
|
|
93
|
-
"functionalRequirements": {
|
|
94
|
-
"type": "array",
|
|
95
|
-
"minItems": 1,
|
|
96
|
-
"items": {
|
|
97
|
-
"type": "object",
|
|
98
|
-
"required": ["title", "description", "priority"],
|
|
99
|
-
"properties": {
|
|
100
|
-
"title": {
|
|
101
|
-
"type": "string",
|
|
102
|
-
"minLength": 1,
|
|
103
|
-
"description": "Requirement title"
|
|
104
|
-
},
|
|
105
|
-
"description": {
|
|
106
|
-
"type": "string",
|
|
107
|
-
"minLength": 1,
|
|
108
|
-
"description": "Detailed requirement description"
|
|
109
|
-
},
|
|
110
|
-
"priority": {
|
|
111
|
-
"type": "string",
|
|
112
|
-
"enum": ["P0", "P1", "P2", "P3"],
|
|
113
|
-
"description": "Priority level (P0=Critical, P3=Low)"
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
},
|
|
117
|
-
"description": "Functional requirements with priorities"
|
|
118
|
-
},
|
|
119
|
-
"nonFunctionalRequirements": {
|
|
120
|
-
"type": "array",
|
|
121
|
-
"minItems": 1,
|
|
122
|
-
"items": {
|
|
123
|
-
"type": "object",
|
|
124
|
-
"required": ["category", "requirement"],
|
|
125
|
-
"properties": {
|
|
126
|
-
"category": {
|
|
127
|
-
"type": "string",
|
|
128
|
-
"minLength": 1,
|
|
129
|
-
"description": "NFR category (Performance, Security, etc.)"
|
|
130
|
-
},
|
|
131
|
-
"requirement": {
|
|
132
|
-
"type": "string",
|
|
133
|
-
"minLength": 1,
|
|
134
|
-
"description": "The requirement specification"
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
},
|
|
138
|
-
"description": "Non-functional requirements"
|
|
139
|
-
},
|
|
140
|
-
"successMetrics": {
|
|
141
|
-
"type": "array",
|
|
142
|
-
"minItems": 1,
|
|
143
|
-
"items": {
|
|
144
|
-
"type": "object",
|
|
145
|
-
"required": ["metric", "target", "method"],
|
|
146
|
-
"properties": {
|
|
147
|
-
"metric": {
|
|
148
|
-
"type": "string",
|
|
149
|
-
"minLength": 1,
|
|
150
|
-
"description": "Metric name"
|
|
151
|
-
},
|
|
152
|
-
"target": {
|
|
153
|
-
"type": "string",
|
|
154
|
-
"minLength": 1,
|
|
155
|
-
"description": "Target value"
|
|
156
|
-
},
|
|
157
|
-
"method": {
|
|
158
|
-
"type": "string",
|
|
159
|
-
"minLength": 1,
|
|
160
|
-
"description": "Measurement method"
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
},
|
|
164
|
-
"description": "Success metrics with targets"
|
|
165
|
-
},
|
|
166
|
-
"milestones": {
|
|
167
|
-
"type": "array",
|
|
168
|
-
"minItems": 1,
|
|
169
|
-
"items": {
|
|
170
|
-
"type": "object",
|
|
171
|
-
"required": ["name", "date"],
|
|
172
|
-
"properties": {
|
|
173
|
-
"name": {
|
|
174
|
-
"type": "string",
|
|
175
|
-
"minLength": 1,
|
|
176
|
-
"description": "Milestone name"
|
|
177
|
-
},
|
|
178
|
-
"date": {
|
|
179
|
-
"type": "string",
|
|
180
|
-
"minLength": 1,
|
|
181
|
-
"description": "Target date"
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
},
|
|
185
|
-
"description": "Project milestones"
|
|
186
|
-
},
|
|
187
|
-
"risks": {
|
|
188
|
-
"type": "array",
|
|
189
|
-
"minItems": 1,
|
|
190
|
-
"items": {
|
|
191
|
-
"type": "object",
|
|
192
|
-
"required": ["risk", "impact", "probability", "mitigation"],
|
|
193
|
-
"properties": {
|
|
194
|
-
"risk": {
|
|
195
|
-
"type": "string",
|
|
196
|
-
"minLength": 1,
|
|
197
|
-
"description": "Risk description"
|
|
198
|
-
},
|
|
199
|
-
"impact": {
|
|
200
|
-
"type": "string",
|
|
201
|
-
"enum": ["Low", "Medium", "High", "Critical"],
|
|
202
|
-
"description": "Impact level"
|
|
203
|
-
},
|
|
204
|
-
"probability": {
|
|
205
|
-
"type": "string",
|
|
206
|
-
"enum": ["Low", "Medium", "High"],
|
|
207
|
-
"description": "Probability level"
|
|
208
|
-
},
|
|
209
|
-
"mitigation": {
|
|
210
|
-
"type": "string",
|
|
211
|
-
"minLength": 1,
|
|
212
|
-
"description": "Mitigation strategy"
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
},
|
|
216
|
-
"description": "Identified risks and mitigations"
|
|
217
|
-
},
|
|
218
|
-
"includeUIUX": {
|
|
219
|
-
"type": "boolean",
|
|
220
|
-
"default": false,
|
|
221
|
-
"description": "Whether to include UI/UX section"
|
|
222
|
-
},
|
|
223
|
-
"isBrownfield": {
|
|
224
|
-
"type": "boolean",
|
|
225
|
-
"default": false,
|
|
226
|
-
"description": "Whether this is a brownfield (existing system) project"
|
|
227
|
-
},
|
|
228
|
-
"userFlows": {
|
|
229
|
-
"type": "array",
|
|
230
|
-
"items": {
|
|
231
|
-
"type": "string"
|
|
232
|
-
},
|
|
233
|
-
"description": "User flows (required when includeUIUX is true)"
|
|
234
|
-
},
|
|
235
|
-
"designConsiderations": {
|
|
236
|
-
"type": "string",
|
|
237
|
-
"description": "Design considerations (required when includeUIUX is true)"
|
|
238
|
-
},
|
|
239
|
-
"existingSystemAnalysis": {
|
|
240
|
-
"type": "string",
|
|
241
|
-
"description": "Analysis of existing system (required when isBrownfield is true)"
|
|
242
|
-
},
|
|
243
|
-
"integrationPoints": {
|
|
244
|
-
"type": "array",
|
|
245
|
-
"items": {
|
|
246
|
-
"type": "string"
|
|
247
|
-
},
|
|
248
|
-
"description": "Integration points (required when isBrownfield is true)"
|
|
249
|
-
},
|
|
250
|
-
"migrationStrategy": {
|
|
251
|
-
"type": "string",
|
|
252
|
-
"description": "Migration strategy (required when isBrownfield is true)"
|
|
253
|
-
}
|
|
254
|
-
},
|
|
255
|
-
"allOf": [
|
|
256
|
-
{
|
|
257
|
-
"if": {
|
|
258
|
-
"properties": {
|
|
259
|
-
"includeUIUX": {
|
|
260
|
-
"const": true
|
|
261
|
-
}
|
|
262
|
-
}
|
|
263
|
-
},
|
|
264
|
-
"then": {
|
|
265
|
-
"required": ["userFlows", "designConsiderations"],
|
|
266
|
-
"properties": {
|
|
267
|
-
"userFlows": {
|
|
268
|
-
"minItems": 1
|
|
269
|
-
},
|
|
270
|
-
"designConsiderations": {
|
|
271
|
-
"minLength": 20
|
|
272
|
-
}
|
|
273
|
-
}
|
|
274
|
-
}
|
|
275
|
-
},
|
|
276
|
-
{
|
|
277
|
-
"if": {
|
|
278
|
-
"properties": {
|
|
279
|
-
"isBrownfield": {
|
|
280
|
-
"const": true
|
|
281
|
-
}
|
|
282
|
-
}
|
|
283
|
-
},
|
|
284
|
-
"then": {
|
|
285
|
-
"required": ["existingSystemAnalysis", "integrationPoints", "migrationStrategy"],
|
|
286
|
-
"properties": {
|
|
287
|
-
"existingSystemAnalysis": {
|
|
288
|
-
"minLength": 50
|
|
289
|
-
},
|
|
290
|
-
"integrationPoints": {
|
|
291
|
-
"minItems": 1
|
|
292
|
-
},
|
|
293
|
-
"migrationStrategy": {
|
|
294
|
-
"minLength": 50
|
|
295
|
-
}
|
|
296
|
-
}
|
|
297
|
-
}
|
|
298
|
-
}
|
|
299
|
-
]
|
|
300
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"title": "PRD Template Variables v2.0",
|
|
4
|
+
"description": "Schema for Product Requirements Document template variables with conditional validation",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"required": [
|
|
7
|
+
"projectName",
|
|
8
|
+
"productName",
|
|
9
|
+
"author",
|
|
10
|
+
"problemStatement",
|
|
11
|
+
"goals",
|
|
12
|
+
"userStories",
|
|
13
|
+
"functionalRequirements",
|
|
14
|
+
"nonFunctionalRequirements",
|
|
15
|
+
"successMetrics",
|
|
16
|
+
"milestones",
|
|
17
|
+
"risks"
|
|
18
|
+
],
|
|
19
|
+
"properties": {
|
|
20
|
+
"projectName": {
|
|
21
|
+
"type": "string",
|
|
22
|
+
"minLength": 1,
|
|
23
|
+
"description": "Name of the project"
|
|
24
|
+
},
|
|
25
|
+
"productName": {
|
|
26
|
+
"type": "string",
|
|
27
|
+
"minLength": 1,
|
|
28
|
+
"description": "Name of the product"
|
|
29
|
+
},
|
|
30
|
+
"version": {
|
|
31
|
+
"type": "string",
|
|
32
|
+
"pattern": "^\\d+\\.\\d+\\.\\d+$",
|
|
33
|
+
"default": "1.0.0",
|
|
34
|
+
"description": "Document version in semver format"
|
|
35
|
+
},
|
|
36
|
+
"author": {
|
|
37
|
+
"type": "string",
|
|
38
|
+
"minLength": 1,
|
|
39
|
+
"description": "Document author"
|
|
40
|
+
},
|
|
41
|
+
"problemStatement": {
|
|
42
|
+
"type": "string",
|
|
43
|
+
"minLength": 50,
|
|
44
|
+
"description": "Description of the problem being solved (minimum 50 characters)"
|
|
45
|
+
},
|
|
46
|
+
"goals": {
|
|
47
|
+
"type": "array",
|
|
48
|
+
"minItems": 1,
|
|
49
|
+
"items": {
|
|
50
|
+
"type": "string",
|
|
51
|
+
"minLength": 1
|
|
52
|
+
},
|
|
53
|
+
"description": "Product/feature goals"
|
|
54
|
+
},
|
|
55
|
+
"userStories": {
|
|
56
|
+
"type": "array",
|
|
57
|
+
"minItems": 1,
|
|
58
|
+
"items": {
|
|
59
|
+
"type": "object",
|
|
60
|
+
"required": ["title", "actor", "action", "benefit"],
|
|
61
|
+
"properties": {
|
|
62
|
+
"title": {
|
|
63
|
+
"type": "string",
|
|
64
|
+
"minLength": 1,
|
|
65
|
+
"description": "User story title"
|
|
66
|
+
},
|
|
67
|
+
"actor": {
|
|
68
|
+
"type": "string",
|
|
69
|
+
"minLength": 1,
|
|
70
|
+
"description": "The user persona"
|
|
71
|
+
},
|
|
72
|
+
"action": {
|
|
73
|
+
"type": "string",
|
|
74
|
+
"minLength": 1,
|
|
75
|
+
"description": "What the user wants to do"
|
|
76
|
+
},
|
|
77
|
+
"benefit": {
|
|
78
|
+
"type": "string",
|
|
79
|
+
"minLength": 1,
|
|
80
|
+
"description": "The benefit to the user"
|
|
81
|
+
},
|
|
82
|
+
"criteria": {
|
|
83
|
+
"type": "array",
|
|
84
|
+
"items": {
|
|
85
|
+
"type": "string"
|
|
86
|
+
},
|
|
87
|
+
"description": "Acceptance criteria"
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
},
|
|
91
|
+
"description": "User stories in As a/I want/So that format"
|
|
92
|
+
},
|
|
93
|
+
"functionalRequirements": {
|
|
94
|
+
"type": "array",
|
|
95
|
+
"minItems": 1,
|
|
96
|
+
"items": {
|
|
97
|
+
"type": "object",
|
|
98
|
+
"required": ["title", "description", "priority"],
|
|
99
|
+
"properties": {
|
|
100
|
+
"title": {
|
|
101
|
+
"type": "string",
|
|
102
|
+
"minLength": 1,
|
|
103
|
+
"description": "Requirement title"
|
|
104
|
+
},
|
|
105
|
+
"description": {
|
|
106
|
+
"type": "string",
|
|
107
|
+
"minLength": 1,
|
|
108
|
+
"description": "Detailed requirement description"
|
|
109
|
+
},
|
|
110
|
+
"priority": {
|
|
111
|
+
"type": "string",
|
|
112
|
+
"enum": ["P0", "P1", "P2", "P3"],
|
|
113
|
+
"description": "Priority level (P0=Critical, P3=Low)"
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
},
|
|
117
|
+
"description": "Functional requirements with priorities"
|
|
118
|
+
},
|
|
119
|
+
"nonFunctionalRequirements": {
|
|
120
|
+
"type": "array",
|
|
121
|
+
"minItems": 1,
|
|
122
|
+
"items": {
|
|
123
|
+
"type": "object",
|
|
124
|
+
"required": ["category", "requirement"],
|
|
125
|
+
"properties": {
|
|
126
|
+
"category": {
|
|
127
|
+
"type": "string",
|
|
128
|
+
"minLength": 1,
|
|
129
|
+
"description": "NFR category (Performance, Security, etc.)"
|
|
130
|
+
},
|
|
131
|
+
"requirement": {
|
|
132
|
+
"type": "string",
|
|
133
|
+
"minLength": 1,
|
|
134
|
+
"description": "The requirement specification"
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
},
|
|
138
|
+
"description": "Non-functional requirements"
|
|
139
|
+
},
|
|
140
|
+
"successMetrics": {
|
|
141
|
+
"type": "array",
|
|
142
|
+
"minItems": 1,
|
|
143
|
+
"items": {
|
|
144
|
+
"type": "object",
|
|
145
|
+
"required": ["metric", "target", "method"],
|
|
146
|
+
"properties": {
|
|
147
|
+
"metric": {
|
|
148
|
+
"type": "string",
|
|
149
|
+
"minLength": 1,
|
|
150
|
+
"description": "Metric name"
|
|
151
|
+
},
|
|
152
|
+
"target": {
|
|
153
|
+
"type": "string",
|
|
154
|
+
"minLength": 1,
|
|
155
|
+
"description": "Target value"
|
|
156
|
+
},
|
|
157
|
+
"method": {
|
|
158
|
+
"type": "string",
|
|
159
|
+
"minLength": 1,
|
|
160
|
+
"description": "Measurement method"
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
},
|
|
164
|
+
"description": "Success metrics with targets"
|
|
165
|
+
},
|
|
166
|
+
"milestones": {
|
|
167
|
+
"type": "array",
|
|
168
|
+
"minItems": 1,
|
|
169
|
+
"items": {
|
|
170
|
+
"type": "object",
|
|
171
|
+
"required": ["name", "date"],
|
|
172
|
+
"properties": {
|
|
173
|
+
"name": {
|
|
174
|
+
"type": "string",
|
|
175
|
+
"minLength": 1,
|
|
176
|
+
"description": "Milestone name"
|
|
177
|
+
},
|
|
178
|
+
"date": {
|
|
179
|
+
"type": "string",
|
|
180
|
+
"minLength": 1,
|
|
181
|
+
"description": "Target date"
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
},
|
|
185
|
+
"description": "Project milestones"
|
|
186
|
+
},
|
|
187
|
+
"risks": {
|
|
188
|
+
"type": "array",
|
|
189
|
+
"minItems": 1,
|
|
190
|
+
"items": {
|
|
191
|
+
"type": "object",
|
|
192
|
+
"required": ["risk", "impact", "probability", "mitigation"],
|
|
193
|
+
"properties": {
|
|
194
|
+
"risk": {
|
|
195
|
+
"type": "string",
|
|
196
|
+
"minLength": 1,
|
|
197
|
+
"description": "Risk description"
|
|
198
|
+
},
|
|
199
|
+
"impact": {
|
|
200
|
+
"type": "string",
|
|
201
|
+
"enum": ["Low", "Medium", "High", "Critical"],
|
|
202
|
+
"description": "Impact level"
|
|
203
|
+
},
|
|
204
|
+
"probability": {
|
|
205
|
+
"type": "string",
|
|
206
|
+
"enum": ["Low", "Medium", "High"],
|
|
207
|
+
"description": "Probability level"
|
|
208
|
+
},
|
|
209
|
+
"mitigation": {
|
|
210
|
+
"type": "string",
|
|
211
|
+
"minLength": 1,
|
|
212
|
+
"description": "Mitigation strategy"
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
},
|
|
216
|
+
"description": "Identified risks and mitigations"
|
|
217
|
+
},
|
|
218
|
+
"includeUIUX": {
|
|
219
|
+
"type": "boolean",
|
|
220
|
+
"default": false,
|
|
221
|
+
"description": "Whether to include UI/UX section"
|
|
222
|
+
},
|
|
223
|
+
"isBrownfield": {
|
|
224
|
+
"type": "boolean",
|
|
225
|
+
"default": false,
|
|
226
|
+
"description": "Whether this is a brownfield (existing system) project"
|
|
227
|
+
},
|
|
228
|
+
"userFlows": {
|
|
229
|
+
"type": "array",
|
|
230
|
+
"items": {
|
|
231
|
+
"type": "string"
|
|
232
|
+
},
|
|
233
|
+
"description": "User flows (required when includeUIUX is true)"
|
|
234
|
+
},
|
|
235
|
+
"designConsiderations": {
|
|
236
|
+
"type": "string",
|
|
237
|
+
"description": "Design considerations (required when includeUIUX is true)"
|
|
238
|
+
},
|
|
239
|
+
"existingSystemAnalysis": {
|
|
240
|
+
"type": "string",
|
|
241
|
+
"description": "Analysis of existing system (required when isBrownfield is true)"
|
|
242
|
+
},
|
|
243
|
+
"integrationPoints": {
|
|
244
|
+
"type": "array",
|
|
245
|
+
"items": {
|
|
246
|
+
"type": "string"
|
|
247
|
+
},
|
|
248
|
+
"description": "Integration points (required when isBrownfield is true)"
|
|
249
|
+
},
|
|
250
|
+
"migrationStrategy": {
|
|
251
|
+
"type": "string",
|
|
252
|
+
"description": "Migration strategy (required when isBrownfield is true)"
|
|
253
|
+
}
|
|
254
|
+
},
|
|
255
|
+
"allOf": [
|
|
256
|
+
{
|
|
257
|
+
"if": {
|
|
258
|
+
"properties": {
|
|
259
|
+
"includeUIUX": {
|
|
260
|
+
"const": true
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
},
|
|
264
|
+
"then": {
|
|
265
|
+
"required": ["userFlows", "designConsiderations"],
|
|
266
|
+
"properties": {
|
|
267
|
+
"userFlows": {
|
|
268
|
+
"minItems": 1
|
|
269
|
+
},
|
|
270
|
+
"designConsiderations": {
|
|
271
|
+
"minLength": 20
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
},
|
|
276
|
+
{
|
|
277
|
+
"if": {
|
|
278
|
+
"properties": {
|
|
279
|
+
"isBrownfield": {
|
|
280
|
+
"const": true
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
},
|
|
284
|
+
"then": {
|
|
285
|
+
"required": ["existingSystemAnalysis", "integrationPoints", "migrationStrategy"],
|
|
286
|
+
"properties": {
|
|
287
|
+
"existingSystemAnalysis": {
|
|
288
|
+
"minLength": 50
|
|
289
|
+
},
|
|
290
|
+
"integrationPoints": {
|
|
291
|
+
"minItems": 1
|
|
292
|
+
},
|
|
293
|
+
"migrationStrategy": {
|
|
294
|
+
"minLength": 50
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
]
|
|
300
|
+
}
|