@dzhechkov/keysarium 1.7.18 → 1.7.20

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 (55) hide show
  1. package/.dz-manifest.json +172 -32
  2. package/README.md +3 -3
  3. package/package.json +1 -1
  4. package/sbom.json +391 -41
  5. package/src/commands/init.js +10 -0
  6. package/src/commands/update.js +30 -3
  7. package/src/utils.js +6 -0
  8. package/templates/.claude/agents/code-goal-planner.md +441 -3
  9. package/templates/.claude/skills/feature-adr/SKILL.md +9 -7
  10. package/templates/.claude/skills/feature-adr/modules/06-implementation-plan.md +1 -1
  11. package/templates/.claude/skills/feature-adr/modules/09-fleet-qe.md +1 -1
  12. package/templates/.claude/skills/feature-adr/references/agentic-qe/README.md +11 -9
  13. package/templates/.claude/skills/feature-adr/references/agentic-qe/UPSTREAM-MANIFEST.json +290 -70
  14. package/templates/.claude/skills/feature-adr/references/agentic-qe/{chaos-engineering-resilience.md → qe-ref-chaos-engineering-resilience/REFERENCE.md} +13 -0
  15. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-chaos-engineering-resilience/evals/chaos-engineering-resilience.yaml +761 -0
  16. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-chaos-engineering-resilience/schemas/output.json +1205 -0
  17. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-chaos-engineering-resilience/scripts/validate-config.json +47 -0
  18. package/templates/.claude/skills/feature-adr/references/agentic-qe/{mutation-testing.md → qe-ref-mutation-testing/REFERENCE.md} +39 -1
  19. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-mutation-testing/config.json +14 -0
  20. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-mutation-testing/evals/mutation-testing.yaml +651 -0
  21. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-mutation-testing/references/mutation-operators.md +38 -0
  22. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-mutation-testing/schemas/output.json +707 -0
  23. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-mutation-testing/scripts/validate-config.json +44 -0
  24. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-mutation-testing/test-data/sample-output.json +295 -0
  25. package/templates/.claude/skills/feature-adr/references/agentic-qe/{performance-testing.md → qe-ref-performance-testing/REFERENCE.md} +35 -1
  26. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-performance-testing/config.json +18 -0
  27. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-performance-testing/evals/performance-testing.yaml +771 -0
  28. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-performance-testing/references/k6-patterns.md +72 -0
  29. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-performance-testing/schemas/output.json +1184 -0
  30. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-performance-testing/scripts/validate-config.json +55 -0
  31. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-production-swarm/REFERENCE.md +222 -0
  32. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-production-swarm/evals/qcsd-production-swarm.yaml +246 -0
  33. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-production-swarm/schemas/output.json +505 -0
  34. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-production-swarm/scripts/validate-config.json +25 -0
  35. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-production-swarm/steps/01-flag-detection.md +202 -0
  36. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-production-swarm/steps/02-core-agents.md +428 -0
  37. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-production-swarm/steps/03-batch1-results.md +101 -0
  38. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-production-swarm/steps/04-conditional-agents.md +125 -0
  39. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-production-swarm/steps/05-decision-synthesis.md +136 -0
  40. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-production-swarm/steps/06-report-generation.md +181 -0
  41. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-production-swarm/steps/07-learning-persistence.md +157 -0
  42. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-production-swarm/steps/08-feedback-loop.md +122 -0
  43. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-production-swarm/steps/09-final-output.md +140 -0
  44. package/templates/.claude/skills/feature-adr/references/agentic-qe/{security-testing.md → qe-ref-security-testing/REFERENCE.md} +44 -1
  45. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-security-testing/config.json +13 -0
  46. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-security-testing/evals/security-testing.yaml +789 -0
  47. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-security-testing/references/compliance-agent-commands.md +131 -0
  48. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-security-testing/references/owasp-top-10.md +66 -0
  49. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-security-testing/schemas/output.json +879 -0
  50. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-security-testing/scripts/validate-config.json +45 -0
  51. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-security-testing/templates/security-report.md +44 -0
  52. package/templates/.claude/skills/feature-adr/references/agentic-qe/{tdd-london-chicago.md → qe-ref-tdd-london-chicago/REFERENCE.md} +21 -1
  53. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-tdd-london-chicago/schemas/output.json +444 -0
  54. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-tdd-london-chicago/scripts/validate-config.json +43 -0
  55. package/templates/.claude/skills/feature-adr/references/agentic-qe/qcsd-production-swarm.md +0 -108
@@ -0,0 +1,45 @@
1
+ {
2
+ "skillName": "security-testing",
3
+ "skillVersion": "1.0.0",
4
+ "requiredTools": [
5
+ "jq"
6
+ ],
7
+ "optionalTools": [
8
+ "npm",
9
+ "semgrep",
10
+ "trivy",
11
+ "ajv",
12
+ "jsonschema",
13
+ "python3"
14
+ ],
15
+ "schemaPath": "schemas/output.json",
16
+ "requiredFields": [
17
+ "skillName",
18
+ "status",
19
+ "output",
20
+ "output.summary",
21
+ "output.findings",
22
+ "output.owaspCategories"
23
+ ],
24
+ "requiredNonEmptyFields": [
25
+ "output.summary"
26
+ ],
27
+ "mustContainTerms": [
28
+ "OWASP",
29
+ "security",
30
+ "vulnerability"
31
+ ],
32
+ "mustNotContainTerms": [
33
+ "TODO",
34
+ "placeholder",
35
+ "FIXME"
36
+ ],
37
+ "enumValidations": {
38
+ ".status": [
39
+ "success",
40
+ "partial",
41
+ "failed",
42
+ "skipped"
43
+ ]
44
+ }
45
+ }
@@ -0,0 +1,44 @@
1
+ # Security Assessment Report
2
+
3
+ **Project**: {{project_name}}
4
+ **Date**: {{date}}
5
+ **Assessed by**: {{assessor}}
6
+ **Scope**: {{scope_description}}
7
+
8
+ ## Executive Summary
9
+
10
+ | Severity | Count | Fixed | Remaining |
11
+ |----------|-------|-------|-----------|
12
+ | Critical | | | |
13
+ | High | | | |
14
+ | Medium | | | |
15
+ | Low | | | |
16
+ | Info | | | |
17
+
18
+ **Overall Risk Level**: {{risk_level}}
19
+ **Recommendation**: {{ship/hold/remediate}}
20
+
21
+ ## Findings
22
+
23
+ ### Finding 1: {{title}}
24
+ - **Severity**: {{critical/high/medium/low}}
25
+ - **OWASP Category**: {{A01-A10}}
26
+ - **Location**: {{file:line or endpoint}}
27
+ - **Description**: {{what was found}}
28
+ - **Impact**: {{what an attacker could do}}
29
+ - **Reproduction**:
30
+ 1. {{step 1}}
31
+ 2. {{step 2}}
32
+ - **Remediation**: {{how to fix}}
33
+ - **Status**: {{open/fixed/accepted}}
34
+
35
+ ## Tools Used
36
+ - [ ] npm audit
37
+ - [ ] Semgrep SAST
38
+ - [ ] OWASP ZAP DAST
39
+ - [ ] Manual review
40
+ - [ ] Secrets scanning
41
+
42
+ ## Sign-off
43
+ - [ ] All critical/high findings addressed or accepted with risk justification
44
+ - [ ] Remediation verified with re-test
@@ -15,9 +15,20 @@ trust_tier: 2
15
15
  validation:
16
16
  schema_path: schemas/output.json
17
17
  validator_path: scripts/validate-config.json
18
-
19
18
  ---
20
19
 
20
+ <!-- Vendored from https://github.com/proffesor-for-testing/agentic-qe at 0a6de058575cbe292afe220df105cc74120f7674 (MIT, Copyright (c) 2025 Agentic QE Contributors), 2026-10-24. Bundled references do not install aqe, MCP tools, pattern memory, or fleet runtime. See ../LICENSE.agentic-qe and ../README.md. -->
21
+
22
+ ## Keysarium execution adapter
23
+
24
+ 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.
25
+
26
+ Relative paths such as `schemas/output.json`, `evals/...` and `steps/...` resolve from this skill directory under `references/agentic-qe/`. Direct Extended Mode still requires a separately installed `aqe` runtime; verify each required runtime capability before using it.
27
+
28
+ The upstream `run-history.json` is execution history, not a reference contract, and is intentionally omitted. Do not run an upstream example that reads or writes it unless an installed aqe runtime supplies its own history.
29
+
30
+ <!-- BEGIN AGENTIC-QE UPSTREAM BODY -->
31
+
21
32
  # Test-Driven Development: London & Chicago Schools
22
33
 
23
34
  <default_to_action>
@@ -247,3 +258,12 @@ const tddFleet = await FleetManager.coordinate({
247
258
  Neither is "right." Choose based on context. Mix as needed. Goal: well-designed, tested code.
248
259
 
249
260
  **With Agents:** Agents excel at generating tests, validating green phase, and suggesting refactorings. Use agents to maintain TDD discipline while humans focus on design decisions.
261
+
262
+ ## Gotchas
263
+
264
+ - Agent skips Red phase and writes test + implementation together — enforce "test must fail first" by running test before writing code
265
+ - London school over-mocking creates brittle tests that break on any refactor — mock at architectural boundaries, not every function
266
+ - Chicago school tests become slow as integration scope grows — keep test boundaries tight
267
+ - Agent defaults to jest.mock() for everything — prefer dependency injection for testability
268
+ - Refactor phase is where agent cuts corners most — verify no behavior changes by checking test output is identical
269
+ <!-- END AGENTIC-QE UPSTREAM BODY -->
@@ -0,0 +1,444 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://agentic-qe.dev/schemas/tdd-london-chicago-output.json",
4
+ "title": "TDD London & Chicago Schools Skill Output Schema",
5
+ "description": "Schema for TDD skill output with red-green-refactor cycles, test-first metrics, and approach comparison.",
6
+ "type": "object",
7
+ "required": ["skillName", "version", "timestamp", "status", "trustTier", "output"],
8
+ "properties": {
9
+ "skillName": {
10
+ "type": "string",
11
+ "const": "tdd-london-chicago",
12
+ "description": "Must be 'tdd-london-chicago'"
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
+ "minimum": 0,
29
+ "maximum": 3
30
+ },
31
+ "output": {
32
+ "type": "object",
33
+ "required": ["summary", "tddCycles", "approach"],
34
+ "properties": {
35
+ "summary": {
36
+ "type": "string",
37
+ "minLength": 50,
38
+ "maxLength": 2000
39
+ },
40
+ "tddCycles": {
41
+ "$ref": "#/$defs/tddCycles"
42
+ },
43
+ "approach": {
44
+ "$ref": "#/$defs/tddApproach"
45
+ },
46
+ "testMetrics": {
47
+ "$ref": "#/$defs/testMetrics"
48
+ },
49
+ "codeQuality": {
50
+ "$ref": "#/$defs/codeQuality"
51
+ },
52
+ "findings": {
53
+ "type": "array",
54
+ "items": {
55
+ "$ref": "#/$defs/finding"
56
+ },
57
+ "maxItems": 100
58
+ },
59
+ "recommendations": {
60
+ "type": "array",
61
+ "items": {
62
+ "$ref": "#/$defs/recommendation"
63
+ },
64
+ "maxItems": 50
65
+ },
66
+ "artifacts": {
67
+ "type": "array",
68
+ "items": {
69
+ "$ref": "#/$defs/artifact"
70
+ }
71
+ }
72
+ }
73
+ },
74
+ "metadata": {
75
+ "$ref": "#/$defs/metadata"
76
+ },
77
+ "validation": {
78
+ "$ref": "#/$defs/validationResult"
79
+ },
80
+ "learning": {
81
+ "$ref": "#/$defs/learningData"
82
+ }
83
+ },
84
+ "$defs": {
85
+ "tddCycles": {
86
+ "type": "object",
87
+ "required": ["totalCycles", "completedCycles"],
88
+ "properties": {
89
+ "totalCycles": {
90
+ "type": "integer",
91
+ "minimum": 0,
92
+ "description": "Total red-green-refactor cycles"
93
+ },
94
+ "completedCycles": {
95
+ "type": "integer",
96
+ "minimum": 0,
97
+ "description": "Successfully completed cycles"
98
+ },
99
+ "redPhases": {
100
+ "type": "integer",
101
+ "minimum": 0,
102
+ "description": "Number of red phases (failing tests)"
103
+ },
104
+ "greenPhases": {
105
+ "type": "integer",
106
+ "minimum": 0,
107
+ "description": "Number of green phases (passing tests)"
108
+ },
109
+ "refactorPhases": {
110
+ "type": "integer",
111
+ "minimum": 0,
112
+ "description": "Number of refactor phases"
113
+ },
114
+ "averageCycleDuration": {
115
+ "type": "number",
116
+ "minimum": 0,
117
+ "description": "Average cycle duration in milliseconds"
118
+ },
119
+ "cycleDetails": {
120
+ "type": "array",
121
+ "items": {
122
+ "type": "object",
123
+ "properties": {
124
+ "cycleNumber": {
125
+ "type": "integer",
126
+ "minimum": 1
127
+ },
128
+ "phase": {
129
+ "type": "string",
130
+ "enum": ["red", "green", "refactor"]
131
+ },
132
+ "duration": {
133
+ "type": "integer",
134
+ "minimum": 0
135
+ },
136
+ "testsWritten": {
137
+ "type": "integer",
138
+ "minimum": 0
139
+ },
140
+ "codeChanges": {
141
+ "type": "integer",
142
+ "minimum": 0
143
+ },
144
+ "status": {
145
+ "type": "string",
146
+ "enum": ["completed", "in-progress", "failed", "skipped"]
147
+ }
148
+ }
149
+ }
150
+ },
151
+ "testFirstRatio": {
152
+ "type": "number",
153
+ "minimum": 0,
154
+ "maximum": 100,
155
+ "description": "Percentage of tests written before implementation"
156
+ }
157
+ }
158
+ },
159
+ "tddApproach": {
160
+ "type": "object",
161
+ "required": ["school", "justification"],
162
+ "properties": {
163
+ "school": {
164
+ "type": "string",
165
+ "enum": ["london", "chicago", "hybrid"],
166
+ "description": "TDD school used"
167
+ },
168
+ "justification": {
169
+ "type": "string",
170
+ "maxLength": 1000,
171
+ "description": "Why this approach was chosen"
172
+ },
173
+ "londonMetrics": {
174
+ "type": "object",
175
+ "properties": {
176
+ "mockCount": {
177
+ "type": "integer",
178
+ "minimum": 0
179
+ },
180
+ "stubCount": {
181
+ "type": "integer",
182
+ "minimum": 0
183
+ },
184
+ "isolationLevel": {
185
+ "type": "string",
186
+ "enum": ["full", "partial", "minimal"]
187
+ },
188
+ "outsideInScore": {
189
+ "type": "number",
190
+ "minimum": 0,
191
+ "maximum": 100
192
+ }
193
+ }
194
+ },
195
+ "chicagoMetrics": {
196
+ "type": "object",
197
+ "properties": {
198
+ "integrationTests": {
199
+ "type": "integer",
200
+ "minimum": 0
201
+ },
202
+ "realCollaborators": {
203
+ "type": "integer",
204
+ "minimum": 0
205
+ },
206
+ "triangulation": {
207
+ "type": "boolean"
208
+ },
209
+ "insideOutScore": {
210
+ "type": "number",
211
+ "minimum": 0,
212
+ "maximum": 100
213
+ }
214
+ }
215
+ },
216
+ "comparison": {
217
+ "type": "object",
218
+ "properties": {
219
+ "testMaintainability": {
220
+ "type": "string",
221
+ "enum": ["london-better", "chicago-better", "equal"]
222
+ },
223
+ "designFeedback": {
224
+ "type": "string",
225
+ "enum": ["london-better", "chicago-better", "equal"]
226
+ },
227
+ "refactoringEase": {
228
+ "type": "string",
229
+ "enum": ["london-better", "chicago-better", "equal"]
230
+ }
231
+ }
232
+ }
233
+ }
234
+ },
235
+ "testMetrics": {
236
+ "type": "object",
237
+ "properties": {
238
+ "totalTests": {
239
+ "type": "integer",
240
+ "minimum": 0
241
+ },
242
+ "unitTests": {
243
+ "type": "integer",
244
+ "minimum": 0
245
+ },
246
+ "integrationTests": {
247
+ "type": "integer",
248
+ "minimum": 0
249
+ },
250
+ "passing": {
251
+ "type": "integer",
252
+ "minimum": 0
253
+ },
254
+ "failing": {
255
+ "type": "integer",
256
+ "minimum": 0
257
+ },
258
+ "coverage": {
259
+ "type": "number",
260
+ "minimum": 0,
261
+ "maximum": 100
262
+ },
263
+ "branchCoverage": {
264
+ "type": "number",
265
+ "minimum": 0,
266
+ "maximum": 100
267
+ },
268
+ "mutationScore": {
269
+ "type": "number",
270
+ "minimum": 0,
271
+ "maximum": 100
272
+ },
273
+ "testExecutionTime": {
274
+ "type": "integer",
275
+ "minimum": 0
276
+ }
277
+ }
278
+ },
279
+ "codeQuality": {
280
+ "type": "object",
281
+ "properties": {
282
+ "qualityScore": {
283
+ "type": "number",
284
+ "minimum": 0,
285
+ "maximum": 100
286
+ },
287
+ "cyclomaticComplexity": {
288
+ "type": "number",
289
+ "minimum": 0
290
+ },
291
+ "linesOfCode": {
292
+ "type": "integer",
293
+ "minimum": 0
294
+ },
295
+ "testToCodeRatio": {
296
+ "type": "number",
297
+ "minimum": 0
298
+ },
299
+ "duplications": {
300
+ "type": "number",
301
+ "minimum": 0,
302
+ "maximum": 100
303
+ },
304
+ "designPatterns": {
305
+ "type": "array",
306
+ "items": {
307
+ "type": "string"
308
+ }
309
+ }
310
+ }
311
+ },
312
+ "finding": {
313
+ "type": "object",
314
+ "required": ["id", "title", "severity", "category"],
315
+ "properties": {
316
+ "id": {
317
+ "type": "string",
318
+ "pattern": "^TDD-\\d{3,6}$"
319
+ },
320
+ "title": {
321
+ "type": "string",
322
+ "minLength": 10,
323
+ "maxLength": 200
324
+ },
325
+ "description": {
326
+ "type": "string",
327
+ "maxLength": 2000
328
+ },
329
+ "severity": {
330
+ "type": "string",
331
+ "enum": ["critical", "high", "medium", "low", "info"]
332
+ },
333
+ "category": {
334
+ "type": "string",
335
+ "enum": ["cycle", "coverage", "design", "mocking", "isolation", "refactoring"]
336
+ },
337
+ "phase": {
338
+ "type": "string",
339
+ "enum": ["red", "green", "refactor"]
340
+ },
341
+ "remediation": {
342
+ "type": "string"
343
+ }
344
+ }
345
+ },
346
+ "recommendation": {
347
+ "type": "object",
348
+ "required": ["id", "title", "priority"],
349
+ "properties": {
350
+ "id": {
351
+ "type": "string",
352
+ "pattern": "^REC-\\d{3,6}$"
353
+ },
354
+ "title": {
355
+ "type": "string"
356
+ },
357
+ "description": {
358
+ "type": "string"
359
+ },
360
+ "priority": {
361
+ "type": "string",
362
+ "enum": ["critical", "high", "medium", "low"]
363
+ },
364
+ "effort": {
365
+ "type": "string",
366
+ "enum": ["trivial", "low", "medium", "high", "major"]
367
+ },
368
+ "school": {
369
+ "type": "string",
370
+ "enum": ["london", "chicago", "both"]
371
+ }
372
+ }
373
+ },
374
+ "artifact": {
375
+ "type": "object",
376
+ "required": ["type", "path"],
377
+ "properties": {
378
+ "type": {
379
+ "type": "string",
380
+ "enum": ["test", "report", "coverage", "code"]
381
+ },
382
+ "path": {
383
+ "type": "string"
384
+ },
385
+ "format": {
386
+ "type": "string"
387
+ }
388
+ }
389
+ },
390
+ "metadata": {
391
+ "type": "object",
392
+ "properties": {
393
+ "executionTimeMs": {
394
+ "type": "integer",
395
+ "minimum": 0
396
+ },
397
+ "toolsUsed": {
398
+ "type": "array",
399
+ "items": {
400
+ "type": "string"
401
+ }
402
+ },
403
+ "agentId": {
404
+ "type": "string"
405
+ },
406
+ "testFramework": {
407
+ "type": "string"
408
+ }
409
+ }
410
+ },
411
+ "validationResult": {
412
+ "type": "object",
413
+ "properties": {
414
+ "schemaValid": {
415
+ "type": "boolean"
416
+ },
417
+ "contentValid": {
418
+ "type": "boolean"
419
+ },
420
+ "confidence": {
421
+ "type": "number",
422
+ "minimum": 0,
423
+ "maximum": 1
424
+ }
425
+ }
426
+ },
427
+ "learningData": {
428
+ "type": "object",
429
+ "properties": {
430
+ "patternsDetected": {
431
+ "type": "array",
432
+ "items": {
433
+ "type": "string"
434
+ }
435
+ },
436
+ "reward": {
437
+ "type": "number",
438
+ "minimum": 0,
439
+ "maximum": 1
440
+ }
441
+ }
442
+ }
443
+ }
444
+ }
@@ -0,0 +1,43 @@
1
+ {
2
+ "skillName": "tdd-london-chicago",
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.tddCycles",
15
+ "output.approach"
16
+ ],
17
+ "requiredNonEmptyFields": [],
18
+ "mustContainTerms": [
19
+ "tdd",
20
+ "test",
21
+ "red",
22
+ "green",
23
+ "refactor"
24
+ ],
25
+ "mustNotContainTerms": [
26
+ "TODO",
27
+ "FIXME",
28
+ "placeholder"
29
+ ],
30
+ "enumValidations": {
31
+ ".status": [
32
+ "success",
33
+ "partial",
34
+ "failed",
35
+ "skipped"
36
+ ],
37
+ ".output.approach.school": [
38
+ "london",
39
+ "chicago",
40
+ "hybrid"
41
+ ]
42
+ }
43
+ }