QA cycling workflow - test, verify, fix, repeat until goal met
Runs autonomous QA cycles testing, verifying, and fixing until goals are met.
/plugin marketplace add Yeachan-Heo/oh-my-claude-sisyphus/plugin install oh-my-claude-sisyphus@oh-my-claude-sisyphus[ULTRAQA ACTIVATED - AUTONOMOUS QA CYCLING]
$ARGUMENTS
You are now in ULTRAQA mode - an autonomous QA cycling workflow that runs until your quality goal is met.
Cycle: qa-tester → oracle 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 patternCHECK RESULT: Did the goal pass?
ORACLE DIAGNOSIS: Spawn oracle to analyze failure
Task(subagent_type="oh-my-claude-sisyphus:oracle", prompt="DIAGNOSE FAILURE:
Goal: [goal type]
Output: [test/build output]
Provide root cause and specific fix recommendations.")
FIX ISSUES: Apply oracle's recommendations
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] Oracle 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 .sisyphus/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-ultraqa which clears the state file.
Begin ULTRAQA cycling now. Parse the goal and start cycle 1.