@dzhechkov/keysarium 1.7.14 → 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 (84) hide show
  1. package/.dz-manifest.json +215 -55
  2. package/README.md +35 -6
  3. package/README.ru.md +36 -16
  4. package/package.json +3 -3
  5. package/sbom.json +456 -56
  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/analyst-manual.md +4 -2
  13. package/templates/.claude/commands/casarium.md +3 -1
  14. package/templates/.claude/commands/cjm-prototype.md +2 -2
  15. package/templates/.claude/commands/research.md +4 -1
  16. package/templates/.claude/rules/checkpoint-protocol.md +2 -1
  17. package/templates/.claude/rules/research-quality.md +11 -6
  18. package/templates/.claude/shards/phase-2-research.shard.md +12 -8
  19. package/templates/.claude/shards/phase-25-cjm.shard.md +5 -3
  20. package/templates/.claude/skills/analyst-manual-full/SKILL.md +65 -37
  21. package/templates/.claude/skills/feature-adr/SKILL.md +17 -15
  22. package/templates/.claude/skills/feature-adr/modules/03-adr.md +1 -1
  23. package/templates/.claude/skills/feature-adr/modules/03.5-ideation-swarm.md +1 -1
  24. package/templates/.claude/skills/feature-adr/modules/06-implementation-plan.md +2 -2
  25. package/templates/.claude/skills/feature-adr/modules/08-qe.md +1 -1
  26. package/templates/.claude/skills/feature-adr/modules/09-fleet-qe.md +12 -12
  27. package/templates/.claude/skills/feature-adr/references/agentic-qe/LICENSE.agentic-qe +21 -0
  28. package/templates/.claude/skills/feature-adr/references/agentic-qe/README.md +20 -16
  29. package/templates/.claude/skills/feature-adr/references/agentic-qe/UPSTREAM-MANIFEST.json +246 -0
  30. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-brutal-honesty-review/README.md +218 -0
  31. package/templates/.claude/skills/feature-adr/references/agentic-qe/{brutal-honesty-review.md → qe-ref-brutal-honesty-review/REFERENCE.md} +14 -1
  32. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-brutal-honesty-review/resources/assessment-rubrics.md +295 -0
  33. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-brutal-honesty-review/resources/review-template.md +102 -0
  34. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-brutal-honesty-review/schemas/output.json +291 -0
  35. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-brutal-honesty-review/scripts/assess-code.sh +179 -0
  36. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-brutal-honesty-review/scripts/assess-tests.sh +223 -0
  37. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-brutal-honesty-review/scripts/validate-config.json +34 -0
  38. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-enterprise-integration-testing/REFERENCE.md +758 -0
  39. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-enterprise-integration-testing/evals/enterprise-integration-testing.yaml +158 -0
  40. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-enterprise-integration-testing/schemas/output.json +74 -0
  41. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-enterprise-integration-testing/scripts/validate-config.json +25 -0
  42. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-ideation-swarm/REFERENCE.md +226 -0
  43. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-ideation-swarm/evals/qcsd-ideation-swarm.yaml +138 -0
  44. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-ideation-swarm/schemas/output.json +568 -0
  45. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-ideation-swarm/scripts/validate-config.json +25 -0
  46. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-ideation-swarm/steps/01-flag-detection.md +57 -0
  47. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-ideation-swarm/steps/02-core-agents.md +29 -0
  48. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-ideation-swarm/steps/03-batch1-results.md +15 -0
  49. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-ideation-swarm/steps/04-conditional-agents.md +23 -0
  50. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-ideation-swarm/steps/05-decision-synthesis.md +29 -0
  51. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-ideation-swarm/steps/06-report-generation.md +18 -0
  52. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-ideation-swarm/steps/07-learning-persistence.md +29 -0
  53. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-ideation-swarm/steps/08-final-output.md +18 -0
  54. package/templates/.claude/skills/feature-adr/references/agentic-qe/{qe-coverage-analysis.md → qe-ref-qe-coverage-analysis/REFERENCE.md} +42 -3
  55. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qe-coverage-analysis/evals/qe-coverage-analysis.yaml +494 -0
  56. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qe-coverage-analysis/schemas/output.json +286 -0
  57. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qe-coverage-analysis/scripts/validate-config.json +42 -0
  58. package/templates/.claude/skills/feature-adr/references/agentic-qe/{qe-requirements-validation.md → qe-ref-qe-requirements-validation/REFERENCE.md} +13 -3
  59. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qe-requirements-validation/evals/qe-requirements-validation.yaml +598 -0
  60. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qe-requirements-validation/schemas/output.json +587 -0
  61. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qe-requirements-validation/scripts/validate-config.json +37 -0
  62. package/templates/.claude/skills/feature-adr/references/agentic-qe/{regression-testing.md → qe-ref-regression-testing/REFERENCE.md} +30 -49
  63. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-regression-testing/evals/regression-testing.yaml +504 -0
  64. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-regression-testing/schemas/output.json +311 -0
  65. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-regression-testing/scripts/validate-config.json +50 -0
  66. package/templates/.claude/skills/feature-adr/references/agentic-qe/{risk-based-testing.md → qe-ref-risk-based-testing/REFERENCE.md} +23 -52
  67. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-risk-based-testing/evals/risk-based-testing.yaml +141 -0
  68. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-risk-based-testing/schemas/output.json +480 -0
  69. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-risk-based-testing/scripts/validate-config.json +25 -0
  70. package/templates/.claude/skills/feature-adr/references/agentic-qe/{shift-left-testing.md → qe-ref-shift-left-testing/REFERENCE.md} +33 -88
  71. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-shift-left-testing/evals/shift-left-testing.yaml +145 -0
  72. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-shift-left-testing/schemas/output.json +459 -0
  73. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-shift-left-testing/scripts/validate-config.json +25 -0
  74. package/templates/CLAUDE.md +3 -1
  75. package/templates/docs/feature-adr/04-admin-guide.md +1 -1
  76. package/templates/docs/improvement-directions.md +3 -3
  77. package/templates/docs/keysarium/02-admin-guide.md +2 -2
  78. package/templates/docs/keysarium/03-user-guide.md +3 -3
  79. package/templates/docs/keysarium/05-architecture.md +9 -8
  80. package/templates/docs/keysarium/06-user-flows.md +4 -4
  81. package/templates/lib/platform-templates/copilot.md +1 -1
  82. package/templates/lib/platform-templates/opencode.md +1 -1
  83. package/templates/.claude/skills/feature-adr/references/agentic-qe/enterprise-integration-testing.md +0 -111
  84. package/templates/.claude/skills/feature-adr/references/agentic-qe/qcsd-ideation-swarm.md +0 -126
@@ -0,0 +1,480 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://agentic-qe.dev/schemas/risk-based-testing-output.json",
4
+ "title": "AQE Risk-Based Testing Skill Output Schema",
5
+ "description": "Schema for risk-based-testing skill output validation. Extends the base skill-output template with risk matrix, prioritization, and test allocation.",
6
+ "type": "object",
7
+ "required": ["skillName", "version", "timestamp", "status", "trustTier", "output"],
8
+ "properties": {
9
+ "skillName": {
10
+ "type": "string",
11
+ "const": "risk-based-testing",
12
+ "description": "Must be 'risk-based-testing'"
13
+ },
14
+ "version": {
15
+ "type": "string",
16
+ "pattern": "^\\d+\\.\\d+\\.\\d+(-[a-zA-Z0-9]+)?$"
17
+ },
18
+ "timestamp": {
19
+ "type": "string",
20
+ "format": "date-time"
21
+ },
22
+ "status": {
23
+ "type": "string",
24
+ "enum": ["success", "partial", "failed", "skipped"]
25
+ },
26
+ "trustTier": {
27
+ "type": "integer",
28
+ "const": 3
29
+ },
30
+ "output": {
31
+ "type": "object",
32
+ "required": ["summary", "riskMatrix", "prioritization", "findings", "recommendations"],
33
+ "properties": {
34
+ "summary": {
35
+ "type": "string",
36
+ "minLength": 50,
37
+ "maxLength": 2000,
38
+ "description": "Human-readable summary of risk assessment"
39
+ },
40
+ "score": {
41
+ "$ref": "#/$defs/riskScore"
42
+ },
43
+ "riskMatrix": {
44
+ "$ref": "#/$defs/riskMatrix",
45
+ "description": "Complete risk assessment matrix"
46
+ },
47
+ "prioritization": {
48
+ "$ref": "#/$defs/prioritization",
49
+ "description": "Test prioritization based on risk"
50
+ },
51
+ "testAllocation": {
52
+ "$ref": "#/$defs/testAllocation",
53
+ "description": "Recommended test effort allocation"
54
+ },
55
+ "findings": {
56
+ "type": "array",
57
+ "items": {
58
+ "$ref": "#/$defs/riskFinding"
59
+ },
60
+ "maxItems": 200
61
+ },
62
+ "recommendations": {
63
+ "type": "array",
64
+ "items": {
65
+ "$ref": "#/$defs/riskRecommendation"
66
+ },
67
+ "maxItems": 50
68
+ },
69
+ "mlAnalysis": {
70
+ "$ref": "#/$defs/mlRiskAnalysis",
71
+ "description": "ML-enhanced risk prediction"
72
+ },
73
+ "metrics": {
74
+ "$ref": "#/$defs/riskMetrics"
75
+ },
76
+ "artifacts": {
77
+ "type": "array",
78
+ "items": {
79
+ "$ref": "#/$defs/artifact"
80
+ },
81
+ "maxItems": 50
82
+ }
83
+ }
84
+ },
85
+ "metadata": {
86
+ "$ref": "#/$defs/metadata"
87
+ },
88
+ "validation": {
89
+ "$ref": "#/$defs/validationResult"
90
+ },
91
+ "learning": {
92
+ "$ref": "#/$defs/learningData"
93
+ }
94
+ },
95
+ "$defs": {
96
+ "riskScore": {
97
+ "type": "object",
98
+ "required": ["value", "max"],
99
+ "properties": {
100
+ "value": {
101
+ "type": "number",
102
+ "minimum": 0,
103
+ "maximum": 100,
104
+ "description": "Overall risk mitigation score (100=all risks addressed)"
105
+ },
106
+ "max": {
107
+ "type": "number",
108
+ "const": 100
109
+ },
110
+ "grade": {
111
+ "type": "string",
112
+ "pattern": "^[A-F][+-]?$"
113
+ },
114
+ "riskPosture": {
115
+ "type": "string",
116
+ "enum": ["critical", "high", "moderate", "low", "minimal"],
117
+ "description": "Overall risk posture"
118
+ }
119
+ }
120
+ },
121
+ "riskMatrix": {
122
+ "type": "object",
123
+ "required": ["items"],
124
+ "properties": {
125
+ "items": {
126
+ "type": "array",
127
+ "items": {
128
+ "type": "object",
129
+ "required": ["id", "feature", "probability", "impact", "riskScore", "priority"],
130
+ "properties": {
131
+ "id": {
132
+ "type": "string",
133
+ "pattern": "^RISK-\\d{3,6}$"
134
+ },
135
+ "feature": {
136
+ "type": "string",
137
+ "description": "Feature or component name"
138
+ },
139
+ "description": {
140
+ "type": "string",
141
+ "description": "Risk description"
142
+ },
143
+ "probability": {
144
+ "type": "integer",
145
+ "minimum": 1,
146
+ "maximum": 5,
147
+ "description": "Probability of defect (1-5)"
148
+ },
149
+ "impact": {
150
+ "type": "integer",
151
+ "minimum": 1,
152
+ "maximum": 5,
153
+ "description": "Business impact if defect occurs (1-5)"
154
+ },
155
+ "riskScore": {
156
+ "type": "integer",
157
+ "minimum": 1,
158
+ "maximum": 25,
159
+ "description": "Calculated risk score (probability x impact)"
160
+ },
161
+ "priority": {
162
+ "type": "string",
163
+ "enum": ["critical", "high", "medium", "low"],
164
+ "description": "Testing priority based on risk"
165
+ },
166
+ "probabilityFactors": {
167
+ "type": "array",
168
+ "items": {
169
+ "type": "object",
170
+ "properties": {
171
+ "factor": {
172
+ "type": "string",
173
+ "enum": ["complexity", "change-rate", "developer-experience", "technical-debt", "dependencies", "age"]
174
+ },
175
+ "score": {
176
+ "type": "integer",
177
+ "minimum": 1,
178
+ "maximum": 5
179
+ },
180
+ "evidence": {
181
+ "type": "string"
182
+ }
183
+ }
184
+ },
185
+ "description": "Factors contributing to probability"
186
+ },
187
+ "impactFactors": {
188
+ "type": "array",
189
+ "items": {
190
+ "type": "object",
191
+ "properties": {
192
+ "factor": {
193
+ "type": "string",
194
+ "enum": ["users-affected", "revenue", "safety", "reputation", "regulatory", "data-loss"]
195
+ },
196
+ "score": {
197
+ "type": "integer",
198
+ "minimum": 1,
199
+ "maximum": 5
200
+ },
201
+ "evidence": {
202
+ "type": "string"
203
+ }
204
+ }
205
+ },
206
+ "description": "Factors contributing to impact"
207
+ },
208
+ "mitigations": {
209
+ "type": "array",
210
+ "items": {
211
+ "type": "string"
212
+ },
213
+ "description": "Risk mitigation strategies"
214
+ },
215
+ "testingStrategy": {
216
+ "type": "string",
217
+ "enum": ["comprehensive", "thorough", "standard", "smoke"],
218
+ "description": "Recommended testing depth"
219
+ }
220
+ }
221
+ }
222
+ },
223
+ "criticalCount": {
224
+ "type": "integer",
225
+ "description": "Number of critical-priority risks"
226
+ },
227
+ "highCount": {
228
+ "type": "integer",
229
+ "description": "Number of high-priority risks"
230
+ },
231
+ "mediumCount": {
232
+ "type": "integer",
233
+ "description": "Number of medium-priority risks"
234
+ },
235
+ "lowCount": {
236
+ "type": "integer",
237
+ "description": "Number of low-priority risks"
238
+ }
239
+ }
240
+ },
241
+ "prioritization": {
242
+ "type": "object",
243
+ "properties": {
244
+ "critical": {
245
+ "type": "array",
246
+ "items": {
247
+ "type": "string"
248
+ },
249
+ "description": "Features requiring comprehensive testing"
250
+ },
251
+ "high": {
252
+ "type": "array",
253
+ "items": {
254
+ "type": "string"
255
+ },
256
+ "description": "Features requiring thorough testing"
257
+ },
258
+ "medium": {
259
+ "type": "array",
260
+ "items": {
261
+ "type": "string"
262
+ },
263
+ "description": "Features requiring standard testing"
264
+ },
265
+ "low": {
266
+ "type": "array",
267
+ "items": {
268
+ "type": "string"
269
+ },
270
+ "description": "Features requiring smoke testing"
271
+ },
272
+ "testOrder": {
273
+ "type": "array",
274
+ "items": {
275
+ "type": "object",
276
+ "properties": {
277
+ "order": { "type": "integer" },
278
+ "feature": { "type": "string" },
279
+ "rationale": { "type": "string" }
280
+ }
281
+ },
282
+ "description": "Recommended test execution order"
283
+ }
284
+ }
285
+ },
286
+ "testAllocation": {
287
+ "type": "object",
288
+ "properties": {
289
+ "totalEffort": {
290
+ "type": "string",
291
+ "description": "Total estimated testing effort"
292
+ },
293
+ "criticalAllocation": {
294
+ "type": "object",
295
+ "properties": {
296
+ "percentage": { "type": "number" },
297
+ "techniques": { "type": "array", "items": { "type": "string" } },
298
+ "estimatedTime": { "type": "string" }
299
+ }
300
+ },
301
+ "highAllocation": {
302
+ "type": "object",
303
+ "properties": {
304
+ "percentage": { "type": "number" },
305
+ "techniques": { "type": "array", "items": { "type": "string" } },
306
+ "estimatedTime": { "type": "string" }
307
+ }
308
+ },
309
+ "mediumAllocation": {
310
+ "type": "object",
311
+ "properties": {
312
+ "percentage": { "type": "number" },
313
+ "techniques": { "type": "array", "items": { "type": "string" } },
314
+ "estimatedTime": { "type": "string" }
315
+ }
316
+ },
317
+ "lowAllocation": {
318
+ "type": "object",
319
+ "properties": {
320
+ "percentage": { "type": "number" },
321
+ "techniques": { "type": "array", "items": { "type": "string" } },
322
+ "estimatedTime": { "type": "string" }
323
+ }
324
+ },
325
+ "recommendedDistribution": {
326
+ "type": "object",
327
+ "properties": {
328
+ "critical": { "type": "number", "default": 60 },
329
+ "high": { "type": "number", "default": 25 },
330
+ "medium": { "type": "number", "default": 10 },
331
+ "low": { "type": "number", "default": 5 }
332
+ },
333
+ "description": "Recommended effort distribution percentages"
334
+ }
335
+ }
336
+ },
337
+ "riskFinding": {
338
+ "type": "object",
339
+ "required": ["id", "title", "type", "severity"],
340
+ "properties": {
341
+ "id": {
342
+ "type": "string",
343
+ "pattern": "^RBT-\\d{3,6}$"
344
+ },
345
+ "title": {
346
+ "type": "string",
347
+ "minLength": 10,
348
+ "maxLength": 200
349
+ },
350
+ "description": { "type": "string" },
351
+ "type": {
352
+ "type": "string",
353
+ "enum": ["unmitigated-risk", "coverage-gap", "incorrect-priority", "missing-assessment", "outdated-risk", "opportunity"]
354
+ },
355
+ "severity": {
356
+ "type": "string",
357
+ "enum": ["critical", "high", "medium", "low", "info"]
358
+ },
359
+ "affectedRisk": {
360
+ "type": "string",
361
+ "description": "Which risk item this finding affects"
362
+ }
363
+ }
364
+ },
365
+ "riskRecommendation": {
366
+ "type": "object",
367
+ "required": ["id", "title", "priority", "riskReduction"],
368
+ "properties": {
369
+ "id": {
370
+ "type": "string",
371
+ "pattern": "^REC-\\d{3,6}$"
372
+ },
373
+ "title": { "type": "string" },
374
+ "description": { "type": "string" },
375
+ "priority": {
376
+ "type": "string",
377
+ "enum": ["critical", "high", "medium", "low"]
378
+ },
379
+ "riskReduction": {
380
+ "type": "number",
381
+ "minimum": 0,
382
+ "maximum": 100,
383
+ "description": "Expected percentage reduction in risk"
384
+ },
385
+ "effort": {
386
+ "type": "string",
387
+ "enum": ["trivial", "low", "medium", "high", "major"]
388
+ },
389
+ "affectedRisks": {
390
+ "type": "array",
391
+ "items": { "type": "string" },
392
+ "description": "Risk IDs this addresses"
393
+ }
394
+ }
395
+ },
396
+ "mlRiskAnalysis": {
397
+ "type": "object",
398
+ "properties": {
399
+ "model": {
400
+ "type": "string",
401
+ "description": "ML model used"
402
+ },
403
+ "accuracy": {
404
+ "type": "number",
405
+ "minimum": 0,
406
+ "maximum": 100,
407
+ "description": "Model accuracy percentage"
408
+ },
409
+ "predictions": {
410
+ "type": "array",
411
+ "items": {
412
+ "type": "object",
413
+ "properties": {
414
+ "feature": { "type": "string" },
415
+ "predictedRisk": { "type": "number" },
416
+ "confidence": { "type": "number" },
417
+ "factors": { "type": "array", "items": { "type": "string" } }
418
+ }
419
+ }
420
+ },
421
+ "historicalCorrelation": {
422
+ "type": "number",
423
+ "description": "How well predictions match historical bugs"
424
+ }
425
+ }
426
+ },
427
+ "riskMetrics": {
428
+ "type": "object",
429
+ "properties": {
430
+ "totalRisks": { "type": "integer" },
431
+ "averageRiskScore": { "type": "number" },
432
+ "maxRiskScore": { "type": "integer" },
433
+ "coverageByPriority": {
434
+ "type": "object",
435
+ "properties": {
436
+ "critical": { "type": "number" },
437
+ "high": { "type": "number" },
438
+ "medium": { "type": "number" },
439
+ "low": { "type": "number" }
440
+ }
441
+ },
442
+ "riskReductionTarget": { "type": "number" }
443
+ }
444
+ },
445
+ "artifact": {
446
+ "type": "object",
447
+ "required": ["type", "path"],
448
+ "properties": {
449
+ "type": { "type": "string" },
450
+ "path": { "type": "string" },
451
+ "format": { "type": "string" },
452
+ "description": { "type": "string" }
453
+ }
454
+ },
455
+ "metadata": {
456
+ "type": "object",
457
+ "properties": {
458
+ "executionTimeMs": { "type": "integer" },
459
+ "agentId": { "type": "string" },
460
+ "modelUsed": { "type": "string" },
461
+ "environment": { "type": "string" }
462
+ }
463
+ },
464
+ "validationResult": {
465
+ "type": "object",
466
+ "properties": {
467
+ "schemaValid": { "type": "boolean" },
468
+ "contentValid": { "type": "boolean" },
469
+ "confidence": { "type": "number" }
470
+ }
471
+ },
472
+ "learningData": {
473
+ "type": "object",
474
+ "properties": {
475
+ "patternsDetected": { "type": "array", "items": { "type": "string" } },
476
+ "reward": { "type": "number" }
477
+ }
478
+ }
479
+ }
480
+ }
@@ -0,0 +1,25 @@
1
+ {
2
+ "skillName": "risk-based-testing",
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
+ ],
14
+ "requiredNonEmptyFields": [],
15
+ "mustContainTerms": [],
16
+ "mustNotContainTerms": [],
17
+ "enumValidations": {
18
+ ".status": [
19
+ "success",
20
+ "partial",
21
+ "failed",
22
+ "skipped"
23
+ ]
24
+ }
25
+ }
@@ -16,29 +16,32 @@ validation:
16
16
  schema_path: schemas/output.json
17
17
  validator_path: scripts/validate-config.json
18
18
  eval_path: evals/shift-left-testing.yaml
19
-
20
19
  ---
21
20
 
21
+ <!-- Vendored from https://github.com/proffesor-for-testing/agentic-qe at 0a6de058575cbe292afe220df105cc74120f7674 (MIT, Copyright (c) 2025 Agentic QE Contributors), 2026-10-23. Bundled references do not install aqe, MCP tools, pattern memory, or fleet runtime. See ../LICENSE.agentic-qe and ../README.md. -->
22
+
23
+ ## Keysarium execution adapter
24
+
25
+ This pinned upstream body is methodology inside the bundled feature-ADR pipeline. In Reference Mode, the feature-ADR module that loaded this file owns orchestration and checkpoints. Use the reasoning and output shape below with the host's available tools. Do not treat upstream `aqe` CLI/MCP calls, named agent roles, browser tools, or example absolute paths as installed capabilities. Name a missing capability or evidence in the checkpoint instead of reporting that an upstream step ran. The schemas and eval files are bundled for explicit validation; bundling them does not run those checks automatically.
26
+
27
+ Relative paths such as `schemas/output.json`, `evals/...` and `steps/...` resolve from this skill directory under `references/agentic-qe/`. When Direct Mode has a separately installed `aqe` runtime, follow the feature-ADR module's direct-mode branch and verify that each required runtime capability is actually available.
28
+
29
+ <!-- BEGIN AGENTIC-QE UPSTREAM BODY -->
30
+
22
31
  # Shift-Left Testing
23
32
 
24
33
  <default_to_action>
25
34
  When implementing early testing practices:
26
35
  1. VALIDATE requirements before coding (testability, BDD scenarios)
27
- 2. WRITE tests before implementation (TDD red-green-refactor)
36
+ 2. WRITE tests before implementation (TDD)
28
37
  3. AUTOMATE in CI pipeline (every commit triggers tests)
29
- 4. FOLLOW test pyramid: Many unit (70%), some integration (20%), few E2E (10%)
30
- 5. FIX defects immediately - never let them accumulate
38
+ 4. FIX defects immediately - never let them accumulate
31
39
 
32
40
  **Quick Shift-Left Levels:**
33
41
  - Level 1: Unit tests with each PR (developer responsibility)
34
42
  - Level 2: TDD practice (tests before code)
35
43
  - Level 3: BDD/Example mapping in refinement (requirements testing)
36
44
  - Level 4: Risk analysis in design (architecture testing)
37
-
38
- **Critical Success Factors:**
39
- - Defects found in requirements cost 1x; in production cost 100x
40
- - Every commit must run automated tests
41
- - Quality is built in, not tested in
42
45
  </default_to_action>
43
46
 
44
47
  ## Quick Reference Card
@@ -49,24 +52,6 @@ When implementing early testing practices:
49
52
  - Starting TDD practice
50
53
  - Improving requirements quality
51
54
 
52
- ### Cost of Defects by Phase
53
- | Phase | Relative Cost | Example |
54
- |-------|--------------|---------|
55
- | Requirements | 1x | Fix doc: 30 min |
56
- | Design | 5x | Redesign: few hours |
57
- | Development | 10x | Code fix: 1 day |
58
- | Testing | 20x | Fix + retest: 2 days |
59
- | Production | 100x | Hotfix + rollback + investigation |
60
-
61
- ### Test Pyramid
62
- ```
63
- /\ E2E (10%) - Critical user journeys
64
- / \
65
- / \ Integration (20%) - Component interactions
66
- / \
67
- /________\ Unit (70%) - Fast, isolated, comprehensive
68
- ```
69
-
70
55
  ### Shift-Left Levels
71
56
  | Level | Practice | When |
72
57
  |-------|----------|------|
@@ -104,65 +89,6 @@ jobs:
104
89
 
105
90
  ---
106
91
 
107
- ## Level 2: TDD Practice
108
-
109
- ```javascript
110
- // Red: Write failing test first
111
- test('calculates discount for orders over $100', () => {
112
- const order = new Order([{ price: 150 }]);
113
- expect(order.discount).toBe(15); // 10% off
114
- });
115
-
116
- // Green: Minimal implementation
117
- class Order {
118
- get discount() {
119
- return this.total > 100 ? this.total * 0.1 : 0;
120
- }
121
- }
122
-
123
- // Refactor: Improve while keeping green
124
- ```
125
-
126
- ---
127
-
128
- ## Level 3: BDD in Refinement
129
-
130
- ```gherkin
131
- # Example mapping before coding
132
- Feature: Loyalty Discount
133
- Scenario: Gold member gets 15% discount
134
- Given a customer with "gold" membership
135
- When they checkout with $200 in cart
136
- Then discount applied is $30
137
- And order total is $170
138
-
139
- Scenario: New customer gets no discount
140
- Given a customer with no membership
141
- When they checkout with $200 in cart
142
- Then no discount is applied
143
- ```
144
-
145
- ---
146
-
147
- ## Level 4: Risk Analysis in Design
148
-
149
- ```typescript
150
- // During architecture review
151
- await Task("Risk Analysis", {
152
- phase: 'design',
153
- component: 'payment-service',
154
- questions: [
155
- 'What happens when payment gateway times out?',
156
- 'How do we handle duplicate submissions?',
157
- 'What if inventory changed during checkout?'
158
- ]
159
- }, "qe-requirements-validator");
160
-
161
- // Output: Testability requirements, failure mode tests
162
- ```
163
-
164
- ---
165
-
166
92
  ## Agent-Assisted Shift-Left
167
93
 
168
94
  ```typescript
@@ -226,6 +152,25 @@ const shiftLeftFleet = await FleetManager.coordinate({
226
152
 
227
153
  ## Remember
228
154
 
229
- **Earlier = Cheaper.** Requirements defects cost 1x; production defects cost 100x. Test pyramid: 70% unit, 20% integration, 10% E2E. Every commit runs tests. TDD builds quality in.
230
-
231
155
  **With Agents:** Agents validate requirements testability, generate tests from specs, and select optimal regression suites. Use agents to implement shift-left practices consistently.
156
+
157
+ ## Skill Composition
158
+
159
+ - **TDD practice** → Use `/tdd-london-chicago` for specific TDD guidance
160
+ - **Generate tests** → Use `/qe-test-generation` for AI-powered test generation
161
+ - **CI/CD quality** → Use `/cicd-pipeline-qe-orchestrator` for pipeline setup
162
+
163
+ ## Gotchas
164
+
165
+ - "Shift left" doesn't mean "only test left" — production monitoring (shift right) is still needed
166
+ - Agent generates tests before understanding requirements — tests for wrong behavior are worse than no tests
167
+ - CI pipeline tests that take >10 minutes kill the feedback loop — keep commit-stage tests under 5 minutes
168
+ - TDD discipline degrades when agent writes test+code simultaneously — enforce Red phase separation
169
+ - Shifting left without lightweight environments just shifts the bottleneck — fix environments first
170
+ <!-- END AGENTIC-QE UPSTREAM BODY -->
171
+
172
+ ## Keysarium local addition: choosing test layers
173
+
174
+ The test pyramid is a planning aid: put fast checks near pure rules, integration checks at real boundaries, and end-to-end checks around essential journeys. The proportions depend on the system; a fixed percentage or universal cost multiplier is not an acceptance criterion.
175
+
176
+ Before coding, turn an ambiguous requirement into an example with an expected result. During implementation, make the smallest useful check fail before fixing the behavior. In CI, run the checks that can catch the defect at the earliest reliable layer and keep a separate path for slower whole-system evidence.