mcpField
U
ultraqa

ultraqa

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

ultraqa について

UltraQAは、実行可能な動作を対象とする、明示的なオプトイン方式の敵対的な動的エンドツーエンドQAスキルです。テストのシナリオ計画、回数を限定した検証サイクル、証拠収集、クリーンアップを構成します。

主な機能

  1. 01敵対的なエンドツーエンドシナリオ表
  2. 02テスト、ビルド、Lint、型チェックの各モード
  3. 03回数を限定した検証と修正サイクル
  4. 04証拠と終了コードの記録
  5. 05一時的なハーネスと成果物の整理

活用シーン

  1. 01不正形式や敵対的入力への動作確認
  2. 02キャンセル、再開、古い状態の処理確認
  3. 03回数を限定した再実行による不安定テストの調査
  4. 04制限付きハーネスでのCLIやサービスの動作確認

インストール

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

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

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

詳細

UltraQA タスクカード

実行可能な動作に対して敵対的な動的 E2E QA が必要な場合は、この明示的なオプトインを使用します。共有の運用上の不変条件は templates/AGENTS.md にあります。このカードでは QA マトリクス、証跡の契約、および制限付きの繰り返し処理のみを定義します。

使用タイミングと入力

  • 対応するゴールには /ultraqa --tests|--build|--lint|--typecheck|--interactive または /ultraqa --custom "pattern" を使用します。構造化されたゴールがない場合は、実行可能な動作ゴールを導出します。
  • 入力: ゴール、変更範囲、受け入れ基準、実行可能なコマンド/サービス、既存のテスト、関連する状態/クリーンアップのパス。
  • 結果優先の枠組み、アクティブなワークフローブランチのローカルな上書き、そして現在の検証済みの次のステップに対する continue を維持します。
  • ユーザーが continue と言った場合は、探索を最初からやり直すのではなく、現在の検証済みの QA ステップを進めます。
  • UltraQA は、浅いビルド/リント/型チェック/テストのチェックリストだけでは満たされません。安全に実行、シミュレーション、またはハーネス化できる場合は、必ず敵対的な動的 E2E シナリオを通じて要求された動作を検証します。

計画とシナリオマトリクス

コマンドを実行する前に、シナリオ ID、意図、ユーザー/攻撃者モデル、セットアップ、コマンドまたはハーネス、期待されるシグナル、実際の結果、修正内容、証跡、クリーンアップを含むマトリクスを記録します。通常のパスと関連する敵対的クラスの両方を含めてください:

  1. 不正な入力: 無効な JSON、欠落したフィールド、無効なフラグ、過大な文字列、珍しい Unicode、トラバーサルに似た値、破損した状態。
  2. 繰り返される中断: 繰り返される continue、stop/cancel/abort の表現、部分的な出力、リトライ。
  3. プロンプトインジェクション: 指示の上書き、シークレットの持ち出し、検証のスキップ、状態の削除、成功の偽装の試み。
  4. キャンセルと再開の動作および古い状態: クリーンアップ、再開の検出、一致しないセッション、欠落したタイムスタンプ、矛盾するフェーズ。
  5. 汚れたワークツリー: 既存の変更や未追跡ファイルがそのまま残ること。
  6. ハングまたは長時間実行されるコマンド: 制限付きのタイムアウト、強制終了された子プロセス、リカバリーのメモ。
  7. 不安定なテスト: 上限付きの再実行、失敗のクラスタリング、隔離の証跡。単発の偶然の成功は決して認めません。
  8. 誤解を招く成功出力: 非ゼロの終了コードを伴う成功テキスト、隠れた失敗、スキップ、部分的なログ。

サイクル(最大 5 回)

  1. 敵対的 QA の計画: ゴール、成功基準、安全上の境界、停止条件、実行可能な対象、マトリクスを明記します。
  2. ベースライン検証の実行: --tests はプロジェクトのテストを実行します。--build はビルドと、ビルド済みアーティファクトのプローブを実行します。--lint はリントを実行します。--typecheck は型チェックと型付きハーネスを実行します。--custom はパターンと終了ステータスを検証します。--interactive は制限付きの CLI/サービスハーネスを使用します。
  3. 敵対的な動的 E2E シナリオの実行: 終了コード、出力、アーティファクト、クリーンアップを記録します。
  4. 結果の確認: ベースライン、敵対的シナリオ、証跡、クリーンアップがすべて合格した場合のみ合格とします。そうでない場合は診断して修正し、再度繰り返します。
  5. アーキテクトによる診断では根本原因と安全上の影響を示す必要があります。問題の修正は正確に行い、クリーンアップとロールバックを次のサイクルの前に行います。対象は一時的なハーネス、フィクスチャ、ログ、プロセス、状態、失敗した実験です。

一時的なテスト、スクリプト、フィクスチャ、ハーネスは、有用な場合にのみ生成します。安全上の境界がシナリオを妨げる場合は、制限付きの実行時間、プロジェクトネイティブのツール、安全な代替手段を使用します。 /tmp から ./dist に依存しないでください。リポジトリの絶対パスによるインポートと pathToFileURL(join(repoRoot, "dist", ...)).href を使用します。補間しないファイル書き込み機構を備えた安全なファイルライターを使用し、JavaScript のアサーションに補間する heredoc を使用しないでください。 分離されたプローブのために OMX ランタイムの環境変数をサニタイズします。OMX_ROOT と OMX_STATE_ROOT は未設定のままにし、env -u OMX_ROOT -u OMX_STATE_ROOT で実行します。 ハーネスのセットアップの失敗は別に分類してください。ハーネスのデブリとして記録し、ハーネスを修正してからシナリオを再実行し、そのうえで製品の欠陥と判断します。

安全性、状態、終了

破壊的なコマンド、機密情報の持ち出し、認証情報のダンプ、本番環境への書き込み、無制限のプロセス生成は行わないでください。無制限の待機は使用せず、無関係な未コミットの作業は保持してください。シナリオが安全でない場合は、そのシナリオをブロック済みとして記録し、安全な代替手段を記載してください。同じ失敗が3回繰り返された場合は診断を添えて停止し、サイクル5では残存リスクを添えて停止します。目標が成功した場合は、合格したサイクルの後に終了します。

CLI優先のライフサイクル状態と正確なコマンドを使用してください:

omx state write --input '{"mode":"ultraqa","active":true,"current_phase":"planning","iteration":1,"started_at":"<now>","scenario_matrix":[]}' --json
omx state write --input '{"mode":"ultraqa","current_phase":"qa","iteration":<cycle>,"scenario_matrix":"<updated matrix path or summary>"}' --json
omx state write --input '{"mode":"ultraqa","current_phase":"adversarial-e2e"}' --json
omx state write --input '{"mode":"ultraqa","current_phase":"diagnose"}' --json
omx state write --input '{"mode":"ultraqa","current_phase":"fix"}' --json
omx state write --input '{"mode":"ultraqa","current_phase":"cleanup"}' --json
omx state write --input '{"mode":"ultraqa","active":false,"current_phase":"complete","completed_at":"<now>"}' --json
omx state read --input '{"mode":"ultraqa"}' --json
omx state clear --input '{"mode":"ultraqa"}' --json

完了、最大サイクル数到達、同一の失敗、安全境界、または環境エラーの際には、状態と一時アーティファクトをクリーンアップしてください。クリーンアップの状態を報告し、一時的なE2Eハーネスを削除してください。現在の証拠なしに完了を主張しないでください。

証拠・出力の契約

# UltraQA Report を返してください。内容は次のとおりです: 目標と成功基準(停止条件と安全境界を含む)、シナリオマトリクス(上記のすべての列)、実行したコマンド(終了コード、目的、タイムアウト、主要な出力)、発見された失敗(根本原因/ユーザーへの影響/安全性への影響)、適用した修正 / 適用した修正(ファイル、理由、シナリオ、回帰テストの証拠)、クリーンアップとロールバック(アーティファクト/プロセス/ワークツリーの実行前後の状態)、残存リスク、証拠(ログ、ハーネスの出力、必要に応じてスクリーンショットや記録、再実行・不安定性の証拠)。

終了条件

ULTRAQA COMPLETE: Goal met after N cycles は、合格したベースラインと敵対的マトリクス、クリーンなアーティファクト、完全な証拠が揃った場合にのみ出力してください。それ以外の場合は、次の正確な制限付きステータスを返してください: ULTRAQA STOPPED: Max cycles、ULTRAQA STOPPED: Same failure detected 3 times、ULTRAQA BLOCKED: ...、または ULTRAQA ERROR: ...。後者の場合は、担当者と次の安全なステップを併記してください。

コメント