Oh-my-claudecode ultraqa
QA cycling workflow - test, verify, fix, repeat until goal met
git clone https://github.com/Yeachan-Heo/oh-my-claudecode
T=$(mktemp -d) && git clone --depth=1 https://github.com/Yeachan-Heo/oh-my-claudecode "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/ultraqa" ~/.claude/skills/yeachan-heo-oh-my-claudecode-ultraqa && rm -rf "$T"
skills/ultraqa/SKILL.mdUltraQA Skill
[ULTRAQA ACTIVATED - AUTONOMOUS QA CYCLING]
Overview
You are now in ULTRAQA mode - an autonomous QA cycling workflow that runs until your quality goal is met.
Cycle: qa-tester → architect verification → fix → repeat
Goal Parsing
Parse the goal from arguments. Supported formats:
| Invocation | Goal Type | What to Check |
|---|---|---|
| tests | All test suites pass |
| build | Build succeeds with exit 0 |
| lint | No lint errors |
| typecheck | No TypeScript errors |
| custom | Custom success pattern in output |
If no structured goal provided, interpret the argument as a custom goal.
Cycle Workflow
Cycle N (Max 5)
-
RUN QA: Execute verification based on goal type
: Run the project's test command--tests
: Run the project's build command--build
: Run the project's lint command--lint
: Run the project's type check command--typecheck
: Run appropriate command and check for pattern--custom
: Use qa-tester for interactive CLI/service testing:--interactiveTask(subagent_type="oh-my-claudecode:qa-tester", model="sonnet", prompt="TEST: Goal: [describe what to verify] Service: [how to start] Test cases: [specific scenarios to verify]")
-
CHECK RESULT: Did the goal pass?
- YES → Exit with success message
- NO → Continue to step 3
-
ARCHITECT DIAGNOSIS: Spawn architect to analyze failure
Task(subagent_type="oh-my-claudecode:architect", model="opus", prompt="DIAGNOSE FAILURE: Goal: [goal type] Output: [test/build output] Provide root cause and specific fix recommendations.") -
FIX ISSUES: Apply architect's recommendations
Task(subagent_type="oh-my-claudecode:executor", model="sonnet", prompt="FIX: Issue: [architect diagnosis] Files: [affected files] Apply the fix precisely as recommended.") -
REPEAT: Go back to step 1
Exit Conditions
| Condition | Action |
|---|---|
| Goal Met | Exit with success: "ULTRAQA COMPLETE: Goal met after N cycles" |
| Cycle 5 Reached | Exit with diagnosis: "ULTRAQA STOPPED: Max cycles. Diagnosis: ..." |
| Same Failure 3x | Exit early: "ULTRAQA STOPPED: Same failure detected 3 times. Root cause: ..." |
| Environment Error | Exit: "ULTRAQA ERROR: [tmux/port/dependency issue]" |
Observability
Output progress each cycle:
[ULTRAQA Cycle 1/5] Running tests... [ULTRAQA Cycle 1/5] FAILED - 3 tests failing [ULTRAQA Cycle 1/5] Architect diagnosing... [ULTRAQA Cycle 1/5] Fixing: auth.test.ts - missing mock [ULTRAQA Cycle 2/5] Running tests... [ULTRAQA Cycle 2/5] PASSED - All 47 tests pass [ULTRAQA COMPLETE] Goal met after 2 cycles
State Tracking
Track state in
.omc/ultraqa-state.json:
{ "active": true, "goal_type": "tests", "goal_pattern": null, "cycle": 1, "max_cycles": 5, "failures": ["3 tests failing: auth.test.ts"], "started_at": "2024-01-18T12:00:00Z", "session_id": "uuid" }
Cancellation
User can cancel with
/oh-my-claudecode:cancel which clears the state file.
Important Rules
- PARALLEL when possible - Run diagnosis while preparing potential fixes
- TRACK failures - Record each failure to detect patterns
- EARLY EXIT on pattern - 3x same failure = stop and surface
- CLEAR OUTPUT - User should always know current cycle and status
- CLEAN UP - Clear state file on completion or cancellation
STATE CLEANUP ON COMPLETION
IMPORTANT: Delete state files on completion - do NOT just set active: false
When goal is met OR max cycles reached OR exiting early:
# Delete ultraqa state file rm -f .omc/state/ultraqa-state.json
This ensures clean state for future sessions. Stale state files with
active: false should not be left behind.
Begin ULTRAQA cycling now. Parse the goal and start cycle 1.