qa-workflow-cc 1.0.0
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 +461 -0
- package/VERSION +1 -0
- package/bin/install.js +116 -0
- package/commands/qa/continue.md +77 -0
- package/commands/qa/full.md +149 -0
- package/commands/qa/init.md +105 -0
- package/commands/qa/resume.md +91 -0
- package/commands/qa/status.md +66 -0
- package/package.json +28 -0
- package/skills/qa/SKILL.md +420 -0
- package/skills/qa/references/continuation-format.md +58 -0
- package/skills/qa/references/exit-criteria.md +53 -0
- package/skills/qa/references/lifecycle.md +181 -0
- package/skills/qa/references/model-profiles.md +77 -0
- package/skills/qa/templates/agent-skeleton.md +733 -0
- package/skills/qa/templates/component-test.md +1088 -0
- package/skills/qa/templates/domain-research-queries.md +101 -0
- package/skills/qa/templates/domain-security-profiles.md +182 -0
- package/skills/qa/templates/e2e-test.md +1200 -0
- package/skills/qa/templates/nielsen-heuristics.md +274 -0
- package/skills/qa/templates/performance-benchmarks-base.md +321 -0
- package/skills/qa/templates/qa-report-template.md +271 -0
- package/skills/qa/templates/security-checklist-owasp.md +451 -0
- package/skills/qa/templates/stop-points/bootstrap-complete.md +36 -0
- package/skills/qa/templates/stop-points/certified.md +25 -0
- package/skills/qa/templates/stop-points/escalated.md +32 -0
- package/skills/qa/templates/stop-points/fix-ready.md +43 -0
- package/skills/qa/templates/stop-points/phase-transition.md +4 -0
- package/skills/qa/templates/stop-points/status-dashboard.md +32 -0
- package/skills/qa/templates/test-standards.md +652 -0
- package/skills/qa/templates/unit-test.md +998 -0
- package/skills/qa/templates/visual-regression.md +418 -0
- package/skills/qa/workflows/bootstrap.md +45 -0
- package/skills/qa/workflows/decision-gate.md +66 -0
- package/skills/qa/workflows/fix-execute.md +132 -0
- package/skills/qa/workflows/fix-plan.md +52 -0
- package/skills/qa/workflows/report-phase.md +64 -0
- package/skills/qa/workflows/test-phase.md +86 -0
- package/skills/qa/workflows/verify-phase.md +65 -0
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# Workflow: Report Phase (Phase 4)
|
|
2
|
+
|
|
3
|
+
<purpose>
|
|
4
|
+
Consolidate raw test results into a single QA report using the report writer agent.
|
|
5
|
+
</purpose>
|
|
6
|
+
|
|
7
|
+
<required_context>
|
|
8
|
+
- PROFILE: .claude/qa-profile.json (project name, apps)
|
|
9
|
+
- STATE: docs/qa-reports/cycle-state.json (cycle number, rawResultsDir)
|
|
10
|
+
- MODEL_MAP: resolved model for qa-report-writer
|
|
11
|
+
- RAW_RESULTS: docs/qa-reports/cycle-{N}-raw/*.md
|
|
12
|
+
</required_context>
|
|
13
|
+
|
|
14
|
+
<process>
|
|
15
|
+
|
|
16
|
+
## 1. Read Raw Results
|
|
17
|
+
|
|
18
|
+
Read all files from `docs/qa-reports/cycle-{N}-raw/`:
|
|
19
|
+
- List files in directory
|
|
20
|
+
- Read each file to get agent results
|
|
21
|
+
|
|
22
|
+
## 2. Identify Previous Cycle (for trends)
|
|
23
|
+
|
|
24
|
+
If cycle > 1, locate previous cycle report:
|
|
25
|
+
`docs/qa-reports/cycle-{N-1}-*.md`
|
|
26
|
+
|
|
27
|
+
## 3. Spawn Report Writer
|
|
28
|
+
|
|
29
|
+
Inline raw results paths and previous cycle path into the prompt:
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
Task(
|
|
33
|
+
subagent_type="general-purpose",
|
|
34
|
+
prompt="[QA-REPORT-WRITER] Read .claude/agents/qa-report-writer.md.
|
|
35
|
+
IMPORTANT: Read the Resources section FIRST.
|
|
36
|
+
|
|
37
|
+
PROJECT CONTEXT (inlined from profile):
|
|
38
|
+
- Project: {PROFILE.project.name}
|
|
39
|
+
- Apps: {JSON summary of PROFILE.apps}
|
|
40
|
+
- Cycle: {N}
|
|
41
|
+
|
|
42
|
+
RAW RESULTS TO CONSOLIDATE:
|
|
43
|
+
{list of file paths in cycle-{N}-raw/}
|
|
44
|
+
|
|
45
|
+
Write consolidated report to: docs/qa-reports/cycle-{N}-{date}.md
|
|
46
|
+
Previous cycle report: {path if exists, or 'none — first cycle'}
|
|
47
|
+
Use previous cycle for trend comparison if available.",
|
|
48
|
+
model="{MODEL_MAP['qa-report-writer']}",
|
|
49
|
+
description="QA report cycle {N}"
|
|
50
|
+
)
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## 4. Write Completion Checkpoint
|
|
54
|
+
|
|
55
|
+
```json
|
|
56
|
+
{ "phase": "reporting_complete" }
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## 5. Output Phase Transition
|
|
60
|
+
|
|
61
|
+
Read and output `~/.claude/skills/qa/templates/stop-points/phase-transition.md`
|
|
62
|
+
Substitute: {X} = 4, {Y} = 5
|
|
63
|
+
|
|
64
|
+
</process>
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
# Workflow: Test Phase (Phase 3)
|
|
2
|
+
|
|
3
|
+
<purpose>
|
|
4
|
+
Execute test agents in parallel based on scope, save raw results to disk, and checkpoint state transitions.
|
|
5
|
+
</purpose>
|
|
6
|
+
|
|
7
|
+
<required_context>
|
|
8
|
+
- PROFILE: .claude/qa-profile.json (apps, commands, scopes, agentRouting)
|
|
9
|
+
- STATE: docs/qa-reports/cycle-state.json (cycle number, scope)
|
|
10
|
+
- MODEL_MAP: resolved model per agent from ~/.claude/skills/qa/references/model-profiles.md
|
|
11
|
+
</required_context>
|
|
12
|
+
|
|
13
|
+
<process>
|
|
14
|
+
|
|
15
|
+
## 1. Write State Checkpoint
|
|
16
|
+
|
|
17
|
+
```json
|
|
18
|
+
{ "phase": "testing", "cycle": N, "scope": "{scope}" }
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Write to `docs/qa-reports/cycle-state.json` BEFORE spawning any agents.
|
|
22
|
+
|
|
23
|
+
## 2. Create Raw Results Directory
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
mkdir -p docs/qa-reports/cycle-{N}-raw/
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## 3. Determine Agents to Spawn
|
|
30
|
+
|
|
31
|
+
Based on scope filter:
|
|
32
|
+
|
|
33
|
+
| Scope | Agents |
|
|
34
|
+
|-------|--------|
|
|
35
|
+
| `full` | qa-test-executor, qa-security-auditor, qa-ux-optimizer |
|
|
36
|
+
| `api` | qa-test-executor (backend apps only), qa-security-auditor |
|
|
37
|
+
| `security` | qa-security-auditor |
|
|
38
|
+
| `ux` | qa-ux-optimizer |
|
|
39
|
+
| `{app-name}` | qa-test-executor (filtered to app) |
|
|
40
|
+
|
|
41
|
+
## 4. Spawn Test Agents (parallel, up to 8)
|
|
42
|
+
|
|
43
|
+
For each applicable agent, inline the following into the Task() prompt:
|
|
44
|
+
- Agent instructions path: `.claude/agents/qa-{type}.md`
|
|
45
|
+
- App list from PROFILE.apps (names, paths, frameworks, testIdPrefixes)
|
|
46
|
+
- Test commands from PROFILE.commands
|
|
47
|
+
- Cycle number and scope from STATE
|
|
48
|
+
- Any scope-specific filtering instructions
|
|
49
|
+
|
|
50
|
+
```
|
|
51
|
+
Task(
|
|
52
|
+
subagent_type="general-purpose",
|
|
53
|
+
prompt="[QA-{AGENT-TYPE}] Read your instructions from .claude/agents/qa-{type}.md.
|
|
54
|
+
IMPORTANT: Read the Resources section FIRST — load all listed skill files before executing.
|
|
55
|
+
|
|
56
|
+
PROJECT CONTEXT (inlined from profile):
|
|
57
|
+
- Apps: {JSON array of relevant apps from PROFILE.apps}
|
|
58
|
+
- Test command: {PROFILE.commands.test}
|
|
59
|
+
- Cycle: {N}, Scope: {scope}
|
|
60
|
+
- Domain: {PROFILE.project.domain}
|
|
61
|
+
{scope-specific instructions}
|
|
62
|
+
|
|
63
|
+
Return results in structured table format.",
|
|
64
|
+
model="{MODEL_MAP[agent-type]}",
|
|
65
|
+
description="QA {agent-type} cycle {N}"
|
|
66
|
+
)
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## 5. Save Raw Results
|
|
70
|
+
|
|
71
|
+
After each agent returns, save its output to:
|
|
72
|
+
`docs/qa-reports/cycle-{N}-raw/{agent-type}.md`
|
|
73
|
+
|
|
74
|
+
## 6. Write Completion Checkpoint
|
|
75
|
+
|
|
76
|
+
After ALL agents return:
|
|
77
|
+
```json
|
|
78
|
+
{ "phase": "testing_complete" }
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
## 7. Output Phase Transition
|
|
82
|
+
|
|
83
|
+
Read and output `~/.claude/skills/qa/templates/stop-points/phase-transition.md`
|
|
84
|
+
Substitute: {X} = 3, {Y} = 4
|
|
85
|
+
|
|
86
|
+
</process>
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# Workflow: Verify Phase (Phase 7b)
|
|
2
|
+
|
|
3
|
+
<purpose>
|
|
4
|
+
Run full verification after fix execution, then route to next test cycle.
|
|
5
|
+
</purpose>
|
|
6
|
+
|
|
7
|
+
<required_context>
|
|
8
|
+
- PROFILE: .claude/qa-profile.json (commands.typeCheck, commands.build, commands.test)
|
|
9
|
+
- STATE: docs/qa-reports/cycle-state.json (cycle number)
|
|
10
|
+
- MODEL_MAP: resolved model for qa-verifier
|
|
11
|
+
</required_context>
|
|
12
|
+
|
|
13
|
+
<process>
|
|
14
|
+
|
|
15
|
+
## 1. Full Build Verification
|
|
16
|
+
|
|
17
|
+
Run sequentially:
|
|
18
|
+
1. `{PROFILE.commands.typeCheck}`
|
|
19
|
+
2. `{PROFILE.commands.build}`
|
|
20
|
+
|
|
21
|
+
If either fails, log failure and continue to re-test (tests will catch the issues).
|
|
22
|
+
|
|
23
|
+
## 2. Re-Run Full Test Suite
|
|
24
|
+
|
|
25
|
+
Spawn qa-verifier agent:
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
Task(
|
|
29
|
+
subagent_type="general-purpose",
|
|
30
|
+
prompt="[QA-VERIFIER] Read .claude/agents/qa-verifier.md.
|
|
31
|
+
IMPORTANT: Read the Resources section FIRST.
|
|
32
|
+
|
|
33
|
+
Run FULL test suite (not just previously failed tests) to catch regressions.
|
|
34
|
+
|
|
35
|
+
PROJECT CONTEXT (inlined):
|
|
36
|
+
- Test command: {PROFILE.commands.test}
|
|
37
|
+
- Apps: {JSON summary of PROFILE.apps}
|
|
38
|
+
- Cycle: {N} (post-fix verification)
|
|
39
|
+
|
|
40
|
+
Return complete results in structured table format.",
|
|
41
|
+
model="{MODEL_MAP['qa-verifier']}",
|
|
42
|
+
description="QA full verify cycle {N}"
|
|
43
|
+
)
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## 3. Merge Results
|
|
47
|
+
|
|
48
|
+
Merge verification results with cycle state.
|
|
49
|
+
|
|
50
|
+
## 4. Increment Cycle Number
|
|
51
|
+
|
|
52
|
+
```json
|
|
53
|
+
{ "cycle": N+1 }
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## 5. GOTO Phase 3
|
|
57
|
+
|
|
58
|
+
Continue autonomously to next test cycle (Phase 3 in `/qa:full` context).
|
|
59
|
+
|
|
60
|
+
## 6. Output Phase Transition
|
|
61
|
+
|
|
62
|
+
Read and output `~/.claude/skills/qa/templates/stop-points/phase-transition.md`
|
|
63
|
+
Substitute: {X} = 7b, {Y} = 3 (next cycle)
|
|
64
|
+
|
|
65
|
+
</process>
|