QA Phase Skill
Execute QA phase of the PDCA cycle. Automatically runs L1-L5 tests with Chrome MCP integration.
Arguments
| Argument |
Description |
Example |
[feature] |
Target feature to test |
/qa-phase user-auth |
Workflow
- Context: Read design doc and Check phase analysis
- Plan: Generate test plan (L1-L5 items with priorities)
- Generate: Create test code files
- Execute: Run L1-L5 tests (L3-L5 require Chrome MCP)
- Report: Generate QA report to
docs/05-qa/{feature}.qa-report.md
PRE-SCAN: Pre-Release Quality Check
Before running L1 tests, execute the automated quality scanners to catch structural issues early.
Steps
- Run
bash ${PLUGIN_ROOT}/scripts/qa/pre-release-check.sh via Bash.
The path must be absolute: the script ships inside the plugin, not in the
user's project, so a relative scripts/qa/... resolves to nothing wherever
this skill actually runs. The script scans $CLAUDE_PROJECT_DIR (falling back
to the working directory) — pass --root DIR to point it elsewhere.
- Parse the output for CRITICAL / WARNING / INFO counts
- If CRITICAL issues found:
- Report all CRITICAL issues with file paths and suggested fixes
- Recommend fixing CRITICAL issues before proceeding with L1-L5 tests
- Use AskUserQuestion to ask whether to continue or abort the QA phase
(e.g. options: "Fix CRITICAL first" / "Continue anyway" / "Abort QA").
This gate is issued directly here, in the main session context — qa-phase
is deliberately not
context: fork. AskUserQuestion is stripped at the
fork sub-agent boundary (CC #34592 / #54892), so it must run in the main
context and must not be delegated to a sub-agent (qa-lead, etc.).
- If only WARNING/INFO issues (no CRITICAL):
- Include scanner results in the QA report under "Pre-Release Scan" section
- Continue to L1 test planning
Scanner Coverage
| Scanner |
Detects |
Severity |
| dead-code |
Stale require/import, unused exports |
CRITICAL / WARNING |
| config-audit |
Unreferenced config keys, hardcoded values, missing paths |
CRITICAL / WARNING / INFO |
| completeness |
Missing agents, long descriptions, missing effort |
CRITICAL / WARNING / INFO |
| shell-escape |
Bare $N in awk, unescaped backticks, unsafe heredocs |
CRITICAL / WARNING |
| wiring |
Exported but never called functions |
WARNING |
QA Report Integration
When scanner results are available, include them in the QA report:
## Pre-Release Scan Results
- **Scanner**: dead-code — 0 CRITICAL, 1 WARNING, 0 INFO
- **Scanner**: config-audit — 0 CRITICAL, 0 WARNING, 2 INFO
- **Scanner**: completeness — 0 CRITICAL, 0 WARNING, 1 INFO
- **Scanner**: shell-escape — 0 CRITICAL, 0 WARNING, 0 INFO
- **Scanner**: wiring — 0 CRITICAL, 1 WARNING, 0 INFO
**Overall**: PASS (0 CRITICAL issues)
Test Levels
| Level |
Type |
Tool |
Chrome Required |
| L1 |
Unit Test |
Node.js / Jest / Vitest |
No |
| L2 |
API Test |
fetch / curl |
No |
| L3 |
E2E Test |
Chrome MCP |
Yes |
| L4 |
UX Flow Test |
Chrome MCP |
Yes |
| L5 |
Data Flow Test |
Chrome MCP + Bash |
Yes |
Fallback
Chrome MCP unavailable:
- L1 + L2 only
- QA report notes "L3-L5 skipped"
- QA pass/fail based on L1+L2 results only
1---2name: qa-phase3description: QA Phase execution — L1-L5 test planning, generation, execution, and reporting for a single feature. For sprint-level QA (7-Layer dataFlowIntegrity / S1 gate across multiple features) use /sprint qa <sprintId> which delegates to sprint-qa-flow agent (v2.1.13). Triggers: qa phase, QA test, qa run4---56# QA Phase Skill78> Execute QA phase of the PDCA cycle. Automatically runs L1-L5 tests with Chrome MCP integration.910## Arguments1112| Argument | Description | Example |13|----------|-------------|---------|14| `[feature]` | Target feature to test | `/qa-phase user-auth` |1516## Workflow17181. **Context**: Read design doc and Check phase analysis192. **Plan**: Generate test plan (L1-L5 items with priorities)203. **Generate**: Create test code files214. **Execute**: Run L1-L5 tests (L3-L5 require Chrome MCP)225. **Report**: Generate QA report to `docs/05-qa/{feature}.qa-report.md`2324## PRE-SCAN: Pre-Release Quality Check2526Before running L1 tests, execute the automated quality scanners to catch structural issues early.2728### Steps29301. Run `bash ${PLUGIN_ROOT}/scripts/qa/pre-release-check.sh` via Bash.31 The path must be absolute: the script ships inside the plugin, not in the32 user's project, so a relative `scripts/qa/...` resolves to nothing wherever33 this skill actually runs. The script scans `$CLAUDE_PROJECT_DIR` (falling back34 to the working directory) — pass `--root DIR` to point it elsewhere.352. Parse the output for CRITICAL / WARNING / INFO counts363. **If CRITICAL issues found**:37 - Report all CRITICAL issues with file paths and suggested fixes38 - Recommend fixing CRITICAL issues before proceeding with L1-L5 tests39 - Use **AskUserQuestion** to ask whether to continue or abort the QA phase40 (e.g. options: "Fix CRITICAL first" / "Continue anyway" / "Abort QA").41 This gate is issued directly here, in the main session context — qa-phase42 is deliberately **not** `context: fork`. AskUserQuestion is stripped at the43 fork sub-agent boundary (CC #34592 / #54892), so it must run in the main44 context and must not be delegated to a sub-agent (qa-lead, etc.).454. **If only WARNING/INFO issues (no CRITICAL)**:46 - Include scanner results in the QA report under "Pre-Release Scan" section47 - Continue to L1 test planning4849### Scanner Coverage5051| Scanner | Detects | Severity |52|---------|---------|----------|53| dead-code | Stale require/import, unused exports | CRITICAL / WARNING |54| config-audit | Unreferenced config keys, hardcoded values, missing paths | CRITICAL / WARNING / INFO |55| completeness | Missing agents, long descriptions, missing effort | CRITICAL / WARNING / INFO |56| shell-escape | Bare $N in awk, unescaped backticks, unsafe heredocs | CRITICAL / WARNING |57| wiring | Exported but never called functions | WARNING |5859### QA Report Integration6061When scanner results are available, include them in the QA report:6263```markdown64## Pre-Release Scan Results6566- **Scanner**: dead-code — 0 CRITICAL, 1 WARNING, 0 INFO67- **Scanner**: config-audit — 0 CRITICAL, 0 WARNING, 2 INFO68- **Scanner**: completeness — 0 CRITICAL, 0 WARNING, 1 INFO69- **Scanner**: shell-escape — 0 CRITICAL, 0 WARNING, 0 INFO70- **Scanner**: wiring — 0 CRITICAL, 1 WARNING, 0 INFO7172**Overall**: PASS (0 CRITICAL issues)73```7475## Test Levels7677| Level | Type | Tool | Chrome Required |78|-------|------|------|:---------------:|79| L1 | Unit Test | Node.js / Jest / Vitest | No |80| L2 | API Test | fetch / curl | No |81| L3 | E2E Test | Chrome MCP | Yes |82| L4 | UX Flow Test | Chrome MCP | Yes |83| L5 | Data Flow Test | Chrome MCP + Bash | Yes |8485## Fallback8687Chrome MCP unavailable:88- L1 + L2 only89- QA report notes "L3-L5 skipped"90- QA pass/fail based on L1+L2 results only