skills/ultraqa/SKILL.md
QA cycling workflow - test, verify, fix, repeat until goal met
npx skillsauth add Thomashighbaugh/opencode ultraqaInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
[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 the project's test command--build: Run the project's build command--lint: Run the project's lint command--typecheck: Run the project's type check command--custom: Run appropriate command and check for pattern--interactive: Use qa-tester for interactive CLI/service testing:
@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?
ARCHITECT DIAGNOSIS: Spawn architect to analyze failure
@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
@executor(model="sonnet", 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 .opencode/state/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 .opencode/state/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.
verify skill — Lightweight verification for single changes without full QA cyclingtools
Create valid, type-safe TypeScript tools for OpenCode — generates correct boilerplate, typed interfaces, and handler stubs. Use when building new tools for global config or per-project .opencode/tools/.
testing
Explore multiple solution branches in parallel, evaluate each, and recommend the best path. Use when the user explicitly invokes /ideation tree-of-thoughts or asks for "tree of thought" / "branching exploration".
testing
Run multiple independent reasoning passes and find consensus. Use when the decision is critically important, the stakes are high, or the user explicitly requests "run it multiple times" / "check consistency" / "self-consistency".
testing
Optimization by PROmpting — generate candidate prompt variations, test each against a benchmark, and report the best performer. Use when the user invokes /ideation opro or asks for "prompt optimization" / "OPRO".