with one click
ultraqa
QA cycling workflow - test, verify, fix, repeat until goal met
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
QA cycling workflow - test, verify, fix, repeat until goal met
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
Configure HUD display options (layout, presets, display elements)
Setup and configure oh-my-droid (the ONLY command you need to learn)
N coordinated agents on shared task list with SQLite-based atomic claiming
Set up and manage local skills for automatic matching and invocation
Manage local skills - list, add, remove, search, edit
Extract a learned skill from the current conversation
| name | ultraqa |
| description | QA cycling workflow - test, verify, fix, repeat until goal met |
[ULTRAQA ACTIVATED - AUTONOMOUS QA CYCLING]
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
Parse the goal from arguments. Supported formats:
| Invocation | Goal Type | What to Check |
|---|---|---|
/ultraqa --tests | tests | All test suites pass |
/ultraqa --build | build | Build succeeds with exit 0 |
/ultraqa --lint | lint | No lint errors |
/ultraqa --typecheck | typecheck | No TypeScript errors |
/ultraqa --custom "pattern" | custom | Custom success pattern in output |
If no structured goal provided, interpret the argument as a custom goal.
RUN QA: Execute verification based on goal type
--tests: Run npm test or equivalent--build: Run npm run build or equivalent--lint: Run npm run lint or equivalent--typecheck: Run npm run typecheck or tsc --noEmit--custom: Run appropriate command and check for pattern--interactive: Use qa-tester for interactive CLI/service testing:
Task(subagent_type="oh-my-droid:qa-tester", model="claude-sonnet-4-5-20250929", prompt="TEST:
Goal: [describe what to verify]
Service: [how to start]
Test cases: [specific scenarios to verify]")
CHECK RESULT: Did the goal pass?
ARCHITECT DIAGNOSIS: Spawn architect to analyze failure
Task(subagent_type="oh-my-droid:architect", model="claude-opus-4-5-20251101", 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-droid:executor", model="claude-sonnet-4-5-20250929", prompt="FIX:
Issue: [architect diagnosis]
Files: [affected files]
Apply the fix precisely as recommended.")
REPEAT: Go back to step 1
| 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]" |
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
Track state in .omd/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"
}
User can cancel with /cancel which clears the state file.
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 .omd/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.