@dzhechkov/keysarium 1.7.15 → 1.7.19

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 (83) hide show
  1. package/.dz-manifest.json +214 -54
  2. package/README.md +29 -6
  3. package/README.ru.md +17 -0
  4. package/package.json +3 -3
  5. package/sbom.json +455 -55
  6. package/src/cli.js +32 -2
  7. package/src/commands/doctor.js +25 -1
  8. package/src/commands/init.js +56 -12
  9. package/src/commands/update.js +30 -3
  10. package/src/utils.js +7 -0
  11. package/templates/.agents/skills/casarium/SKILL.md +29 -0
  12. package/templates/.claude/agents/code-goal-planner.md +447 -0
  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/feature-adr/SKILL.md +17 -15
  21. package/templates/.claude/skills/feature-adr/modules/03-adr.md +1 -1
  22. package/templates/.claude/skills/feature-adr/modules/03.5-ideation-swarm.md +1 -1
  23. package/templates/.claude/skills/feature-adr/modules/06-implementation-plan.md +2 -2
  24. package/templates/.claude/skills/feature-adr/modules/08-qe.md +1 -1
  25. package/templates/.claude/skills/feature-adr/modules/09-fleet-qe.md +12 -12
  26. package/templates/.claude/skills/feature-adr/references/agentic-qe/LICENSE.agentic-qe +21 -0
  27. package/templates/.claude/skills/feature-adr/references/agentic-qe/README.md +20 -16
  28. package/templates/.claude/skills/feature-adr/references/agentic-qe/UPSTREAM-MANIFEST.json +246 -0
  29. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-brutal-honesty-review/README.md +218 -0
  30. package/templates/.claude/skills/feature-adr/references/agentic-qe/{brutal-honesty-review.md → qe-ref-brutal-honesty-review/REFERENCE.md} +14 -1
  31. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-brutal-honesty-review/resources/assessment-rubrics.md +295 -0
  32. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-brutal-honesty-review/resources/review-template.md +102 -0
  33. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-brutal-honesty-review/schemas/output.json +291 -0
  34. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-brutal-honesty-review/scripts/assess-code.sh +179 -0
  35. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-brutal-honesty-review/scripts/assess-tests.sh +223 -0
  36. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-brutal-honesty-review/scripts/validate-config.json +34 -0
  37. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-enterprise-integration-testing/REFERENCE.md +758 -0
  38. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-enterprise-integration-testing/evals/enterprise-integration-testing.yaml +158 -0
  39. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-enterprise-integration-testing/schemas/output.json +74 -0
  40. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-enterprise-integration-testing/scripts/validate-config.json +25 -0
  41. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-ideation-swarm/REFERENCE.md +226 -0
  42. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-ideation-swarm/evals/qcsd-ideation-swarm.yaml +138 -0
  43. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-ideation-swarm/schemas/output.json +568 -0
  44. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-ideation-swarm/scripts/validate-config.json +25 -0
  45. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-ideation-swarm/steps/01-flag-detection.md +57 -0
  46. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-ideation-swarm/steps/02-core-agents.md +29 -0
  47. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-ideation-swarm/steps/03-batch1-results.md +15 -0
  48. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-ideation-swarm/steps/04-conditional-agents.md +23 -0
  49. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-ideation-swarm/steps/05-decision-synthesis.md +29 -0
  50. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-ideation-swarm/steps/06-report-generation.md +18 -0
  51. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-ideation-swarm/steps/07-learning-persistence.md +29 -0
  52. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qcsd-ideation-swarm/steps/08-final-output.md +18 -0
  53. package/templates/.claude/skills/feature-adr/references/agentic-qe/{qe-coverage-analysis.md → qe-ref-qe-coverage-analysis/REFERENCE.md} +42 -3
  54. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qe-coverage-analysis/evals/qe-coverage-analysis.yaml +494 -0
  55. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qe-coverage-analysis/schemas/output.json +286 -0
  56. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qe-coverage-analysis/scripts/validate-config.json +42 -0
  57. package/templates/.claude/skills/feature-adr/references/agentic-qe/{qe-requirements-validation.md → qe-ref-qe-requirements-validation/REFERENCE.md} +13 -3
  58. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qe-requirements-validation/evals/qe-requirements-validation.yaml +598 -0
  59. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qe-requirements-validation/schemas/output.json +587 -0
  60. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-qe-requirements-validation/scripts/validate-config.json +37 -0
  61. package/templates/.claude/skills/feature-adr/references/agentic-qe/{regression-testing.md → qe-ref-regression-testing/REFERENCE.md} +30 -49
  62. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-regression-testing/evals/regression-testing.yaml +504 -0
  63. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-regression-testing/schemas/output.json +311 -0
  64. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-regression-testing/scripts/validate-config.json +50 -0
  65. package/templates/.claude/skills/feature-adr/references/agentic-qe/{risk-based-testing.md → qe-ref-risk-based-testing/REFERENCE.md} +23 -52
  66. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-risk-based-testing/evals/risk-based-testing.yaml +141 -0
  67. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-risk-based-testing/schemas/output.json +480 -0
  68. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-risk-based-testing/scripts/validate-config.json +25 -0
  69. package/templates/.claude/skills/feature-adr/references/agentic-qe/{shift-left-testing.md → qe-ref-shift-left-testing/REFERENCE.md} +33 -88
  70. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-shift-left-testing/evals/shift-left-testing.yaml +145 -0
  71. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-shift-left-testing/schemas/output.json +459 -0
  72. package/templates/.claude/skills/feature-adr/references/agentic-qe/qe-ref-shift-left-testing/scripts/validate-config.json +25 -0
  73. package/templates/CLAUDE.md +3 -1
  74. package/templates/docs/feature-adr/04-admin-guide.md +1 -1
  75. package/templates/docs/improvement-directions.md +3 -3
  76. package/templates/docs/keysarium/02-admin-guide.md +2 -2
  77. package/templates/docs/keysarium/03-user-guide.md +3 -3
  78. package/templates/docs/keysarium/05-architecture.md +9 -8
  79. package/templates/docs/keysarium/06-user-flows.md +4 -4
  80. package/templates/lib/platform-templates/copilot.md +1 -1
  81. package/templates/lib/platform-templates/opencode.md +1 -1
  82. package/templates/.claude/skills/feature-adr/references/agentic-qe/enterprise-integration-testing.md +0 -111
  83. package/templates/.claude/skills/feature-adr/references/agentic-qe/qcsd-ideation-swarm.md +0 -126
@@ -0,0 +1,286 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "https://agentic-qe.dev/schemas/skills/qe-coverage-analysis/output.json",
4
+ "title": "QE Coverage Analysis Skill Output Schema",
5
+ "description": "Schema for qe-coverage-analysis skill output with coverage map, gaps, and risk scores.",
6
+ "type": "object",
7
+ "required": ["skillName", "version", "timestamp", "status", "trustTier", "output"],
8
+ "properties": {
9
+ "skillName": {
10
+ "type": "string",
11
+ "const": "qe-coverage-analysis"
12
+ },
13
+ "version": {
14
+ "type": "string",
15
+ "pattern": "^\\d+\\.\\d+\\.\\d+(-[a-zA-Z0-9]+)?$"
16
+ },
17
+ "timestamp": {
18
+ "type": "string"
19
+ },
20
+ "status": {
21
+ "type": "string",
22
+ "enum": ["success", "partial", "failed", "skipped"]
23
+ },
24
+ "trustTier": {
25
+ "type": "integer",
26
+ "const": 3
27
+ },
28
+ "output": {
29
+ "type": "object",
30
+ "required": ["summary", "coverageMap", "overallCoverage"],
31
+ "properties": {
32
+ "summary": {
33
+ "type": "string",
34
+ "minLength": 50,
35
+ "maxLength": 2000,
36
+ "description": "Human-readable summary of coverage analysis"
37
+ },
38
+ "coverageMap": {
39
+ "$ref": "#/$defs/coverageMap",
40
+ "description": "Detailed coverage mapping by file/function"
41
+ },
42
+ "gaps": {
43
+ "type": "array",
44
+ "items": {
45
+ "$ref": "#/$defs/coverageGap"
46
+ },
47
+ "maxItems": 500,
48
+ "description": "Identified coverage gaps"
49
+ },
50
+ "riskScores": {
51
+ "type": "array",
52
+ "items": {
53
+ "$ref": "#/$defs/riskScore"
54
+ },
55
+ "maxItems": 200,
56
+ "description": "Risk scores for uncovered code"
57
+ },
58
+ "overallCoverage": {
59
+ "$ref": "#/$defs/overallCoverage",
60
+ "description": "Overall coverage metrics"
61
+ },
62
+ "trends": {
63
+ "$ref": "#/$defs/coverageTrends",
64
+ "description": "Coverage trends over time"
65
+ },
66
+ "findings": {
67
+ "type": "array",
68
+ "items": {
69
+ "$ref": "#/$defs/finding"
70
+ },
71
+ "maxItems": 200
72
+ },
73
+ "recommendations": {
74
+ "type": "array",
75
+ "items": {
76
+ "$ref": "#/$defs/recommendation"
77
+ },
78
+ "maxItems": 50
79
+ }
80
+ }
81
+ },
82
+ "metadata": {
83
+ "type": "object",
84
+ "properties": {
85
+ "executionTimeMs": { "type": "integer", "minimum": 0 },
86
+ "toolsUsed": { "type": "array", "items": { "type": "string" } },
87
+ "agentId": { "type": "string" },
88
+ "totalFiles": { "type": "integer", "minimum": 0 },
89
+ "totalLines": { "type": "integer", "minimum": 0 }
90
+ }
91
+ },
92
+ "validation": {
93
+ "type": "object",
94
+ "properties": {
95
+ "schemaValid": { "type": "boolean" },
96
+ "contentValid": { "type": "boolean" },
97
+ "confidence": { "type": "number", "minimum": 0, "maximum": 1 }
98
+ }
99
+ },
100
+ "learning": {
101
+ "type": "object",
102
+ "properties": {
103
+ "patternsDetected": { "type": "array", "items": { "type": "string" } },
104
+ "reward": { "type": "number", "minimum": 0, "maximum": 1 }
105
+ }
106
+ }
107
+ },
108
+ "$defs": {
109
+ "coverageMap": {
110
+ "type": "object",
111
+ "properties": {
112
+ "files": {
113
+ "type": "array",
114
+ "items": {
115
+ "$ref": "#/$defs/fileCoverage"
116
+ },
117
+ "description": "Per-file coverage data"
118
+ },
119
+ "functions": {
120
+ "type": "array",
121
+ "items": {
122
+ "$ref": "#/$defs/functionCoverage"
123
+ },
124
+ "description": "Per-function coverage data"
125
+ },
126
+ "modules": {
127
+ "type": "array",
128
+ "items": {
129
+ "$ref": "#/$defs/moduleCoverage"
130
+ },
131
+ "description": "Per-module coverage data"
132
+ }
133
+ }
134
+ },
135
+ "fileCoverage": {
136
+ "type": "object",
137
+ "required": ["path", "lineCoverage"],
138
+ "properties": {
139
+ "path": { "type": "string" },
140
+ "lineCoverage": { "type": "number", "minimum": 0, "maximum": 100 },
141
+ "branchCoverage": { "type": "number", "minimum": 0, "maximum": 100 },
142
+ "functionCoverage": { "type": "number", "minimum": 0, "maximum": 100 },
143
+ "statementCoverage": { "type": "number", "minimum": 0, "maximum": 100 },
144
+ "totalLines": { "type": "integer", "minimum": 0 },
145
+ "coveredLines": { "type": "integer", "minimum": 0 },
146
+ "uncoveredLines": { "type": "array", "items": { "type": "integer" } },
147
+ "complexity": { "type": "number", "minimum": 0 }
148
+ }
149
+ },
150
+ "functionCoverage": {
151
+ "type": "object",
152
+ "required": ["name", "file", "covered"],
153
+ "properties": {
154
+ "name": { "type": "string" },
155
+ "file": { "type": "string" },
156
+ "line": { "type": "integer", "minimum": 1 },
157
+ "covered": { "type": "boolean" },
158
+ "hitCount": { "type": "integer", "minimum": 0 },
159
+ "complexity": { "type": "number", "minimum": 0 },
160
+ "lineCoverage": { "type": "number", "minimum": 0, "maximum": 100 },
161
+ "branchCoverage": { "type": "number", "minimum": 0, "maximum": 100 }
162
+ }
163
+ },
164
+ "moduleCoverage": {
165
+ "type": "object",
166
+ "required": ["name", "lineCoverage"],
167
+ "properties": {
168
+ "name": { "type": "string" },
169
+ "path": { "type": "string" },
170
+ "lineCoverage": { "type": "number", "minimum": 0, "maximum": 100 },
171
+ "branchCoverage": { "type": "number", "minimum": 0, "maximum": 100 },
172
+ "fileCount": { "type": "integer", "minimum": 0 },
173
+ "functionCount": { "type": "integer", "minimum": 0 }
174
+ }
175
+ },
176
+ "coverageGap": {
177
+ "type": "object",
178
+ "required": ["id", "type", "location"],
179
+ "properties": {
180
+ "id": { "type": "string", "pattern": "^GAP-\\d{3,6}$" },
181
+ "type": { "type": "string", "enum": ["uncovered-function", "uncovered-branch", "uncovered-lines", "low-coverage-module", "critical-path-uncovered"] },
182
+ "location": {
183
+ "type": "object",
184
+ "properties": {
185
+ "file": { "type": "string" },
186
+ "startLine": { "type": "integer", "minimum": 1 },
187
+ "endLine": { "type": "integer", "minimum": 1 },
188
+ "function": { "type": "string" },
189
+ "module": { "type": "string" }
190
+ }
191
+ },
192
+ "severity": { "type": "string", "enum": ["critical", "high", "medium", "low"] },
193
+ "impact": { "type": "string", "maxLength": 500 },
194
+ "suggestedTest": { "type": "string", "maxLength": 2000 }
195
+ }
196
+ },
197
+ "riskScore": {
198
+ "type": "object",
199
+ "required": ["path", "score"],
200
+ "properties": {
201
+ "path": { "type": "string" },
202
+ "score": { "type": "number", "minimum": 0, "maximum": 100 },
203
+ "factors": {
204
+ "type": "array",
205
+ "items": {
206
+ "type": "object",
207
+ "properties": {
208
+ "name": { "type": "string" },
209
+ "weight": { "type": "number", "minimum": 0, "maximum": 1 },
210
+ "value": { "type": "number" }
211
+ }
212
+ }
213
+ },
214
+ "changeFrequency": { "type": "integer", "minimum": 0 },
215
+ "bugHistory": { "type": "integer", "minimum": 0 },
216
+ "complexity": { "type": "number", "minimum": 0 },
217
+ "recommendation": { "type": "string" }
218
+ }
219
+ },
220
+ "overallCoverage": {
221
+ "type": "object",
222
+ "required": ["lineCoverage"],
223
+ "properties": {
224
+ "lineCoverage": { "type": "number", "minimum": 0, "maximum": 100 },
225
+ "branchCoverage": { "type": "number", "minimum": 0, "maximum": 100 },
226
+ "functionCoverage": { "type": "number", "minimum": 0, "maximum": 100 },
227
+ "statementCoverage": { "type": "number", "minimum": 0, "maximum": 100 },
228
+ "grade": { "type": "string", "pattern": "^[A-F][+-]?$" },
229
+ "meetsThreshold": { "type": "boolean" },
230
+ "threshold": { "type": "number", "minimum": 0, "maximum": 100 },
231
+ "trend": { "type": "string", "enum": ["improving", "stable", "declining", "unknown"] }
232
+ }
233
+ },
234
+ "coverageTrends": {
235
+ "type": "object",
236
+ "properties": {
237
+ "direction": { "type": "string", "enum": ["improving", "stable", "declining"] },
238
+ "changeRate": { "type": "number", "minimum": -100, "maximum": 100 },
239
+ "history": {
240
+ "type": "array",
241
+ "items": {
242
+ "type": "object",
243
+ "properties": {
244
+ "date": { "type": "string" },
245
+ "coverage": { "type": "number" },
246
+ "commit": { "type": "string" }
247
+ }
248
+ },
249
+ "maxItems": 50
250
+ },
251
+ "projectedCoverage": { "type": "number", "minimum": 0, "maximum": 100 }
252
+ }
253
+ },
254
+ "finding": {
255
+ "type": "object",
256
+ "required": ["id", "title", "severity"],
257
+ "properties": {
258
+ "id": { "type": "string", "pattern": "^COV-\\d{3,6}$" },
259
+ "title": { "type": "string", "minLength": 5, "maxLength": 200 },
260
+ "description": { "type": "string", "maxLength": 2000 },
261
+ "severity": { "type": "string", "enum": ["critical", "high", "medium", "low", "info"] },
262
+ "category": { "type": "string", "enum": ["coverage-gap", "threshold-violation", "trend-decline", "critical-uncovered", "dead-code"] },
263
+ "location": {
264
+ "type": "object",
265
+ "properties": {
266
+ "file": { "type": "string" },
267
+ "line": { "type": "integer" }
268
+ }
269
+ },
270
+ "remediation": { "type": "string", "maxLength": 2000 }
271
+ }
272
+ },
273
+ "recommendation": {
274
+ "type": "object",
275
+ "required": ["id", "title", "priority"],
276
+ "properties": {
277
+ "id": { "type": "string", "pattern": "^REC-\\d{3,6}$" },
278
+ "title": { "type": "string", "maxLength": 200 },
279
+ "description": { "type": "string", "maxLength": 2000 },
280
+ "priority": { "type": "string", "enum": ["critical", "high", "medium", "low"] },
281
+ "effort": { "type": "string", "enum": ["trivial", "low", "medium", "high", "major"] },
282
+ "expectedCoverageIncrease": { "type": "number", "minimum": 0, "maximum": 100 }
283
+ }
284
+ }
285
+ }
286
+ }
@@ -0,0 +1,42 @@
1
+ {
2
+ "skillName": "qe-coverage-analysis",
3
+ "skillVersion": "1.0.0",
4
+ "requiredTools": [
5
+ "jq"
6
+ ],
7
+ "optionalTools": [
8
+ "nyc",
9
+ "istanbul",
10
+ "c8",
11
+ "python3"
12
+ ],
13
+ "schemaPath": "schemas/output.json",
14
+ "requiredFields": [
15
+ "skillName",
16
+ "status",
17
+ "output",
18
+ "output.summary",
19
+ "output.coverageMap",
20
+ "output.overallCoverage"
21
+ ],
22
+ "requiredNonEmptyFields": [
23
+ "output.summary"
24
+ ],
25
+ "mustContainTerms": [
26
+ "coverage",
27
+ "gap"
28
+ ],
29
+ "mustNotContainTerms": [
30
+ "TODO",
31
+ "FIXME",
32
+ "placeholder"
33
+ ],
34
+ "enumValidations": {
35
+ ".status": [
36
+ "success",
37
+ "partial",
38
+ "failed",
39
+ "skipped"
40
+ ]
41
+ }
42
+ }
@@ -1,14 +1,23 @@
1
1
  ---
2
- name: "QE Requirements Validation"
3
- description: "Requirements traceability, acceptance criteria validation, and BDD scenario management for complete requirements coverage."
2
+ name: "qe-requirements-validation"
3
+ description: "Validates acceptance criteria for testability, traces requirements to test cases, and generates BDD scenarios from user stories. Use when validating acceptance criteria, building requirements traceability matrices, managing Gherkin scenarios, or ensuring complete requirements coverage before development."
4
4
  trust_tier: 3
5
5
  validation:
6
6
  schema_path: schemas/output.json
7
7
  validator_path: scripts/validate-config.json
8
8
  eval_path: evals/qe-requirements-validation.yaml
9
-
10
9
  ---
11
10
 
11
+ <!-- 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. -->
12
+
13
+ ## Keysarium execution adapter
14
+
15
+ 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.
16
+
17
+ 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.
18
+
19
+ <!-- BEGIN AGENTIC-QE UPSTREAM BODY -->
20
+
12
21
  # QE Requirements Validation
13
22
 
14
23
  ## Purpose
@@ -252,3 +261,4 @@ await requirementsValidator.sprintReview({
252
261
  **Primary Agents**: qe-acceptance-criteria, qe-traceability-builder, qe-bdd-specialist
253
262
  **Coordinator**: qe-requirements-coordinator
254
263
  **Related Skills**: qe-test-generation, qe-quality-assessment
264
+ <!-- END AGENTIC-QE UPSTREAM BODY -->