with one click
qa-workflow
// Complete QA Validator workflow orchestration. References specialized skills for each validation step. Load at session startup for full protocol.
// Complete QA Validator workflow orchestration. References specialized skills for each validation step. Load at session startup for full protocol.
[HINT] Download the complete skill directory including SKILL.md and all related files
| name | qa-workflow |
| description | Complete QA Validator workflow orchestration. References specialized skills for each validation step. Load at session startup for full protocol. |
"Orchestration layer for QA validation - delegate to specialized skills for each step."
pending-messages-qa.json → inbox diagnosticsmessages/*) or pending transaction files (pending-messages-*.json)status_update:
working when validation startsawaiting_pm / awaiting_gd when blockedready / waiting / idle when available for next deliveryPRE-REQUISITE: You should already have loaded the shared-worktree skill and be in the correct worktree directory before starting this workflow!
On each QA agent spawn, follow these steps EXACTLY in order:
Before any validation work begins:
.claude/session/validation-state.json if it doesn't exist{
"taskId": "{taskId from validation_request}",
"startedAt": "{ISO-8601 timestamp}",
"checkpoints": {
"codeReview": null,
"typeCheck": null,
"lint": null,
"test": null,
"build": null,
"codeRefactor": false
}
}
Send status_update to watchdog with status: "working" and current task details.
BEFORE running any automated checks:
qa-code-review skillvalidation-state.json → checkpoints.codeReview = "PASS" or "FAIL"Follow the qa-validation-workflow skill guidelines:
qa-validation-workflow skillvalidation-state.json before proceedingBEFORE proceeding to specification validation:
validation-state.jsoncheckpoints.codeRefactor == truevalidation_request.payload.files for list of created/modified filesTask tool → subagent_type: "code-refactor", model: "sonnet"
Prompt: "Review and refactor these files using codebase-cleanup-refactor-clean skill:
Files to review: {files.create} + {files.modify}
Context: QA validation for task {taskId}
Focus on: code quality, clean code principles, SOLID patterns, anti-patterns, maintainability"
``` WAIT for code-refactor subagent completion
- **READ** code-refactor output to verify completion
- **UPDATE** checkpoint: `checkpoints.codeRefactor = true`
- **IF changes were made:** Re-execute Step 3 (re-validation loop)
- **IF re-validation FAILS:** Report bug, DO NOT proceed
- **ONLY** proceed to Step 5 after code-refactor checkpoint is true
checkpoints.codeRefactor = trueAfter all automated checks pass and code-refactor completes:
prd.json for the task's acceptance criteriaBEFORE committing or reporting:
validation-state.jsoncodeReview: "PASS"typeCheck: "PASS"lint: "PASS"test: "PASS"build: "PASS"codeRefactor: trueONLY execute after Steps 0-6 complete successfully:
validation-state.json with finalStatus: "PASSED" or "FAILED"[ralph] [qa] {taskId}: Validation {status}shared-lifecycle skillstatus_update to watchdog with status: "ready"If validation cannot proceed due to missing information:
prd.json task state with blocker detailsstate.status = "awaiting_pm" or "awaiting_gd"state.lastSeen = "{ISO_TIMESTAMP}"status_update to watchdog with blocked statusCRITICAL: If code-refactor makes changes, you MUST re-run automated checks:
typeCheck, lint, test, build → null| Current State | Trigger | Action | Next State |
|---|---|---|---|
idle | Task assigned | Initialize state, validate | working |
working | All checkpoints pass | Report PASS to PM, merge to main | idle |
working | Any checkpoint fails | Report FAIL with bug report | idle |
working | Criteria unclear | Ask Game Designer | awaiting_gd |
working | Test approach unclear | Ask PM | awaiting_pm |
BEFORE exiting, you MUST verify:
checkpoints.codeRefactor == true)[ralph] [qa] prefixready/idle)