mcpField
U
ultraqa

ultraqa

github.com/yeachan-heoテスト・品質40.4k902 回インストール1 日前に更新
リポジトリ

ultraqa について

UltraQAは、目標となる動作が定まった後に、品質チェック、診断、修正を繰り返す自律型QAサイクルスキルです。指定されたチェックを実行し、失敗時は診断と修正を行い、回数上限と早期停止条件を適用します。

主な機能

  1. 01テスト、ビルド、lint、型チェックを指定
  2. 02QA結果の実行と追跡
  3. 03失敗時の診断と修正を調整
  4. 04最大5サイクルで反復失敗を検出
  5. 05完了または終了時に状態ファイルを削除

活用シーン

  1. 01テストを成功または上限まで再実行
  2. 02ビルド失敗の診断と修正
  3. 03lintやTypeScriptエラーの確認
  4. 04カスタムパターンによるコマンド出力の検証

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/yeachan-heo/oh-my-claudecode --skill ultraqa

インストール後、Claude Code で/ultraqaを入力して読み込まれたか確認します。

詳細

UltraQA スキル

[ULTRAQA ACTIVATED - AUTONOMOUS QA CYCLING]

概要

ULTRAQA モードになりました。品質目標を達成するまで実行される、自律的な QA サイクルワークフローです。

サイクル:qa-tester → architect による検証 → 修正 → 繰り返し

/goal、Ralph、Team、Ultragoal との関係

UltraQA が担当するのは、品質ゲートのサイクルを繰り返すことだけです。非決定的な警告処理ではなく、決定的な競合ポリシー refuse、adopt_existing、artifact_only を使用してください。対象の動作が明確になり、残る確認事項がテスト、ビルド、lint、型チェック、またはその他の明示的な QA 条件に合格するかどうかだけになった段階で使用します。Claude Code の /goal が有効な場合、UltraQA はその目標に対する可視のコマンド実行エビデンスを作成できますが、/goal の評価器が独自にコマンドを実行したり、ファイルを読み取ったりすると説明してはなりません。Ralph または Team が有効な場合、UltraQA はその権限下での検証・修正サブループであり、競合するセッションループではありません。安全に実行できるアクティブループがない場合は、自動実行を行ったと主張せず、artifact-only の Ultragoal ノートに QA の期待事項とエビデンスを記録します。

目標の解析

引数から目標を解析します。次の形式に対応しています。

呼び出し目標の種類確認内容
/oh-my-claudecode:ultraqa --teststestsすべてのテストスイートに合格する
/oh-my-claudecode:ultraqa --buildbuildビルドが終了コード 0 で成功する
/oh-my-claudecode:ultraqa --lintlintlint エラーがない
/oh-my-claudecode:ultraqa --typechecktypecheckTypeScript エラーがない
/oh-my-claudecode:ultraqa --custom "pattern"custom出力にカスタム成功パターンがある

構造化された目標が指定されていない場合、引数をカスタム目標として解釈します。

サイクルワークフロー

サイクル N(最大 5 回)
  1. QA を実行:目標の種類に基づいて検証を実行します

    • --tests:プロジェクトのテストコマンドを実行します
    • --build:プロジェクトのビルドコマンドを実行します
    • --lint:プロジェクトの lint コマンドを実行します
    • --typecheck:プロジェクトの型チェックコマンドを実行します
    • --custom:適切なコマンドを実行し、パターンを確認します
    • --interactive:対話型の CLI/サービスのテストには qa-tester を使用します:
      Task(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]")
      
  2. 結果を確認:目標を達成しましたか?

    • はい → 成功メッセージを出力して終了します
    • いいえ → 手順 3 に進みます
  3. architect による診断:失敗を分析するため、architect を起動します

    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.")
    
  4. 問題を修正:architect の推奨事項を適用します

    Task(subagent_type="oh-my-claudecode:executor", model="sonnet", prompt="FIX:
    Issue: [architect diagnosis]
    Files: [affected files]
    Apply the fix precisely as recommended.")
    
  5. 繰り返し:手順 1 に戻ります

終了条件

条件アクション
目標達成成功して終了します:「ULTRAQA COMPLETE: Goal met after N cycles」
サイクル 5 に到達診断を出力して終了します:「ULTRAQA STOPPED: Max cycles. Diagnosis: ...」
同じ失敗が 3 回早期終了します:「ULTRAQA STOPPED: Same failure detected 3 times. Root cause: ...」
環境エラー終了します:「ULTRAQA ERROR: [tmux/port/dependency issue]」

可観測性

各サイクルの進行状況を出力します:

[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

状態の追跡

状態を .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"
}

キャンセル

ユーザーは /oh-my-claudecode:cancel でキャンセルできます。キャンセルすると状態ファイルがクリアされます。

重要なルール

  1. 可能な場合は並行して実行 - 修正候補を準備しながら診断を実行します
  2. 失敗を記録 - パターンを検出できるよう、失敗ごとに記録します
  3. パターンが見つかったら早期終了 - 同じ失敗が3回発生したら停止して報告します
  4. 出力を明確に - ユーザーが現在のサイクルとステータスを常に把握できるようにします
  5. クリーンアップ - 完了時またはキャンセル時に状態ファイルを削除します

完了時の状態のクリーンアップ

重要:完了時に状態ファイルを削除してください。active: false に設定するだけではいけません

目標達成時、最大サイクル数への到達時、または早期終了時:

# Delete ultraqa state file
rm -f .omc/state/ultraqa-state.json

これにより、以降のセッションで状態がクリーンに保たれます。active: false のまま古い状態ファイルを残さないでください。

並行セッションに関する注意事項

  • 複数リポジトリのワークスペースアンカー: 親ディレクトリに .omc-workspace マーカーを配置すると、複数のサブリポジトリにまたがるセッションで1つの .omc/ を共有できます。解決順序:OMC_STATE_DIR > .omc-workspace > git > cwd。docs/REFERENCE.md を参照してください。
  • セッション ID の取得元: CLI コンテキストでは OMC_SESSION_ID 環境変数が優先され、フックコンテキストでは hook payload の data.session_id が優先されます。
  • プラン ID(該当する場合): UltraQA の状態はセッション単位です。ralph との相互排他は同一セッション内に限り適用されます。
  • 並行実行の判定: サポートされています(セッション単位の状態)

今すぐ ULTRAQA のサイクルを開始してください。目標を解析し、サイクル1を開始してください。

コメント