agentic-qe 3.7.18 → 3.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 (46) hide show
  1. package/.claude/skills/iterative-loop/SKILL.md +371 -0
  2. package/.claude/skills/skills-manifest.json +35 -7
  3. package/.claude/skills/validation-pipeline/SKILL.md +164 -0
  4. package/.claude/skills/validation-pipeline/evals/validation-pipeline.yaml +544 -0
  5. package/.claude/skills/validation-pipeline/schemas/output.json +193 -0
  6. package/.claude/skills/validation-pipeline/scripts/validate-config.json +34 -0
  7. package/README.md +5 -3
  8. package/assets/skills/skills-manifest.json +17 -1
  9. package/assets/skills/validation-pipeline/SKILL.md +164 -0
  10. package/assets/skills/validation-pipeline/evals/validation-pipeline.yaml +544 -0
  11. package/assets/skills/validation-pipeline/schemas/output.json +193 -0
  12. package/assets/skills/validation-pipeline/scripts/validate-config.json +34 -0
  13. package/dist/cli/bundle.js +2 -2
  14. package/dist/context/compiler.js +4 -0
  15. package/dist/context/index.d.ts +2 -0
  16. package/dist/context/index.js +2 -0
  17. package/dist/context/sources/defect-source.d.ts +17 -0
  18. package/dist/context/sources/defect-source.js +102 -0
  19. package/dist/context/sources/index.d.ts +2 -0
  20. package/dist/context/sources/index.js +2 -0
  21. package/dist/context/sources/requirements-source.d.ts +17 -0
  22. package/dist/context/sources/requirements-source.js +119 -0
  23. package/dist/coordination/task-executor.js +7 -1
  24. package/dist/coordination/yaml-pipeline-loader.d.ts +32 -0
  25. package/dist/coordination/yaml-pipeline-loader.js +389 -0
  26. package/dist/coordination/yaml-pipeline-registry.d.ts +61 -0
  27. package/dist/coordination/yaml-pipeline-registry.js +143 -0
  28. package/dist/mcp/bundle.js +8670 -1244
  29. package/dist/mcp/entry.js +21 -0
  30. package/dist/mcp/handlers/domain-handler-configs.js +11 -0
  31. package/dist/mcp/handlers/index.d.ts +2 -0
  32. package/dist/mcp/handlers/index.js +4 -0
  33. package/dist/mcp/handlers/pipeline-handlers.d.ts +75 -0
  34. package/dist/mcp/handlers/pipeline-handlers.js +208 -0
  35. package/dist/mcp/handlers/validation-pipeline-handler.d.ts +53 -0
  36. package/dist/mcp/handlers/validation-pipeline-handler.js +118 -0
  37. package/dist/mcp/protocol-server.js +167 -1
  38. package/dist/mcp/server.js +75 -1
  39. package/dist/workers/daemon.js +3 -2
  40. package/dist/workers/index.d.ts +6 -0
  41. package/dist/workers/index.js +6 -0
  42. package/dist/workers/workers/heartbeat-scheduler.d.ts +45 -0
  43. package/dist/workers/workers/heartbeat-scheduler.js +312 -0
  44. package/dist/workers/workers/index.d.ts +2 -1
  45. package/dist/workers/workers/index.js +2 -1
  46. package/package.json +1 -1
@@ -0,0 +1,193 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://agentic-qe.dev/schemas/validation-pipeline-output.json",
4
+ "title": "AQE Validation Pipeline Skill Output Schema",
5
+ "description": "Schema for validation pipeline skill output. Includes step results, scores, findings, and blockers.",
6
+ "type": "object",
7
+ "required": ["skillName", "version", "timestamp", "status", "trustTier", "output"],
8
+ "properties": {
9
+ "skillName": {
10
+ "type": "string",
11
+ "const": "validation-pipeline",
12
+ "description": "Must be 'validation-pipeline'"
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
+ "description": "Trust tier 3 indicates full validation with eval suite"
30
+ },
31
+ "output": {
32
+ "type": "object",
33
+ "required": ["pipelineId", "pipelineName", "overall", "score", "steps"],
34
+ "properties": {
35
+ "pipelineId": {
36
+ "type": "string",
37
+ "description": "Pipeline identifier"
38
+ },
39
+ "pipelineName": {
40
+ "type": "string",
41
+ "description": "Human-readable pipeline name"
42
+ },
43
+ "overall": {
44
+ "type": "string",
45
+ "enum": ["pass", "fail", "warn"],
46
+ "description": "Overall pipeline verdict"
47
+ },
48
+ "score": {
49
+ "type": "integer",
50
+ "minimum": 0,
51
+ "maximum": 100,
52
+ "description": "Weighted average score across all steps"
53
+ },
54
+ "steps": {
55
+ "type": "array",
56
+ "items": { "$ref": "#/$defs/stepResult" },
57
+ "minItems": 1,
58
+ "description": "Per-step results"
59
+ },
60
+ "blockers": {
61
+ "type": "array",
62
+ "items": { "$ref": "#/$defs/finding" },
63
+ "description": "Findings from blocking steps that failed"
64
+ },
65
+ "halted": {
66
+ "type": "boolean",
67
+ "description": "Whether pipeline halted early"
68
+ },
69
+ "haltedAt": {
70
+ "type": "string",
71
+ "description": "Step ID where pipeline halted"
72
+ },
73
+ "totalDuration": {
74
+ "type": "integer",
75
+ "minimum": 0,
76
+ "description": "Total execution time in ms"
77
+ },
78
+ "summary": {
79
+ "type": "string",
80
+ "minLength": 20,
81
+ "maxLength": 2000,
82
+ "description": "Human-readable summary"
83
+ }
84
+ }
85
+ },
86
+ "metadata": { "$ref": "#/$defs/metadata" },
87
+ "validation": { "$ref": "#/$defs/validationResult" },
88
+ "learning": { "$ref": "#/$defs/learningData" }
89
+ },
90
+ "$defs": {
91
+ "stepResult": {
92
+ "type": "object",
93
+ "required": ["stepId", "stepName", "status", "score", "findings", "evidence", "duration"],
94
+ "properties": {
95
+ "stepId": {
96
+ "type": "string",
97
+ "description": "Step identifier"
98
+ },
99
+ "stepName": {
100
+ "type": "string",
101
+ "description": "Human-readable step name"
102
+ },
103
+ "status": {
104
+ "type": "string",
105
+ "enum": ["pass", "fail", "warn", "skip"],
106
+ "description": "Step verdict"
107
+ },
108
+ "score": {
109
+ "type": "integer",
110
+ "minimum": 0,
111
+ "maximum": 100,
112
+ "description": "Step score"
113
+ },
114
+ "findings": {
115
+ "type": "array",
116
+ "items": { "$ref": "#/$defs/finding" }
117
+ },
118
+ "evidence": {
119
+ "type": "array",
120
+ "items": { "type": "string" },
121
+ "description": "What was checked"
122
+ },
123
+ "duration": {
124
+ "type": "integer",
125
+ "minimum": 0,
126
+ "description": "Step duration in ms"
127
+ }
128
+ }
129
+ },
130
+ "finding": {
131
+ "type": "object",
132
+ "required": ["id", "stepId", "severity", "title", "description"],
133
+ "properties": {
134
+ "id": {
135
+ "type": "string"
136
+ },
137
+ "stepId": {
138
+ "type": "string"
139
+ },
140
+ "severity": {
141
+ "type": "string",
142
+ "enum": ["critical", "high", "medium", "low", "info"]
143
+ },
144
+ "title": {
145
+ "type": "string",
146
+ "minLength": 5,
147
+ "maxLength": 200
148
+ },
149
+ "description": {
150
+ "type": "string",
151
+ "maxLength": 2000
152
+ },
153
+ "location": {
154
+ "type": "string",
155
+ "description": "File path or document section"
156
+ },
157
+ "suggestion": {
158
+ "type": "string",
159
+ "description": "Suggested fix"
160
+ }
161
+ }
162
+ },
163
+ "metadata": {
164
+ "type": "object",
165
+ "properties": {
166
+ "executionTimeMs": { "type": "integer", "minimum": 0 },
167
+ "toolsUsed": { "type": "array", "items": { "type": "string" } },
168
+ "agentId": { "type": "string" },
169
+ "pipelineType": { "type": "string" },
170
+ "targetFile": { "type": "string" },
171
+ "stepsExecuted": { "type": "integer", "minimum": 0 },
172
+ "stepsSkipped": { "type": "integer", "minimum": 0 }
173
+ }
174
+ },
175
+ "validationResult": {
176
+ "type": "object",
177
+ "properties": {
178
+ "schemaValid": { "type": "boolean" },
179
+ "contentValid": { "type": "boolean" },
180
+ "confidence": { "type": "number", "minimum": 0, "maximum": 1 },
181
+ "warnings": { "type": "array", "items": { "type": "string" }, "maxItems": 20 },
182
+ "errors": { "type": "array", "items": { "type": "string" }, "maxItems": 20 }
183
+ }
184
+ },
185
+ "learningData": {
186
+ "type": "object",
187
+ "properties": {
188
+ "patternsDetected": { "type": "array", "items": { "type": "string" }, "maxItems": 20 },
189
+ "reward": { "type": "number", "minimum": 0, "maximum": 1 }
190
+ }
191
+ }
192
+ }
193
+ }
@@ -0,0 +1,34 @@
1
+ {
2
+ "skillName": "validation-pipeline",
3
+ "skillVersion": "1.0.0",
4
+ "requiredTools": [],
5
+ "optionalTools": ["jq"],
6
+ "schemaPath": "schemas/output.json",
7
+ "requiredFields": [
8
+ "skillName",
9
+ "status",
10
+ "output",
11
+ "output.pipelineId",
12
+ "output.pipelineName",
13
+ "output.overall",
14
+ "output.score",
15
+ "output.steps"
16
+ ],
17
+ "requiredNonEmptyFields": [
18
+ "output.pipelineName",
19
+ "output.steps"
20
+ ],
21
+ "mustContainTerms": [
22
+ "pipeline",
23
+ "validation"
24
+ ],
25
+ "mustNotContainTerms": [
26
+ "TODO",
27
+ "placeholder",
28
+ "FIXME"
29
+ ],
30
+ "enumValidations": {
31
+ ".status": ["success", "partial", "failed", "skipped"],
32
+ ".output.overall": ["pass", "fail", "warn"]
33
+ }
34
+ }
package/README.md CHANGED
@@ -159,19 +159,19 @@ Plus **7 TDD subagents** (red, green, refactor, code/integration/performance/sec
159
159
 
160
160
  ---
161
161
 
162
- ## 78 QE Skills
162
+ ## 80 QE Skills
163
163
 
164
164
  Agents automatically apply relevant skills from the skill library. Skills are rated by **trust tier**:
165
165
 
166
166
  | Tier | Count | Meaning |
167
167
  |------|-------|---------|
168
- | **Tier 3 — Verified** | 46 | Full evaluation test suite, production-ready |
168
+ | **Tier 3 — Verified** | 48 | Full evaluation test suite, production-ready |
169
169
  | **Tier 2 — Validated** | 7 | Has executable validator |
170
170
  | **Tier 1 — Structured** | 5 | Has JSON output schema |
171
171
  | **Tier 0 — Advisory** | 5 | Guidance only |
172
172
 
173
173
  <details>
174
- <summary><b>View all 78 skills</b></summary>
174
+ <summary><b>View all 80 skills</b></summary>
175
175
 
176
176
  **Core Testing (12):** agentic-quality-engineering, holistic-testing-pact, context-driven-testing, tdd-london-chicago, xp-practices, risk-based-testing, test-automation-strategy, refactoring-patterns, shift-left-testing, shift-right-testing, regression-testing, verification-quality
177
177
 
@@ -191,6 +191,8 @@ Agents automatically apply relevant skills from the skill library. Skills are ra
191
191
 
192
192
  **Enterprise Integration (5):** enterprise-integration-testing, middleware-testing-patterns, observability-testing-patterns, wms-testing-patterns, pentest-validation
193
193
 
194
+ **Validation (1):** validation-pipeline
195
+
194
196
  </details>
195
197
 
196
198
  ---
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": "1.2.0",
3
3
  "generated": "2026-01-27T00:00:00.000Z",
4
- "totalSkills": 43,
4
+ "totalSkills": 44,
5
5
  "description": "Agentic QE Fleet skills manifest - Quality Engineering focused skills only. Claude Flow platform skills are managed separately.",
6
6
  "categories": {
7
7
  "qcsd-phases": {
@@ -31,6 +31,7 @@
31
31
  "priority": "medium",
32
32
  "skills": [
33
33
  "security-testing",
34
+ "validation-pipeline",
34
35
  "performance-testing",
35
36
  "accessibility-testing",
36
37
  "a11y-ally",
@@ -655,6 +656,21 @@
655
656
  "dependencies": [],
656
657
  "agents": ["qe-quality-analyzer"]
657
658
  },
659
+ "validation-pipeline": {
660
+ "id": "validation-pipeline",
661
+ "name": "Validation Pipeline",
662
+ "description": "Run structured 13-step requirements validation pipeline with gate enforcement, weighted scoring, and detailed findings.",
663
+ "category": "specialized-testing",
664
+ "priority": "high",
665
+ "file": "validation-pipeline/SKILL.md",
666
+ "tokenEstimate": 1500,
667
+ "optimizationStatus": "active",
668
+ "optimizationVersion": "1.0",
669
+ "lastOptimized": "2026-03-12",
670
+ "tags": ["validation", "requirements", "pipeline", "gate-enforcement", "scoring", "bmad"],
671
+ "dependencies": ["agentic-quality-engineering"],
672
+ "agents": ["qe-requirements-validator"]
673
+ },
658
674
  "bug-reporting-excellence": {
659
675
  "id": "bug-reporting-excellence",
660
676
  "name": "Bug Reporting Excellence",
@@ -0,0 +1,164 @@
1
+ ---
2
+ name: "Validation Pipeline"
3
+ description: "Structured step-by-step validation of requirements, code, and artifacts with gate enforcement, per-step scoring, and structured reports."
4
+ trust_tier: 3
5
+ validation:
6
+ schema_path: schemas/output.json
7
+ validator_path: scripts/validate-config.json
8
+ eval_path: evals/validation-pipeline.yaml
9
+
10
+ ---
11
+
12
+ # Validation Pipeline
13
+
14
+ ## Purpose
15
+
16
+ Run structured validation pipelines that execute steps sequentially, enforce gates at blocking failures, and produce scored reports. Uses the `src/validation/pipeline.ts` framework with 13 requirements validation steps (BMAD-003).
17
+
18
+ ## Activation
19
+
20
+ - When validating requirements documents
21
+ - When running structured quality gates
22
+ - When assessing document completeness, testability, or traceability
23
+ - When invoked via `/validation-pipeline`
24
+
25
+ ## Quick Start
26
+
27
+ ```bash
28
+ # Validate a requirements document (all 13 steps)
29
+ /validation-pipeline requirements docs/requirements.md
30
+
31
+ # Validate with specific steps only
32
+ /validation-pipeline requirements docs/requirements.md --steps format-check,completeness-check,invest-criteria
33
+
34
+ # Continue past blocking failures
35
+ /validation-pipeline requirements docs/requirements.md --continue-on-failure
36
+
37
+ # Output as JSON
38
+ /validation-pipeline requirements docs/requirements.md --json
39
+ ```
40
+
41
+ ## Workflow
42
+
43
+ ### Step 1: Read the Target Document
44
+
45
+ Read the file specified by the user. If no file is provided, ask for one.
46
+
47
+ ```
48
+ Read the target document using the Read tool.
49
+ Store the content for pipeline execution.
50
+ ```
51
+
52
+ ### Step 2: Select Pipeline
53
+
54
+ Choose the appropriate pipeline based on the user's request:
55
+
56
+ | Pipeline | Steps | Use Case |
57
+ |----------|-------|----------|
58
+ | `requirements` | 13 | Requirements documents, PRDs, user stories |
59
+
60
+ Additional pipelines can be created by defining new step sets in `src/validation/steps/`.
61
+
62
+ ### Step 3: Execute Pipeline
63
+
64
+ The pipeline framework (`src/validation/pipeline.ts`) handles execution:
65
+
66
+ 1. **Sequential execution** — steps run in order, each receiving results from prior steps
67
+ 2. **Gate enforcement** — blocking steps that fail halt the pipeline (unless `--continue-on-failure`)
68
+ 3. **Per-step scoring** — each step produces a 0-100 score with findings and evidence
69
+ 4. **Weighted rollup** — overall score uses category weights (format=10%, content=30%, quality=25%, traceability=20%, compliance=15%)
70
+
71
+ #### Requirements Pipeline Steps (13 total)
72
+
73
+ | # | Step ID | Category | Severity | What It Checks |
74
+ |---|---------|----------|----------|----------------|
75
+ | 1 | `format-check` | format | blocking | Headings, required sections, document length |
76
+ | 2 | `completeness-check` | content | blocking | Required fields populated, acceptance criteria present |
77
+ | 3 | `invest-criteria` | quality | warning | Independent, Negotiable, Valuable, Estimable, Small, Testable |
78
+ | 4 | `smart-acceptance` | quality | warning | Specific, Measurable, Achievable, Relevant, Time-bound |
79
+ | 5 | `testability-score` | quality | warning | Can each requirement be tested? |
80
+ | 6 | `vague-term-detection` | content | info | Flags "should", "might", "various", "etc." |
81
+ | 7 | `information-density` | content | info | Every sentence carries weight, no filler |
82
+ | 8 | `traceability-check` | traceability | warning | Requirements-to-tests mapping exists |
83
+ | 9 | `implementation-leakage` | quality | warning | Requirements don't prescribe implementation |
84
+ | 10 | `domain-compliance` | compliance | info | Alignment with domain model |
85
+ | 11 | `dependency-analysis` | traceability | info | Cross-requirement dependencies identified |
86
+ | 12 | `bdd-scenario-generation` | quality | warning | Can generate Given/When/Then for each requirement |
87
+ | 13 | `holistic-quality` | compliance | blocking | Overall coherence, no contradictions |
88
+
89
+ ### Step 4: Report Results
90
+
91
+ Format the pipeline result as a structured report:
92
+
93
+ ```markdown
94
+ # Validation Report: Requirements Pipeline
95
+
96
+ **Overall**: PASS/FAIL/WARN | **Score**: 85/100 | **Duration**: 42ms
97
+
98
+ ## Step Results
99
+ | # | Step | Status | Score | Findings | Duration |
100
+ |---|------|--------|-------|----------|----------|
101
+ | 1 | Format Check | PASS | 100 | 0 | 2ms |
102
+ | 2 | Completeness | WARN | 60 | 2 | 5ms |
103
+ ...
104
+
105
+ ## Blockers
106
+ - (blocking findings listed here)
107
+
108
+ ## All Findings
109
+ - [HIGH] Missing acceptance criteria: Requirement US-104 has no AC
110
+ - [MEDIUM] Vague term: "should" used 5 times without specifics
111
+ ...
112
+ ```
113
+
114
+ ### Step 5: Record Learning
115
+
116
+ After pipeline execution, record the outcome for learning:
117
+
118
+ ```typescript
119
+ // Store validation pattern
120
+ memory store --namespace validation-pipeline --key "req-validation-{timestamp}" --value "{score, findings_count, halted}"
121
+ ```
122
+
123
+ ## Parameters
124
+
125
+ | Parameter | Type | Default | Description |
126
+ |-----------|------|---------|-------------|
127
+ | `pipeline` | string | `requirements` | Pipeline type to run |
128
+ | `file` | string | required | Path to document to validate |
129
+ | `--steps` | string[] | all | Specific step IDs to run |
130
+ | `--continue-on-failure` | boolean | false | Skip blocking gates |
131
+ | `--json` | boolean | false | Output as JSON instead of markdown |
132
+ | `--metadata` | object | {} | Additional context for steps |
133
+
134
+ ## Integration Points
135
+
136
+ - **qe-requirements-validator agent** — delegates structured validation to this pipeline
137
+ - **qe-quality-gate agent** — uses pipeline for gate evaluation
138
+ - **YAML Pipelines** — can invoke validation steps as workflow actions
139
+ - **MCP** — accessible via `pipeline_validate` tool
140
+
141
+ ## Output Schema
142
+
143
+ The pipeline produces a `PipelineResult` object (see `schemas/output.json`):
144
+
145
+ ```typescript
146
+ {
147
+ pipelineId: string;
148
+ pipelineName: string;
149
+ overall: 'pass' | 'fail' | 'warn';
150
+ score: number; // 0-100 weighted average
151
+ steps: StepResult[]; // per-step details
152
+ blockers: Finding[]; // blocking findings
153
+ halted: boolean;
154
+ haltedAt?: string; // step ID where halted
155
+ totalDuration: number;
156
+ timestamp: string;
157
+ }
158
+ ```
159
+
160
+ ## Error Handling
161
+
162
+ - **Step throws exception** — captured as a FAIL with critical finding, pipeline continues or halts per severity
163
+ - **File not found** — report error, do not run pipeline
164
+ - **Empty document** — format-check step will catch this as a blocking failure