@sparkleideas/plugin-agentic-qe 3.0.0-alpha.5
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.
- package/README.md +318 -0
- package/agents/architect.yaml +11 -0
- package/agents/coder.yaml +11 -0
- package/agents/reviewer.yaml +10 -0
- package/agents/security-architect.yaml +10 -0
- package/agents/tester.yaml +10 -0
- package/package.json +96 -0
- package/plugin.yaml +1095 -0
package/README.md
ADDED
|
@@ -0,0 +1,318 @@
|
|
|
1
|
+
# @claude-flow/plugin-agentic-qe
|
|
2
|
+
|
|
3
|
+
**AI-powered quality engineering that writes tests, finds bugs, and breaks things (safely) so your users don't have to.**
|
|
4
|
+
|
|
5
|
+
## What is this?
|
|
6
|
+
|
|
7
|
+
This plugin adds 58 AI agents to Claude Flow that handle all aspects of software quality:
|
|
8
|
+
|
|
9
|
+
- **Write tests for you** - Unit tests, integration tests, E2E tests, even chaos tests
|
|
10
|
+
- **Find coverage gaps** - Shows exactly which code paths aren't tested
|
|
11
|
+
- **Predict bugs before they happen** - ML-based defect prediction from code patterns
|
|
12
|
+
- **Security scanning** - Find vulnerabilities, secrets, and compliance issues
|
|
13
|
+
- **Break things on purpose** - Chaos engineering to test resilience (safely!)
|
|
14
|
+
|
|
15
|
+
Think of it as having a team of QA engineers who never sleep, never miss edge cases, and learn from every bug they find.
|
|
16
|
+
|
|
17
|
+
## Installation
|
|
18
|
+
|
|
19
|
+
**Via Claude Flow CLI (recommended):**
|
|
20
|
+
```bash
|
|
21
|
+
npx claude-flow plugins install --name @claude-flow/plugin-agentic-qe
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
**Via npm:**
|
|
25
|
+
```bash
|
|
26
|
+
npm install @claude-flow/plugin-agentic-qe
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
**Verify installation:**
|
|
30
|
+
```bash
|
|
31
|
+
npx claude-flow plugins list
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## Practical Examples
|
|
37
|
+
|
|
38
|
+
### 🟢 Basic: Generate Unit Tests
|
|
39
|
+
|
|
40
|
+
The simplest use case - point it at a file and get tests:
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
npx claude-flow@v3alpha mcp call aqe/generate-tests \
|
|
44
|
+
--targetPath ./src/utils/calculator.ts \
|
|
45
|
+
--testType unit \
|
|
46
|
+
--framework vitest
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
**What you get:**
|
|
50
|
+
```typescript
|
|
51
|
+
// Generated: calculator.test.ts
|
|
52
|
+
describe('Calculator', () => {
|
|
53
|
+
it('should add two numbers', () => {
|
|
54
|
+
expect(add(2, 3)).toBe(5);
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
it('should handle negative numbers', () => {
|
|
58
|
+
expect(add(-1, 5)).toBe(4);
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
it('should handle decimal precision', () => {
|
|
62
|
+
expect(add(0.1, 0.2)).toBeCloseTo(0.3);
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### 🟡 Intermediate: TDD Workflow
|
|
68
|
+
|
|
69
|
+
Give it a requirement, and it runs the full red-green-refactor cycle:
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
npx claude-flow@v3alpha mcp call aqe/tdd-cycle \
|
|
73
|
+
--requirement "Users can reset their password via email" \
|
|
74
|
+
--targetPath ./src/auth \
|
|
75
|
+
--style london
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
**What happens:**
|
|
79
|
+
1. Writes failing tests for password reset
|
|
80
|
+
2. Implements minimal code to pass
|
|
81
|
+
3. Refactors for clean code
|
|
82
|
+
4. Verifies 100% coverage of the requirement
|
|
83
|
+
|
|
84
|
+
### 🟡 Intermediate: Find Security Issues
|
|
85
|
+
|
|
86
|
+
Scan your code for vulnerabilities:
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
npx claude-flow@v3alpha mcp call aqe/security-scan \
|
|
90
|
+
--targetPath ./src \
|
|
91
|
+
--scanType sast \
|
|
92
|
+
--compliance owasp-top-10
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
**Output:**
|
|
96
|
+
```json
|
|
97
|
+
{
|
|
98
|
+
"vulnerabilities": [
|
|
99
|
+
{
|
|
100
|
+
"severity": "high",
|
|
101
|
+
"type": "SQL Injection",
|
|
102
|
+
"file": "src/db/queries.ts",
|
|
103
|
+
"line": 42,
|
|
104
|
+
"fix": "Use parameterized queries instead of string concatenation"
|
|
105
|
+
}
|
|
106
|
+
],
|
|
107
|
+
"compliance": {
|
|
108
|
+
"owasp-top-10": { "passed": 8, "failed": 2 }
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### 🟠Advanced: Quality Gates for CI/CD
|
|
114
|
+
|
|
115
|
+
Block releases that don't meet quality standards:
|
|
116
|
+
|
|
117
|
+
```typescript
|
|
118
|
+
const evaluation = await mcp.call('aqe/evaluate-quality-gate', {
|
|
119
|
+
gates: [
|
|
120
|
+
{ metric: 'line_coverage', operator: '>=', threshold: 80 },
|
|
121
|
+
{ metric: 'test_pass_rate', operator: '==', threshold: 100 },
|
|
122
|
+
{ metric: 'security_vulnerabilities', operator: '==', threshold: 0 },
|
|
123
|
+
{ metric: 'accessibility_violations', operator: '<=', threshold: 5 }
|
|
124
|
+
]
|
|
125
|
+
});
|
|
126
|
+
|
|
127
|
+
if (!evaluation.passed) {
|
|
128
|
+
console.log('Release blocked:', evaluation.failedCriteria);
|
|
129
|
+
process.exit(1);
|
|
130
|
+
}
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
### 🟠Advanced: Predict Bugs Before They Ship
|
|
134
|
+
|
|
135
|
+
Use ML to find likely defects:
|
|
136
|
+
|
|
137
|
+
```bash
|
|
138
|
+
npx claude-flow@v3alpha mcp call aqe/predict-defects \
|
|
139
|
+
--targetPath ./src/checkout \
|
|
140
|
+
--includeRootCause true
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
**Output:**
|
|
144
|
+
```json
|
|
145
|
+
{
|
|
146
|
+
"predictions": [
|
|
147
|
+
{
|
|
148
|
+
"file": "src/checkout/payment.ts",
|
|
149
|
+
"probability": 0.78,
|
|
150
|
+
"reason": "High cyclomatic complexity + recent churn + no error handling for network failures",
|
|
151
|
+
"suggestedTests": ["network timeout", "partial payment failure", "currency conversion edge cases"]
|
|
152
|
+
}
|
|
153
|
+
]
|
|
154
|
+
}
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
### 🔴 Expert: Chaos Engineering
|
|
158
|
+
|
|
159
|
+
Test how your system handles failures. **Always use dryRun first!**
|
|
160
|
+
|
|
161
|
+
```bash
|
|
162
|
+
# Step 1: Preview what would happen (safe)
|
|
163
|
+
npx claude-flow@v3alpha mcp call aqe/chaos-inject \
|
|
164
|
+
--target payment-service \
|
|
165
|
+
--failureType network-latency \
|
|
166
|
+
--duration 30 \
|
|
167
|
+
--intensity 0.5 \
|
|
168
|
+
--dryRun true
|
|
169
|
+
|
|
170
|
+
# Step 2: Run the actual experiment
|
|
171
|
+
npx claude-flow@v3alpha mcp call aqe/chaos-inject \
|
|
172
|
+
--target payment-service \
|
|
173
|
+
--failureType network-latency \
|
|
174
|
+
--duration 30 \
|
|
175
|
+
--intensity 0.5 \
|
|
176
|
+
--dryRun false
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
**Failure types available:**
|
|
180
|
+
- `network-latency` - Add delays to network calls
|
|
181
|
+
- `network-partition` - Isolate services from each other
|
|
182
|
+
- `cpu-stress` - Simulate high CPU load
|
|
183
|
+
- `memory-pressure` - Simulate memory exhaustion
|
|
184
|
+
- `disk-failure` - Simulate storage issues
|
|
185
|
+
- `process-kill` - Randomly kill processes
|
|
186
|
+
- `dns-failure` - Break DNS resolution
|
|
187
|
+
|
|
188
|
+
### 🔴 Expert: Visual Regression Testing
|
|
189
|
+
|
|
190
|
+
Catch UI changes automatically:
|
|
191
|
+
|
|
192
|
+
```typescript
|
|
193
|
+
// Compare against baseline
|
|
194
|
+
const result = await mcp.call('aqe/visual-regression', {
|
|
195
|
+
targetUrl: 'http://localhost:3000',
|
|
196
|
+
viewports: [
|
|
197
|
+
{ width: 1920, height: 1080 }, // Desktop
|
|
198
|
+
{ width: 768, height: 1024 }, // Tablet
|
|
199
|
+
{ width: 375, height: 812 } // Mobile
|
|
200
|
+
],
|
|
201
|
+
threshold: 0.1 // 10% difference allowed
|
|
202
|
+
});
|
|
203
|
+
|
|
204
|
+
if (result.hasRegressions) {
|
|
205
|
+
console.log('Visual changes detected:', result.diffs);
|
|
206
|
+
}
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
### 🟣 Exotic: Full Automated QA Pipeline
|
|
210
|
+
|
|
211
|
+
Combine everything for comprehensive quality assurance:
|
|
212
|
+
|
|
213
|
+
```typescript
|
|
214
|
+
// 1. Generate tests for uncovered code
|
|
215
|
+
const tests = await mcp.call('aqe/generate-tests', {
|
|
216
|
+
targetPath: './src',
|
|
217
|
+
coverage: { target: 90, focusGaps: true }
|
|
218
|
+
});
|
|
219
|
+
|
|
220
|
+
// 2. Run security scan
|
|
221
|
+
const security = await mcp.call('aqe/security-scan', {
|
|
222
|
+
targetPath: './src',
|
|
223
|
+
scanType: 'sast',
|
|
224
|
+
compliance: ['owasp-top-10', 'sans-25']
|
|
225
|
+
});
|
|
226
|
+
|
|
227
|
+
// 3. Check accessibility
|
|
228
|
+
const a11y = await mcp.call('aqe/check-accessibility', {
|
|
229
|
+
targetUrl: 'http://localhost:3000',
|
|
230
|
+
standard: 'WCAG21-AA'
|
|
231
|
+
});
|
|
232
|
+
|
|
233
|
+
// 4. Predict defects
|
|
234
|
+
const defects = await mcp.call('aqe/predict-defects', {
|
|
235
|
+
targetPath: './src'
|
|
236
|
+
});
|
|
237
|
+
|
|
238
|
+
// 5. Assess release readiness
|
|
239
|
+
const readiness = await mcp.call('aqe/assess-readiness', {
|
|
240
|
+
criteria: [
|
|
241
|
+
{ name: 'coverage', required: true },
|
|
242
|
+
{ name: 'security', required: true },
|
|
243
|
+
{ name: 'accessibility', required: false }
|
|
244
|
+
]
|
|
245
|
+
});
|
|
246
|
+
|
|
247
|
+
console.log('Ready to ship:', readiness.approved);
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
### 🟣 Exotic: Self-Learning Test Patterns
|
|
251
|
+
|
|
252
|
+
The plugin learns from your codebase and improves over time:
|
|
253
|
+
|
|
254
|
+
```typescript
|
|
255
|
+
// The plugin stores patterns in memory
|
|
256
|
+
// After running on your codebase, it learns:
|
|
257
|
+
// - Your testing style and conventions
|
|
258
|
+
// - Common edge cases in your domain
|
|
259
|
+
// - Patterns that historically caused bugs
|
|
260
|
+
|
|
261
|
+
// Query learned patterns
|
|
262
|
+
const patterns = await mcp.call('aqe/suggest-tests', {
|
|
263
|
+
targetPath: './src/new-feature.ts',
|
|
264
|
+
useLearned: true // Use patterns learned from your codebase
|
|
265
|
+
});
|
|
266
|
+
|
|
267
|
+
// Patterns are stored in:
|
|
268
|
+
// - aqe/v3/test-patterns (test generation)
|
|
269
|
+
// - aqe/v3/defect-patterns (bug prediction)
|
|
270
|
+
// - aqe/v3/learning-trajectories (improvement over time)
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
---
|
|
274
|
+
|
|
275
|
+
## Available Tools
|
|
276
|
+
|
|
277
|
+
| Category | Tools | What They Do |
|
|
278
|
+
|----------|-------|--------------|
|
|
279
|
+
| **Test Generation** | `generate-tests`, `tdd-cycle`, `suggest-tests` | Write tests automatically |
|
|
280
|
+
| **Coverage** | `analyze-coverage`, `prioritize-gaps`, `track-trends` | Find untested code |
|
|
281
|
+
| **Quality** | `evaluate-quality-gate`, `assess-readiness`, `calculate-risk` | Release decisions |
|
|
282
|
+
| **Defects** | `predict-defects`, `analyze-root-cause`, `find-similar-defects` | Bug prediction |
|
|
283
|
+
| **Security** | `security-scan`, `audit-compliance`, `detect-secrets` | Vulnerability scanning |
|
|
284
|
+
| **Contracts** | `validate-contract`, `compare-contracts` | API validation |
|
|
285
|
+
| **Visual** | `visual-regression`, `check-accessibility` | UI testing |
|
|
286
|
+
| **Chaos** | `chaos-inject`, `assess-resilience`, `load-test` | Resilience testing |
|
|
287
|
+
|
|
288
|
+
---
|
|
289
|
+
|
|
290
|
+
## Configuration
|
|
291
|
+
|
|
292
|
+
```yaml
|
|
293
|
+
# claude-flow.config.yaml
|
|
294
|
+
plugins:
|
|
295
|
+
agentic-qe:
|
|
296
|
+
enabled: true
|
|
297
|
+
config:
|
|
298
|
+
defaultFramework: vitest
|
|
299
|
+
coverageTarget: 80
|
|
300
|
+
tddStyle: london
|
|
301
|
+
complianceStandards:
|
|
302
|
+
- owasp-top-10
|
|
303
|
+
- sans-25
|
|
304
|
+
```
|
|
305
|
+
|
|
306
|
+
---
|
|
307
|
+
|
|
308
|
+
## Safety
|
|
309
|
+
|
|
310
|
+
- **Chaos operations default to dry-run mode** - Nothing breaks until you explicitly confirm
|
|
311
|
+
- **All code runs in a sandbox** - 30s timeout, 512MB memory limit, no network access
|
|
312
|
+
- **Production targets are blocked** - Can't accidentally chaos-test production
|
|
313
|
+
|
|
314
|
+
---
|
|
315
|
+
|
|
316
|
+
## License
|
|
317
|
+
|
|
318
|
+
MIT
|
package/package.json
ADDED
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@sparkleideas/plugin-agentic-qe",
|
|
3
|
+
"version": "3.0.0-alpha.5",
|
|
4
|
+
"description": "Quality Engineering plugin for Claude Flow V3 with 51 specialized agents across 12 DDD bounded contexts",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/index.js",
|
|
7
|
+
"types": "./dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"import": "./dist/index.js"
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
"dist",
|
|
16
|
+
"agents",
|
|
17
|
+
"skills",
|
|
18
|
+
"plugin.yaml",
|
|
19
|
+
"README.md"
|
|
20
|
+
],
|
|
21
|
+
"scripts": {
|
|
22
|
+
"build": "tsc",
|
|
23
|
+
"build:watch": "tsc --watch",
|
|
24
|
+
"clean": "rm -rf dist",
|
|
25
|
+
"type-check": "tsc --noEmit",
|
|
26
|
+
"lint": "eslint src/**/*.ts",
|
|
27
|
+
"test": "vitest run",
|
|
28
|
+
"test:watch": "vitest"
|
|
29
|
+
},
|
|
30
|
+
"keywords": [
|
|
31
|
+
"claude-flow",
|
|
32
|
+
"plugin",
|
|
33
|
+
"quality-engineering",
|
|
34
|
+
"testing",
|
|
35
|
+
"coverage",
|
|
36
|
+
"tdd",
|
|
37
|
+
"security",
|
|
38
|
+
"chaos-engineering",
|
|
39
|
+
"accessibility",
|
|
40
|
+
"ai-agents"
|
|
41
|
+
],
|
|
42
|
+
"author": "rUv",
|
|
43
|
+
"license": "MIT",
|
|
44
|
+
"repository": {
|
|
45
|
+
"type": "git",
|
|
46
|
+
"url": "https://github.com/ruvnet/claude-flow.git",
|
|
47
|
+
"directory": "v3/plugins/agentic-qe"
|
|
48
|
+
},
|
|
49
|
+
"homepage": "https://github.com/ruvnet/claude-flow/tree/main/v3/plugins/agentic-qe",
|
|
50
|
+
"bugs": {
|
|
51
|
+
"url": "https://github.com/ruvnet/claude-flow/issues"
|
|
52
|
+
},
|
|
53
|
+
"dependencies": {
|
|
54
|
+
"zod": "^3.23.0"
|
|
55
|
+
},
|
|
56
|
+
"peerDependencies": {
|
|
57
|
+
"@sparkleideas/plugins": "*",
|
|
58
|
+
"@sparkleideas/memory": "*",
|
|
59
|
+
"@sparkleideas/security": "*",
|
|
60
|
+
"@sparkleideas/embeddings": "*"
|
|
61
|
+
},
|
|
62
|
+
"peerDependenciesMeta": {
|
|
63
|
+
"@claude-flow/plugins": {
|
|
64
|
+
"optional": true
|
|
65
|
+
},
|
|
66
|
+
"@claude-flow/memory": {
|
|
67
|
+
"optional": true
|
|
68
|
+
},
|
|
69
|
+
"@claude-flow/security": {
|
|
70
|
+
"optional": true
|
|
71
|
+
},
|
|
72
|
+
"@claude-flow/embeddings": {
|
|
73
|
+
"optional": true
|
|
74
|
+
},
|
|
75
|
+
"@claude-flow/browser": {
|
|
76
|
+
"optional": true
|
|
77
|
+
},
|
|
78
|
+
"@ruvector/attention": {
|
|
79
|
+
"optional": true
|
|
80
|
+
},
|
|
81
|
+
"@ruvector/gnn": {
|
|
82
|
+
"optional": true
|
|
83
|
+
},
|
|
84
|
+
"@ruvector/sona": {
|
|
85
|
+
"optional": true
|
|
86
|
+
}
|
|
87
|
+
},
|
|
88
|
+
"devDependencies": {
|
|
89
|
+
"@types/node": "^20.0.0",
|
|
90
|
+
"typescript": "^5.5.0",
|
|
91
|
+
"vitest": "^2.0.0"
|
|
92
|
+
},
|
|
93
|
+
"engines": {
|
|
94
|
+
"node": ">=20.0.0"
|
|
95
|
+
}
|
|
96
|
+
}
|