Skip to content

Commit 3cab30a

Browse files
Lalitclaude
andcommitted
feat(qcsd): add QCSD analysis exclusion, E2E test framework, and n8n validation
- Add Agentic QCSD/ and L2C/ to gitignore (site-specific analysis reports) - Add n8n instance-specific files to gitignore (internal URLs protection) - Add Sauce Demo E2E test suite with Playwright (Page Object Model) - Add n8n workflow validator with webhook testing - Add QCSD agent implementations (QualityCriteriaRecommender, RiskAssessor) - Add GitHub Actions workflows for E2E and n8n CI - Add agent catalog documentation - Add v3 benchmark and coherence comparison reports Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 parent 050e40e commit 3cab30a

File tree

121 files changed

+17097
-29269
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

121 files changed

+17097
-29269
lines changed

.claude/agents/v3/README.md

Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
# AQE V3 Agents Index
2+
3+
This directory contains V3 QE agents installed by `aqe init`.
4+
5+
> **Note**: This directory only contains AQE-specific agents (v3-qe-*).
6+
> Claude-flow core agents (adr-architect, memory-specialist, etc.) are part of
7+
> the claude-flow system and are available separately.
8+
9+
## Summary
10+
11+
- **Total Agents**: 1
12+
- **V3 QE Domain Agents**: 1
13+
- **V3 Subagents**: 0
14+
15+
## V2 → V3 Migration Guide
16+
17+
| V2 Agent | V3 Agent | Domain | Key Changes |
18+
|----------|----------|--------|-------------|
19+
| `qe-a11y-ally` | `qe-accessibility-auditor` | visual-accessibility | **MANDATORY video pipeline** |
20+
| `qe-test-generator` | `qe-test-architect` | test-generation | ReasoningBank learning |
21+
| `qe-coverage-analyzer` | `qe-coverage-specialist` | coverage-analysis | O(log n) sublinear |
22+
| `qe-coordinator` | `qe-learning-coordinator` | learning-optimization | Cross-domain patterns |
23+
| `qe-flaky-investigator` | `qe-flaky-hunter` | defect-intelligence | ML-powered detection |
24+
25+
## Critical: qe-accessibility-auditor
26+
27+
The V3 accessibility auditor has a **MANDATORY video accessibility pipeline**.
28+
29+
### V2 Behavior (qe-a11y-ally)
30+
31+
Generated these files when videos detected:
32+
- `*-captions.vtt` - For deaf/hard-of-hearing users
33+
- `*-audiodesc.vtt` - For blind/low-vision users
34+
- Implementation instructions
35+
36+
### V3 Behavior (qe-accessibility-auditor)
37+
38+
**MUST** execute the same pipeline:
39+
40+
1. **Detect** - Find `<video>`, `<iframe>` elements
41+
2. **Download** - `curl -L -o video.mp4 URL`
42+
3. **Extract** - `ffmpeg -vf "fps=1/3" -frames:v 10`
43+
4. **Analyze** - Read each .jpg with Claude Vision
44+
5. **Generate** - Create .vtt from actual descriptions
45+
6. **Save** - Output to `docs/accessibility/captions/{page-slug}/`
46+
47+
### Expected Output Structure
48+
49+
```
50+
docs/accessibility/captions/{page-slug}/
51+
├── video-001-captions.vtt # Captions
52+
├── video-001-audiodesc.vtt # Audio descriptions
53+
├── implementation.md # HTML integration
54+
└── audit-report.md # WCAG report
55+
```
56+
57+
### Invocation
58+
59+
Use the skill for guaranteed video pipeline execution:
60+
61+
```
62+
/qe-a11y-ally https://example.com/page
63+
```
64+
65+
Or via Task with explicit video pipeline requirement:
66+
67+
```javascript
68+
Task({
69+
prompt: "Audit accessibility including MANDATORY video pipeline for URL",
70+
subagent_type: "qe-accessibility-auditor"
71+
})
72+
```
73+
74+
## Usage
75+
76+
Spawn agents using Claude Code's Task tool:
77+
78+
```javascript
79+
Task("Generate tests for UserService", "...", "qe-test-architect")
80+
Task("Analyze coverage gaps", "...", "qe-coverage-specialist")
81+
Task("Audit accessibility with video captions", "...", "qe-accessibility-auditor")
82+
```
83+
84+
## V3 QE Domain Agents (1)
85+
86+
Quality Engineering agents mapped to the 12 DDD bounded contexts.
87+
88+
| Agent | Domain | File |
89+
|-------|--------|------|
90+
| `qe-accessibility-auditor` | visual-accessibility | `qe-accessibility-auditor.md` |
91+
92+
## V3 Subagents (0)
93+
94+
Specialized sub-task agents for TDD and code review.
95+
96+
*None installed*
97+
98+
---
99+
100+
*Updated 2026-01-26 - Added V2→V3 migration guide and video pipeline documentation*

.claude/agents/v3/qe-accessibility-auditor.md

Lines changed: 112 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -53,17 +53,118 @@ Proceed with testing without confirmation when standards are clear.
5353
Apply multi-tool testing by default for comprehensive coverage.
5454
Generate remediation guidance with code examples automatically.
5555

56-
**Video Accessibility Pipeline (MANDATORY for pages with videos):**
57-
1. Extract video URLs using Playwright/network interception
58-
2. Download videos locally with curl/ffmpeg
59-
3. Extract frames: `ffmpeg -i video.mp4 -vf "fps=1/3" -frames:v 10 frame_%02d.jpg`
60-
4. Analyze each frame with Claude Vision (Read tool on .jpg files)
61-
5. Generate WebVTT captions from ACTUAL frame descriptions
62-
6. Generate audio descriptions for blind users
63-
7. Save files to `docs/accessibility/captions/` ready to deploy
64-
65-
**NEVER skip video analysis when videos are detected.**
66-
**NEVER generate generic/template captions - use actual frame descriptions.**
56+
## CRITICAL: VIDEO ACCESSIBILITY PIPELINE
57+
58+
**This pipeline is MANDATORY when ANY video is detected on the page.**
59+
**Failure to execute this pipeline is a CRITICAL ERROR.**
60+
61+
### Detection Phase
62+
Look for these video indicators in fetched HTML:
63+
- `<video>` elements with `src` or `<source>` children
64+
- `<iframe>` with YouTube/Vimeo/Wistia URLs
65+
- `video-container`, `video-player` class elements
66+
- JavaScript video players (Video.js, Plyr, etc.)
67+
68+
### Execution Phase (FOR EACH VIDEO)
69+
70+
**Step 1: Download Video**
71+
```bash
72+
# Create working directory
73+
mkdir -p /tmp/a11y-video-work
74+
75+
# For direct MP4/WebM URLs
76+
curl -L -o /tmp/a11y-video-work/video-001.mp4 "VIDEO_URL"
77+
78+
# For YouTube (if yt-dlp available)
79+
yt-dlp -f "best[height<=720]" -o /tmp/a11y-video-work/video-001.mp4 "YOUTUBE_URL" 2>/dev/null || echo "yt-dlp not available"
80+
```
81+
82+
**Step 2: Extract Frames**
83+
```bash
84+
mkdir -p /tmp/a11y-video-work/frames-001
85+
ffmpeg -i /tmp/a11y-video-work/video-001.mp4 \
86+
-vf "fps=1/3" \
87+
-frames:v 10 \
88+
/tmp/a11y-video-work/frames-001/frame_%02d.jpg \
89+
2>/dev/null
90+
```
91+
92+
**Step 3: Analyze Each Frame with Claude Vision**
93+
Use the Read tool on EACH extracted .jpg file:
94+
```
95+
Read /tmp/a11y-video-work/frames-001/frame_01.jpg
96+
Read /tmp/a11y-video-work/frames-001/frame_02.jpg
97+
Read /tmp/a11y-video-work/frames-001/frame_03.jpg
98+
... (continue for all 10 frames)
99+
```
100+
101+
For each frame, document:
102+
- Scene: Setting, environment, lighting conditions
103+
- People: Who is present, what they're doing, expressions
104+
- Objects: Products, props, vehicles, equipment
105+
- Text: Any visible text, logos, signs, labels
106+
- Action: What's happening, movement, transitions
107+
- Colors: Dominant colors, contrasts, accessibility-relevant
108+
109+
**Step 4: Generate WebVTT Captions**
110+
```vtt
111+
WEBVTT
112+
Kind: captions
113+
114+
00:00:00.000 --> 00:00:03.000
115+
[Description from frame_01.jpg analysis]
116+
117+
00:00:03.000 --> 00:00:06.000
118+
[Description from frame_02.jpg analysis]
119+
120+
00:00:06.000 --> 00:00:09.000
121+
[Description from frame_03.jpg analysis]
122+
```
123+
124+
**Step 5: Generate Audio Descriptions**
125+
```vtt
126+
WEBVTT
127+
Kind: descriptions
128+
129+
00:00:00.000 --> 00:00:03.000
130+
SCENE: [Detailed scene description for blind users]
131+
VISUAL: [What's on screen]
132+
TEXT: [Any readable text]
133+
ACTION: [What's happening]
134+
```
135+
136+
**Step 6: Save Output Files**
137+
```bash
138+
# Create output directory
139+
mkdir -p docs/accessibility/captions/{page-slug}
140+
141+
# Save generated files
142+
# - video-001-captions.vtt
143+
# - video-001-audiodesc.vtt
144+
# - implementation.md (HTML code examples)
145+
```
146+
147+
### Enforcement Rules
148+
149+
1. **NEVER** complete an accessibility audit without checking for videos
150+
2. **NEVER** skip the video pipeline if videos are detected
151+
3. **NEVER** generate placeholder/template captions - use ACTUAL frame analysis
152+
4. **ALWAYS** use the Read tool on actual .jpg frame files for Vision analysis
153+
5. **ALWAYS** save output to `docs/accessibility/captions/{page-slug}/`
154+
6. **ALWAYS** include implementation instructions in the output
155+
156+
### Validation Checklist (Self-Check Before Completing)
157+
158+
- [ ] Did I check for `<video>` and `<iframe>` elements?
159+
- [ ] Did I download each detected video?
160+
- [ ] Did I extract frames with ffmpeg?
161+
- [ ] Did I use Read tool on each .jpg frame file?
162+
- [ ] Did I generate captions.vtt from ACTUAL frame descriptions?
163+
- [ ] Did I generate audiodesc.vtt with detailed scene info?
164+
- [ ] Did I save files to docs/accessibility/captions/?
165+
- [ ] Did I include implementation instructions?
166+
167+
**If ANY checkbox is NO and videos were detected, the task is INCOMPLETE.**
67168
</default_to_action>
68169

69170
<parallel_execution>

.claude/mcp.json

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,18 @@
5555
],
5656
"env": {
5757
"NODE_NO_WARNINGS": "1",
58-
"VIBIUM_HEADLESS": "false"
58+
"VIBIUM_HEADLESS": "true",
59+
"CHROMEDRIVER_PATH": "/usr/bin/chromedriver",
60+
"CHROME_PATH": "/usr/bin/chromium"
61+
}
62+
},
63+
"aqe": {
64+
"command": "aqe-mcp",
65+
"args": [],
66+
"env": {
67+
"AQE_PROJECT_ROOT": "/workspaces/agentic-qe",
68+
"NODE_ENV": "production"
5969
}
6070
}
6171
}
62-
}
72+
}

0 commit comments

Comments
 (0)