@dzhechkov/keysarium 1.7.15 → 1.7.18

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 (82) hide show
  1. package/.dz-manifest.json +213 -53
  2. package/README.md +29 -6
  3. package/README.ru.md +17 -0
  4. package/package.json +3 -3
  5. package/sbom.json +454 -54
  6. package/src/cli.js +32 -2
  7. package/src/commands/doctor.js +25 -1
  8. package/src/commands/init.js +46 -12
  9. package/src/utils.js +1 -0
  10. package/templates/.agents/skills/casarium/SKILL.md +29 -0
  11. package/templates/.claude/agents/code-goal-planner.md +9 -0
  12. package/templates/.claude/commands/casarium.md +3 -1
  13. package/templates/.claude/commands/cjm-prototype.md +2 -2
  14. package/templates/.claude/commands/research.md +4 -1
  15. package/templates/.claude/rules/checkpoint-protocol.md +2 -1
  16. package/templates/.claude/rules/research-quality.md +11 -6
  17. package/templates/.claude/shards/phase-2-research.shard.md +12 -8
  18. package/templates/.claude/shards/phase-25-cjm.shard.md +5 -3
  19. package/templates/.claude/skills/feature-adr/SKILL.md +17 -15
  20. package/templates/.claude/skills/feature-adr/modules/03-adr.md +1 -1
  21. package/templates/.claude/skills/feature-adr/modules/03.5-ideation-swarm.md +1 -1
  22. package/templates/.claude/skills/feature-adr/modules/06-implementation-plan.md +2 -2
  23. package/templates/.claude/skills/feature-adr/modules/08-qe.md +1 -1
  24. package/templates/.claude/skills/feature-adr/modules/09-fleet-qe.md +12 -12
  25. package/templates/.claude/skills/feature-adr/references/agentic-qe/LICENSE.agentic-qe +21 -0
  26. package/templates/.claude/skills/feature-adr/references/agentic-qe/README.md +20 -16
  27. package/templates/.claude/skills/feature-adr/references/agentic-qe/UPSTREAM-MANIFEST.json +246 -0
  28. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-brutal-honesty-review/README.md +218 -0
  29. package/templates/.claude/skills/feature-adr/references/agentic-qe/{brutal-honesty-review.md → qe-ref-brutal-honesty-review/REFERENCE.md} +14 -1
  30. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-brutal-honesty-review/resources/assessment-rubrics.md +295 -0
  31. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-brutal-honesty-review/resources/review-template.md +102 -0
  32. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-brutal-honesty-review/schemas/output.json +291 -0
  33. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-brutal-honesty-review/scripts/assess-code.sh +179 -0
  34. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-brutal-honesty-review/scripts/assess-tests.sh +223 -0
  35. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-brutal-honesty-review/scripts/validate-config.json +34 -0
  36. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-enterprise-integration-testing/REFERENCE.md +758 -0
  37. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-enterprise-integration-testing/evals/enterprise-integration-testing.yaml +158 -0
  38. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-enterprise-integration-testing/schemas/output.json +74 -0
  39. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-enterprise-integration-testing/scripts/validate-config.json +25 -0
  40. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-ideation-swarm/REFERENCE.md +226 -0
  41. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-ideation-swarm/evals/qcsd-ideation-swarm.yaml +138 -0
  42. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-ideation-swarm/schemas/output.json +568 -0
  43. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-ideation-swarm/scripts/validate-config.json +25 -0
  44. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-ideation-swarm/steps/01-flag-detection.md +57 -0
  45. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-ideation-swarm/steps/02-core-agents.md +29 -0
  46. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-ideation-swarm/steps/03-batch1-results.md +15 -0
  47. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-ideation-swarm/steps/04-conditional-agents.md +23 -0
  48. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-ideation-swarm/steps/05-decision-synthesis.md +29 -0
  49. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-ideation-swarm/steps/06-report-generation.md +18 -0
  50. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-ideation-swarm/steps/07-learning-persistence.md +29 -0
  51. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-ideation-swarm/steps/08-final-output.md +18 -0
  52. package/templates/.claude/skills/feature-adr/references/agentic-qe/{qe-coverage-analysis.md → qe-ref-qe-coverage-analysis/REFERENCE.md} +42 -3
  53. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qe-coverage-analysis/evals/qe-coverage-analysis.yaml +494 -0
  54. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qe-coverage-analysis/schemas/output.json +286 -0
  55. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qe-coverage-analysis/scripts/validate-config.json +42 -0
  56. package/templates/.claude/skills/feature-adr/references/agentic-qe/{qe-requirements-validation.md → qe-ref-qe-requirements-validation/REFERENCE.md} +13 -3
  57. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qe-requirements-validation/evals/qe-requirements-validation.yaml +598 -0
  58. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qe-requirements-validation/schemas/output.json +587 -0
  59. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qe-requirements-validation/scripts/validate-config.json +37 -0
  60. package/templates/.claude/skills/feature-adr/references/agentic-qe/{regression-testing.md → qe-ref-regression-testing/REFERENCE.md} +30 -49
  61. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-regression-testing/evals/regression-testing.yaml +504 -0
  62. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-regression-testing/schemas/output.json +311 -0
  63. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-regression-testing/scripts/validate-config.json +50 -0
  64. package/templates/.claude/skills/feature-adr/references/agentic-qe/{risk-based-testing.md → qe-ref-risk-based-testing/REFERENCE.md} +23 -52
  65. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-risk-based-testing/evals/risk-based-testing.yaml +141 -0
  66. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-risk-based-testing/schemas/output.json +480 -0
  67. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-risk-based-testing/scripts/validate-config.json +25 -0
  68. package/templates/.claude/skills/feature-adr/references/agentic-qe/{shift-left-testing.md → qe-ref-shift-left-testing/REFERENCE.md} +33 -88
  69. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-shift-left-testing/evals/shift-left-testing.yaml +145 -0
  70. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-shift-left-testing/schemas/output.json +459 -0
  71. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-shift-left-testing/scripts/validate-config.json +25 -0
  72. package/templates/CLAUDE.md +3 -1
  73. package/templates/docs/feature-adr/04-admin-guide.md +1 -1
  74. package/templates/docs/improvement-directions.md +3 -3
  75. package/templates/docs/keysarium/02-admin-guide.md +2 -2
  76. package/templates/docs/keysarium/03-user-guide.md +3 -3
  77. package/templates/docs/keysarium/05-architecture.md +9 -8
  78. package/templates/docs/keysarium/06-user-flows.md +4 -4
  79. package/templates/lib/platform-templates/copilot.md +1 -1
  80. package/templates/lib/platform-templates/opencode.md +1 -1
  81. package/templates/.claude/skills/feature-adr/references/agentic-qe/enterprise-integration-testing.md +0 -111
  82. package/templates/.claude/skills/feature-adr/references/agentic-qe/qcsd-ideation-swarm.md +0 -126
@@ -0,0 +1,587 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://agentic-qe.dev/schemas/qe-requirements-validation-output.json",
4
+ "title": "AQE Requirements Validation Skill Output Schema",
5
+ "description": "Schema for requirements validation skill output. Includes requirements analysis, traceability matrix, and coverage assessment.",
6
+ "type": "object",
7
+ "required": ["skillName", "version", "timestamp", "status", "trustTier", "output"],
8
+ "properties": {
9
+ "skillName": {
10
+ "type": "string",
11
+ "const": "qe-requirements-validation",
12
+ "description": "Must be 'qe-requirements-validation'"
13
+ },
14
+ "version": {
15
+ "type": "string",
16
+ "pattern": "^\\d+\\.\\d+\\.\\d+(-[a-zA-Z0-9]+)?$",
17
+ "description": "Semantic version of the skill"
18
+ },
19
+ "timestamp": {
20
+ "type": "string",
21
+ "format": "date-time",
22
+ "description": "ISO 8601 timestamp of output generation"
23
+ },
24
+ "status": {
25
+ "type": "string",
26
+ "enum": ["success", "partial", "failed", "skipped"],
27
+ "description": "Overall execution status"
28
+ },
29
+ "trustTier": {
30
+ "type": "integer",
31
+ "const": 3,
32
+ "description": "Trust tier 3 indicates full validation with eval suite"
33
+ },
34
+ "output": {
35
+ "type": "object",
36
+ "required": ["summary", "requirements", "traceability"],
37
+ "properties": {
38
+ "summary": {
39
+ "type": "string",
40
+ "minLength": 50,
41
+ "maxLength": 2000,
42
+ "description": "Human-readable summary of requirements validation"
43
+ },
44
+ "requirements": {
45
+ "$ref": "#/$defs/requirementsAnalysis",
46
+ "description": "Requirements analysis results"
47
+ },
48
+ "traceability": {
49
+ "$ref": "#/$defs/traceabilityMatrix",
50
+ "description": "Requirements traceability matrix"
51
+ },
52
+ "coverage": {
53
+ "$ref": "#/$defs/requirementsCoverage",
54
+ "description": "Requirements coverage assessment"
55
+ },
56
+ "testability": {
57
+ "$ref": "#/$defs/testabilityAssessment",
58
+ "description": "Testability assessment"
59
+ },
60
+ "gaps": {
61
+ "type": "array",
62
+ "items": {
63
+ "$ref": "#/$defs/requirementGap"
64
+ },
65
+ "maxItems": 100,
66
+ "description": "Identified gaps in requirements"
67
+ },
68
+ "recommendations": {
69
+ "type": "array",
70
+ "items": {
71
+ "$ref": "#/$defs/recommendation"
72
+ },
73
+ "maxItems": 50
74
+ },
75
+ "bddScenarios": {
76
+ "type": "array",
77
+ "items": {
78
+ "$ref": "#/$defs/bddScenario"
79
+ },
80
+ "maxItems": 100,
81
+ "description": "Generated BDD scenarios"
82
+ },
83
+ "artifacts": {
84
+ "type": "array",
85
+ "items": {
86
+ "$ref": "#/$defs/artifact"
87
+ },
88
+ "maxItems": 20
89
+ }
90
+ }
91
+ },
92
+ "metadata": {
93
+ "$ref": "#/$defs/metadata"
94
+ },
95
+ "validation": {
96
+ "$ref": "#/$defs/validationResult"
97
+ },
98
+ "learning": {
99
+ "$ref": "#/$defs/learningData"
100
+ }
101
+ },
102
+ "$defs": {
103
+ "requirementsAnalysis": {
104
+ "type": "object",
105
+ "required": ["total", "analyzed"],
106
+ "properties": {
107
+ "total": {
108
+ "type": "integer",
109
+ "minimum": 0,
110
+ "description": "Total requirements found"
111
+ },
112
+ "analyzed": {
113
+ "type": "integer",
114
+ "minimum": 0,
115
+ "description": "Requirements analyzed"
116
+ },
117
+ "valid": {
118
+ "type": "integer",
119
+ "minimum": 0,
120
+ "description": "Valid requirements"
121
+ },
122
+ "incomplete": {
123
+ "type": "integer",
124
+ "minimum": 0,
125
+ "description": "Incomplete requirements"
126
+ },
127
+ "ambiguous": {
128
+ "type": "integer",
129
+ "minimum": 0,
130
+ "description": "Ambiguous requirements"
131
+ },
132
+ "untestable": {
133
+ "type": "integer",
134
+ "minimum": 0,
135
+ "description": "Untestable requirements"
136
+ },
137
+ "items": {
138
+ "type": "array",
139
+ "items": {
140
+ "$ref": "#/$defs/requirementItem"
141
+ },
142
+ "description": "Individual requirement analysis"
143
+ }
144
+ }
145
+ },
146
+ "requirementItem": {
147
+ "type": "object",
148
+ "required": ["id", "title", "status"],
149
+ "properties": {
150
+ "id": {
151
+ "type": "string",
152
+ "pattern": "^[A-Z]{2,10}-\\d+$",
153
+ "description": "Requirement ID (e.g., REQ-001, US-123)"
154
+ },
155
+ "title": {
156
+ "type": "string",
157
+ "minLength": 5,
158
+ "maxLength": 500
159
+ },
160
+ "type": {
161
+ "type": "string",
162
+ "enum": ["story", "epic", "task", "bug", "requirement", "feature"],
163
+ "description": "Requirement type"
164
+ },
165
+ "priority": {
166
+ "type": "string",
167
+ "enum": ["critical", "high", "medium", "low"]
168
+ },
169
+ "status": {
170
+ "type": "string",
171
+ "enum": ["valid", "incomplete", "ambiguous", "untestable", "duplicate"]
172
+ },
173
+ "investScore": {
174
+ "$ref": "#/$defs/investScore",
175
+ "description": "INVEST criteria score"
176
+ },
177
+ "acceptanceCriteria": {
178
+ "type": "array",
179
+ "items": {
180
+ "$ref": "#/$defs/acceptanceCriterion"
181
+ }
182
+ },
183
+ "issues": {
184
+ "type": "array",
185
+ "items": {
186
+ "type": "string"
187
+ },
188
+ "description": "Issues found"
189
+ },
190
+ "linkedTests": {
191
+ "type": "array",
192
+ "items": {
193
+ "type": "string"
194
+ },
195
+ "description": "Linked test IDs"
196
+ }
197
+ }
198
+ },
199
+ "investScore": {
200
+ "type": "object",
201
+ "properties": {
202
+ "total": {
203
+ "type": "integer",
204
+ "minimum": 0,
205
+ "maximum": 6,
206
+ "description": "Total INVEST score (0-6)"
207
+ },
208
+ "independent": {
209
+ "type": "boolean",
210
+ "description": "Can be tested alone"
211
+ },
212
+ "negotiable": {
213
+ "type": "boolean",
214
+ "description": "Not over-specified"
215
+ },
216
+ "valuable": {
217
+ "type": "boolean",
218
+ "description": "Delivers value"
219
+ },
220
+ "estimable": {
221
+ "type": "boolean",
222
+ "description": "Can estimate effort"
223
+ },
224
+ "small": {
225
+ "type": "boolean",
226
+ "description": "Testable in one session"
227
+ },
228
+ "testable": {
229
+ "type": "boolean",
230
+ "description": "Clear pass/fail"
231
+ }
232
+ }
233
+ },
234
+ "acceptanceCriterion": {
235
+ "type": "object",
236
+ "required": ["id", "text", "testable"],
237
+ "properties": {
238
+ "id": {
239
+ "type": "string",
240
+ "description": "AC identifier"
241
+ },
242
+ "text": {
243
+ "type": "string",
244
+ "description": "Acceptance criterion text"
245
+ },
246
+ "format": {
247
+ "type": "string",
248
+ "enum": ["given-when-then", "free-form", "checklist"]
249
+ },
250
+ "testable": {
251
+ "type": "boolean",
252
+ "description": "Whether AC is testable"
253
+ },
254
+ "issues": {
255
+ "type": "array",
256
+ "items": {
257
+ "type": "string"
258
+ }
259
+ }
260
+ }
261
+ },
262
+ "traceabilityMatrix": {
263
+ "type": "object",
264
+ "required": ["completeness"],
265
+ "properties": {
266
+ "completeness": {
267
+ "type": "number",
268
+ "minimum": 0,
269
+ "maximum": 100,
270
+ "description": "Traceability completeness percentage"
271
+ },
272
+ "requirementToTest": {
273
+ "type": "array",
274
+ "items": {
275
+ "$ref": "#/$defs/traceLink"
276
+ },
277
+ "description": "Requirement to test mappings"
278
+ },
279
+ "requirementToCode": {
280
+ "type": "array",
281
+ "items": {
282
+ "$ref": "#/$defs/traceLink"
283
+ },
284
+ "description": "Requirement to code mappings"
285
+ },
286
+ "orphanTests": {
287
+ "type": "array",
288
+ "items": {
289
+ "type": "string"
290
+ },
291
+ "description": "Tests without linked requirements"
292
+ },
293
+ "untracedRequirements": {
294
+ "type": "array",
295
+ "items": {
296
+ "type": "string"
297
+ },
298
+ "description": "Requirements without traces"
299
+ }
300
+ }
301
+ },
302
+ "traceLink": {
303
+ "type": "object",
304
+ "required": ["sourceId", "targetIds"],
305
+ "properties": {
306
+ "sourceId": {
307
+ "type": "string",
308
+ "description": "Source requirement ID"
309
+ },
310
+ "targetIds": {
311
+ "type": "array",
312
+ "items": {
313
+ "type": "string"
314
+ },
315
+ "description": "Target test/code IDs"
316
+ },
317
+ "coverage": {
318
+ "type": "string",
319
+ "enum": ["full", "partial", "none"],
320
+ "description": "Coverage level"
321
+ }
322
+ }
323
+ },
324
+ "requirementsCoverage": {
325
+ "type": "object",
326
+ "required": ["percentage"],
327
+ "properties": {
328
+ "percentage": {
329
+ "type": "number",
330
+ "minimum": 0,
331
+ "maximum": 100,
332
+ "description": "Overall coverage percentage"
333
+ },
334
+ "covered": {
335
+ "type": "integer",
336
+ "minimum": 0
337
+ },
338
+ "partiallyCovered": {
339
+ "type": "integer",
340
+ "minimum": 0
341
+ },
342
+ "uncovered": {
343
+ "type": "integer",
344
+ "minimum": 0
345
+ },
346
+ "byPriority": {
347
+ "type": "object",
348
+ "properties": {
349
+ "critical": { "type": "number", "minimum": 0, "maximum": 100 },
350
+ "high": { "type": "number", "minimum": 0, "maximum": 100 },
351
+ "medium": { "type": "number", "minimum": 0, "maximum": 100 },
352
+ "low": { "type": "number", "minimum": 0, "maximum": 100 }
353
+ }
354
+ },
355
+ "automationCoverage": {
356
+ "type": "number",
357
+ "minimum": 0,
358
+ "maximum": 100,
359
+ "description": "Percentage with automated tests"
360
+ }
361
+ }
362
+ },
363
+ "testabilityAssessment": {
364
+ "type": "object",
365
+ "required": ["score"],
366
+ "properties": {
367
+ "score": {
368
+ "type": "integer",
369
+ "minimum": 0,
370
+ "maximum": 100,
371
+ "description": "Overall testability score"
372
+ },
373
+ "grade": {
374
+ "type": "string",
375
+ "pattern": "^[A-F][+-]?$"
376
+ },
377
+ "principles": {
378
+ "type": "array",
379
+ "items": {
380
+ "$ref": "#/$defs/testabilityPrinciple"
381
+ },
382
+ "description": "Individual principle scores"
383
+ },
384
+ "blockers": {
385
+ "type": "array",
386
+ "items": {
387
+ "type": "string"
388
+ },
389
+ "description": "Testability blockers"
390
+ }
391
+ }
392
+ },
393
+ "testabilityPrinciple": {
394
+ "type": "object",
395
+ "required": ["name", "score"],
396
+ "properties": {
397
+ "name": {
398
+ "type": "string",
399
+ "enum": [
400
+ "controllability", "observability", "isolability",
401
+ "separation-of-concerns", "understandability", "automatability",
402
+ "heterogeneity", "simplicity", "stability", "information-availability"
403
+ ]
404
+ },
405
+ "score": {
406
+ "type": "integer",
407
+ "minimum": 0,
408
+ "maximum": 10
409
+ },
410
+ "evidence": {
411
+ "type": "string"
412
+ }
413
+ }
414
+ },
415
+ "requirementGap": {
416
+ "type": "object",
417
+ "required": ["id", "type", "severity"],
418
+ "properties": {
419
+ "id": {
420
+ "type": "string",
421
+ "pattern": "^GAP-\\d{3,6}$"
422
+ },
423
+ "type": {
424
+ "type": "string",
425
+ "enum": ["missing", "incomplete", "ambiguous", "conflicting", "untestable"]
426
+ },
427
+ "severity": {
428
+ "type": "string",
429
+ "enum": ["critical", "high", "medium", "low"]
430
+ },
431
+ "description": {
432
+ "type": "string"
433
+ },
434
+ "affectedRequirements": {
435
+ "type": "array",
436
+ "items": {
437
+ "type": "string"
438
+ }
439
+ },
440
+ "recommendation": {
441
+ "type": "string"
442
+ }
443
+ }
444
+ },
445
+ "bddScenario": {
446
+ "type": "object",
447
+ "required": ["title", "requirement"],
448
+ "properties": {
449
+ "title": {
450
+ "type": "string"
451
+ },
452
+ "requirement": {
453
+ "type": "string",
454
+ "description": "Linked requirement ID"
455
+ },
456
+ "feature": {
457
+ "type": "string"
458
+ },
459
+ "given": {
460
+ "type": "array",
461
+ "items": { "type": "string" }
462
+ },
463
+ "when": {
464
+ "type": "array",
465
+ "items": { "type": "string" }
466
+ },
467
+ "then": {
468
+ "type": "array",
469
+ "items": { "type": "string" }
470
+ },
471
+ "tags": {
472
+ "type": "array",
473
+ "items": { "type": "string" }
474
+ }
475
+ }
476
+ },
477
+ "recommendation": {
478
+ "type": "object",
479
+ "required": ["id", "title", "priority"],
480
+ "properties": {
481
+ "id": {
482
+ "type": "string",
483
+ "pattern": "^REC-\\d{3,6}$"
484
+ },
485
+ "title": {
486
+ "type": "string",
487
+ "minLength": 10,
488
+ "maxLength": 200
489
+ },
490
+ "description": {
491
+ "type": "string",
492
+ "maxLength": 2000
493
+ },
494
+ "priority": {
495
+ "type": "string",
496
+ "enum": ["critical", "high", "medium", "low"]
497
+ },
498
+ "effort": {
499
+ "type": "string",
500
+ "enum": ["trivial", "low", "medium", "high", "major"]
501
+ },
502
+ "affectedRequirements": {
503
+ "type": "array",
504
+ "items": { "type": "string" }
505
+ }
506
+ }
507
+ },
508
+ "artifact": {
509
+ "type": "object",
510
+ "required": ["type", "path"],
511
+ "properties": {
512
+ "type": {
513
+ "type": "string",
514
+ "enum": ["report", "matrix", "bdd-features", "data", "log"]
515
+ },
516
+ "path": {
517
+ "type": "string",
518
+ "maxLength": 500
519
+ },
520
+ "format": {
521
+ "type": "string",
522
+ "enum": ["json", "html", "md", "feature", "csv"]
523
+ },
524
+ "description": {
525
+ "type": "string"
526
+ }
527
+ }
528
+ },
529
+ "metadata": {
530
+ "type": "object",
531
+ "properties": {
532
+ "executionTimeMs": {
533
+ "type": "integer",
534
+ "minimum": 0
535
+ },
536
+ "toolsUsed": {
537
+ "type": "array",
538
+ "items": { "type": "string" }
539
+ },
540
+ "agentId": {
541
+ "type": "string",
542
+ "pattern": "^qe-[a-z][a-z0-9-]*$"
543
+ },
544
+ "source": {
545
+ "type": "string",
546
+ "description": "Requirements source (jira, confluence, etc.)"
547
+ },
548
+ "project": {
549
+ "type": "string"
550
+ }
551
+ }
552
+ },
553
+ "validationResult": {
554
+ "type": "object",
555
+ "properties": {
556
+ "schemaValid": { "type": "boolean" },
557
+ "contentValid": { "type": "boolean" },
558
+ "confidence": { "type": "number", "minimum": 0, "maximum": 1 },
559
+ "warnings": {
560
+ "type": "array",
561
+ "items": { "type": "string" },
562
+ "maxItems": 20
563
+ },
564
+ "errors": {
565
+ "type": "array",
566
+ "items": { "type": "string" },
567
+ "maxItems": 20
568
+ }
569
+ }
570
+ },
571
+ "learningData": {
572
+ "type": "object",
573
+ "properties": {
574
+ "patternsDetected": {
575
+ "type": "array",
576
+ "items": { "type": "string" },
577
+ "maxItems": 20
578
+ },
579
+ "reward": {
580
+ "type": "number",
581
+ "minimum": 0,
582
+ "maximum": 1
583
+ }
584
+ }
585
+ }
586
+ }
587
+ }
@@ -0,0 +1,37 @@
1
+ {
2
+ "skillName": "qe-requirements-validation",
3
+ "skillVersion": "1.0.0",
4
+ "requiredTools": [
5
+ "jq"
6
+ ],
7
+ "optionalTools": [],
8
+ "schemaPath": "schemas/output.json",
9
+ "requiredFields": [
10
+ "skillName",
11
+ "status",
12
+ "output",
13
+ "output.summary",
14
+ "output.requirements",
15
+ "output.traceability"
16
+ ],
17
+ "requiredNonEmptyFields": [
18
+ "output.summary"
19
+ ],
20
+ "mustContainTerms": [
21
+ "requirement",
22
+ "traceability"
23
+ ],
24
+ "mustNotContainTerms": [
25
+ "TODO",
26
+ "placeholder",
27
+ "FIXME"
28
+ ],
29
+ "enumValidations": {
30
+ ".status": [
31
+ "success",
32
+ "partial",
33
+ "failed",
34
+ "skipped"
35
+ ]
36
+ }
37
+ }