Skip to content

Commit 050e40e

Browse files
Lalitclaude
andcommitted
feat(qcsd): enforce proper skill invocation with flag detection and conditional agents
QCSD Ideation Swarm was being invoked lazily with manual agent selection, bypassing flag detection and conditional agent spawning. This commit adds enforcement mechanisms to ensure proper execution. Changes: - CLAUDE.md: Add QCSD auto-invocation rules that mandate Skill tool usage - skills-manifest.json: Add qcsd-ideation-swarm with triggers and enforcement - SKILL.md v7.1: Add complete 8-phase URL execution flow with: - Programmatic flag detection (HAS_UI, HAS_SECURITY, HAS_UX) - Agent count validation before proceeding - Direct Write pattern for immediate report persistence - Mandatory related skill invocations - workflow-orchestrator.ts v3.0: Add conditional steps for: - accessibility-audit (HAS_UI condition) - quality-experience-analysis (HAS_UX condition) - qcsd-ideation-plugin.ts: Add auditAccessibility and analyzeQualityExperience actions Also includes teatimewithtesters.com QCSD analysis reports as example output. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 parent 3d1e784 commit 050e40e

File tree

11 files changed

+2837
-15
lines changed

11 files changed

+2837
-15
lines changed

.claude/skills/qcsd-ideation-swarm/SKILL.md

Lines changed: 324 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ name: qcsd-ideation-swarm
33
description: "QCSD Ideation phase swarm for Quality Criteria sessions using HTSM v6.3, Risk Storming, and Testability analysis before development begins."
44
category: qcsd-phases
55
priority: critical
6-
version: 7.0.0
6+
version: 7.1.0
77
tokenEstimate: 3500
88
# DDD Domain Mapping (from QCSD-AGENTIC-QE-MAPPING-FRAMEWORK.md)
99
domains:
@@ -32,7 +32,7 @@ execution:
3232
alternatives: [mcp-tools, cli]
3333
swarm_pattern: true
3434
parallel_batches: 2
35-
last_updated: 2026-01-25
35+
last_updated: 2026-01-27
3636
html_output: true
3737
enforcement_level: strict
3838
tags: [qcsd, ideation, htsm, quality-criteria, risk-storming, testability, swarm, parallel, ddd]
@@ -44,6 +44,328 @@ Shift-left quality engineering swarm for PI Planning and Sprint Planning.
4444

4545
---
4646

47+
## URL-Based Analysis Mode (v7.1)
48+
49+
When analyzing a live website URL, use this specialized execution pattern.
50+
51+
### Parameters
52+
53+
- `URL`: Website to analyze (required)
54+
- `OUTPUT_FOLDER`: Where to save reports (default: `/workspaces/agentic-qe/Agentic QCSD/{domain}/`)
55+
56+
---
57+
58+
## ⛔ URL MODE: COMPLETE EXECUTION FLOW
59+
60+
**You MUST follow ALL phases in order. Skipping phases is a FAILURE.**
61+
62+
### PHASE URL-1: Setup and Content Fetch
63+
64+
```javascript
65+
// 1. Create output folder
66+
Bash({ command: `mkdir -p "${OUTPUT_FOLDER}"` })
67+
68+
// 2. Fetch website content
69+
const content = await WebFetch({ url: URL, prompt: "Return the complete HTML content" })
70+
71+
// 3. Store content for agents
72+
// Keep the fetched content available for all agent prompts
73+
```
74+
75+
### PHASE URL-2: Programmatic Flag Detection (MANDATORY)
76+
77+
**You MUST detect flags from the fetched content. Do NOT skip this phase.**
78+
79+
```javascript
80+
// Detect HAS_UI
81+
const HAS_UI = (
82+
/<(form|button|input|select|textarea|img|video|canvas|nav|header|footer|aside)/i.test(content) ||
83+
/carousel|slider|modal|dialog|dropdown|menu|tab|accordion/i.test(content) ||
84+
/class=["'][^"']*btn|button|card|grid|flex/i.test(content)
85+
);
86+
87+
// Detect HAS_SECURITY
88+
const HAS_SECURITY = (
89+
/login|password|auth|token|session|credential|oauth|jwt|sso/i.test(content) ||
90+
/newsletter|subscribe|signup|email.*input|register/i.test(content) || // PII collection
91+
/payment|checkout|credit.*card|billing/i.test(content) ||
92+
/cookie|consent|gdpr|privacy/i.test(content)
93+
);
94+
95+
// Detect HAS_UX
96+
const HAS_UX = (
97+
/user|customer|visitor|journey|experience|engagement/i.test(content) ||
98+
/<form/i.test(content) && /<button/i.test(content) || // Interactive forms
99+
/onboarding|wizard|step.*step|progress/i.test(content) ||
100+
/feedback|rating|review|comment/i.test(content)
101+
);
102+
```
103+
104+
**You MUST output flag detection results before proceeding:**
105+
106+
```
107+
┌─────────────────────────────────────────────────────────────┐
108+
│ FLAG DETECTION RESULTS │
109+
├─────────────────────────────────────────────────────────────┤
110+
│ │
111+
│ HAS_UI: [TRUE/FALSE] │
112+
│ Evidence: [what triggered it - specific patterns] │
113+
│ │
114+
│ HAS_SECURITY: [TRUE/FALSE] │
115+
│ Evidence: [what triggered it - specific patterns] │
116+
│ │
117+
│ HAS_UX: [TRUE/FALSE] │
118+
│ Evidence: [what triggered it - specific patterns] │
119+
│ │
120+
│ EXPECTED AGENTS: │
121+
│ - Core: 3 (always) │
122+
│ - Conditional: [count based on TRUE flags] │
123+
│ - TOTAL: [3 + conditional count] │
124+
│ │
125+
└─────────────────────────────────────────────────────────────┘
126+
```
127+
128+
**❌ DO NOT proceed to Phase URL-3 without outputting flag detection results.**
129+
130+
### PHASE URL-3: Spawn Core Agents (PARALLEL)
131+
132+
**All 3 core agents MUST be spawned. Fewer is a FAILURE.**
133+
134+
Spawn ALL THREE in a single message:
135+
136+
```javascript
137+
// Agent 1: Quality Criteria (HTSM v6.3)
138+
Task({
139+
description: "QCSD Quality Criteria Analysis",
140+
prompt: `You are qe-quality-criteria-recommender analyzing ${URL}.
141+
142+
## WEBSITE CONTENT
143+
${content}
144+
145+
## ANALYSIS REQUIREMENTS
146+
Analyze ALL 10 HTSM v6.3 categories with weight and testability score for each.
147+
148+
## OUTPUT REQUIREMENTS (MANDATORY)
149+
1. Write your complete analysis to: ${OUTPUT_FOLDER}/02-quality-criteria-analysis.md
150+
2. Use the Write tool to save BEFORE completing
151+
3. Report MUST be complete - no placeholders`,
152+
subagent_type: "qe-quality-criteria-recommender",
153+
run_in_background: true
154+
})
155+
156+
// Agent 2: Risk Assessment (SFDIPOT)
157+
Task({
158+
description: "QCSD Risk Assessment",
159+
prompt: `You are qe-risk-assessor analyzing ${URL}.
160+
161+
## WEBSITE CONTENT
162+
${content}
163+
164+
## ANALYSIS REQUIREMENTS
165+
Apply SFDIPOT framework: Structure, Function, Data, Interfaces, Platform, Operations, Time.
166+
Identify minimum 10 risks with probability, impact, and score.
167+
168+
## OUTPUT REQUIREMENTS (MANDATORY)
169+
1. Write your complete analysis to: ${OUTPUT_FOLDER}/04-risk-assessment.md
170+
2. Use the Write tool to save BEFORE completing
171+
3. Report MUST be complete - no placeholders`,
172+
subagent_type: "qe-risk-assessor",
173+
run_in_background: true
174+
})
175+
176+
// Agent 3: Requirements Validator (Testability)
177+
Task({
178+
description: "QCSD Testability Assessment",
179+
prompt: `You are qe-requirements-validator analyzing ${URL}.
180+
181+
## WEBSITE CONTENT
182+
${content}
183+
184+
## ANALYSIS REQUIREMENTS
185+
Apply 10 Principles of Testability. Score each principle 0-100.
186+
Identify blockers and recommendations.
187+
188+
## OUTPUT REQUIREMENTS (MANDATORY)
189+
1. Write your complete analysis to: ${OUTPUT_FOLDER}/03-testability-assessment.md
190+
2. Use the Write tool to save BEFORE completing
191+
3. Report MUST be complete - no placeholders`,
192+
subagent_type: "qe-requirements-validator",
193+
run_in_background: true
194+
})
195+
```
196+
197+
### PHASE URL-4: Spawn Conditional Agents (PARALLEL)
198+
199+
**Spawn agents based on flags detected in Phase URL-2.**
200+
201+
```javascript
202+
// IF HAS_UI === TRUE
203+
Task({
204+
description: "QCSD Accessibility Audit",
205+
prompt: `You are qe-accessibility-auditor analyzing ${URL}.
206+
207+
## WEBSITE CONTENT
208+
${content}
209+
210+
## ANALYSIS REQUIREMENTS
211+
Perform WCAG 2.2 AA compliance assessment.
212+
Identify accessibility barriers, missing ARIA, color contrast issues.
213+
214+
## OUTPUT REQUIREMENTS (MANDATORY)
215+
1. Write your complete analysis to: ${OUTPUT_FOLDER}/07-accessibility-audit.md
216+
2. Use the Write tool to save BEFORE completing`,
217+
subagent_type: "qe-accessibility-auditor",
218+
run_in_background: true
219+
})
220+
221+
// IF HAS_SECURITY === TRUE
222+
Task({
223+
description: "QCSD Security Threat Model",
224+
prompt: `You are qe-security-auditor analyzing ${URL}.
225+
226+
## WEBSITE CONTENT
227+
${content}
228+
229+
## ANALYSIS REQUIREMENTS
230+
Apply STRIDE threat modeling framework.
231+
Identify vulnerabilities, attack vectors, and mitigations.
232+
233+
## OUTPUT REQUIREMENTS (MANDATORY)
234+
1. Write your complete analysis to: ${OUTPUT_FOLDER}/05-security-threat-model.md
235+
2. Use the Write tool to save BEFORE completing`,
236+
subagent_type: "qe-security-auditor",
237+
run_in_background: true
238+
})
239+
240+
// IF HAS_UX === TRUE
241+
Task({
242+
description: "QCSD Quality Experience Analysis",
243+
prompt: `You are qe-qx-partner analyzing ${URL}.
244+
245+
## WEBSITE CONTENT
246+
${content}
247+
248+
## ANALYSIS REQUIREMENTS
249+
Analyze user journeys, experience quality, friction points.
250+
Map key user flows and identify UX risks.
251+
252+
## OUTPUT REQUIREMENTS (MANDATORY)
253+
1. Write your complete analysis to: ${OUTPUT_FOLDER}/08-quality-experience.md
254+
2. Use the Write tool to save BEFORE completing`,
255+
subagent_type: "qe-qx-partner",
256+
run_in_background: true
257+
})
258+
```
259+
260+
### PHASE URL-5: Agent Count Validation
261+
262+
**Before proceeding, verify agent count:**
263+
264+
```
265+
┌─────────────────────────────────────────────────────────────┐
266+
│ AGENT COUNT VALIDATION │
267+
├─────────────────────────────────────────────────────────────┤
268+
│ │
269+
│ CORE AGENTS (ALWAYS 3): │
270+
│ □ qe-quality-criteria-recommender - SPAWNED? [Y/N] │
271+
│ □ qe-risk-assessor - SPAWNED? [Y/N] │
272+
│ □ qe-requirements-validator - SPAWNED? [Y/N] │
273+
│ │
274+
│ CONDITIONAL AGENTS (based on flags): │
275+
│ □ qe-accessibility-auditor - SPAWNED? [Y/N] (HAS_UI) │
276+
│ □ qe-security-auditor - SPAWNED? [Y/N] (HAS_SECURITY) │
277+
│ □ qe-qx-partner - SPAWNED? [Y/N] (HAS_UX) │
278+
│ │
279+
│ VALIDATION: │
280+
│ Expected agents: [3 + count of TRUE flags] │
281+
│ Actual spawned: [count] │
282+
│ Status: [PASS/FAIL] │
283+
│ │
284+
│ If ACTUAL < EXPECTED, you have FAILED. Spawn missing │
285+
│ agents before proceeding. │
286+
│ │
287+
└─────────────────────────────────────────────────────────────┘
288+
```
289+
290+
**❌ DO NOT proceed if validation FAILS.**
291+
292+
### PHASE URL-6: Wait for Agents and Verify Reports
293+
294+
After spawning, inform user and wait:
295+
296+
```
297+
I've launched [N] agents in background:
298+
- 📊 Quality Criteria Recommender: HTSM v6.3 analysis → 02-quality-criteria-analysis.md
299+
- ⚠️ Risk Assessor: SFDIPOT analysis → 04-risk-assessment.md
300+
- 🧪 Requirements Validator: Testability assessment → 03-testability-assessment.md
301+
[IF HAS_UI]
302+
- ♿ Accessibility Auditor: WCAG 2.2 audit → 07-accessibility-audit.md
303+
[IF HAS_SECURITY]
304+
- 🔒 Security Auditor: STRIDE threat model → 05-security-threat-model.md
305+
[IF HAS_UX]
306+
- 🎯 QX Partner: User experience analysis → 08-quality-experience.md
307+
308+
Each agent will write directly to: ${OUTPUT_FOLDER}/
309+
```
310+
311+
Verify reports exist before synthesis:
312+
```bash
313+
ls -la "${OUTPUT_FOLDER}"
314+
```
315+
316+
### PHASE URL-7: Invoke Related Skills (MANDATORY)
317+
318+
**After agent reports are complete, invoke these skills:**
319+
320+
```javascript
321+
// Testability Scoring - applies formal scoring methodology
322+
Skill({ skill: "testability-scoring", args: `${OUTPUT_FOLDER}/03-testability-assessment.md` })
323+
324+
// Risk-Based Testing - prioritizes test selection
325+
Skill({ skill: "risk-based-testing", args: `${OUTPUT_FOLDER}/04-risk-assessment.md` })
326+
```
327+
328+
**Required Skill Invocations:**
329+
330+
| Skill | When | Purpose |
331+
|-------|------|---------|
332+
| `testability-scoring` | After testability report | Formal 0-100 score calculation |
333+
| `risk-based-testing` | After risk report | Test prioritization matrix |
334+
| `context-driven-testing` | Always | Apply CDT principles to recommendations |
335+
| `holistic-testing-pact` | Always | Validate test strategy completeness |
336+
337+
**❌ Analysis is INCOMPLETE without invoking related skills.**
338+
339+
### PHASE URL-8: Synthesis and Executive Summary
340+
341+
After all agents complete and skills are invoked:
342+
343+
1. **Read all agent reports**
344+
2. **Generate Executive Summary**`${OUTPUT_FOLDER}/01-executive-summary.md`
345+
3. **Generate Consolidated Test Ideas**`${OUTPUT_FOLDER}/06-test-ideas.md`
346+
4. **Store learnings in memory**:
347+
```bash
348+
npx @claude-flow/cli@latest memory store \
349+
--key "qcsd-${domain}-pattern" \
350+
--value "[key learnings from this analysis]" \
351+
--namespace patterns
352+
```
353+
354+
### Report Filename Mapping
355+
356+
| Agent | Report Filename |
357+
|-------|----------------|
358+
| qe-quality-criteria-recommender | `02-quality-criteria-analysis.md` |
359+
| qe-requirements-validator | `03-testability-assessment.md` |
360+
| qe-risk-assessor | `04-risk-assessment.md` |
361+
| qe-security-auditor | `05-security-threat-model.md` |
362+
| qe-accessibility-auditor | `07-accessibility-audit.md` |
363+
| qe-qx-partner | `08-quality-experience.md` |
364+
| Synthesis | `01-executive-summary.md` |
365+
| Synthesis | `06-test-ideas.md` |
366+
367+
---
368+
47369
## DDD Domain Integration
48370

49371
This swarm operates across **3 primary domains** and **3 conditional domains**:

0 commit comments

Comments
 (0)