CHANGELOG エントリ追加・バージョン計算。「CHANGELOG」「変更履歴」「changelog add」「version bump」「バージョン」「バージョンアップ」などのキーワードで自動適用。
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
AI QA Agent のメインオーケストレーター。テストスイートまたは個別テストケースの QA を段階的に実行する。フェーズスキルに委譲して段階的開示を行い、サブエージェントでコンテキスト隔離を実現する。
「QA」「動作確認」「テストケース実行」「smoke test」「E2E」「手動テスト」「結合テスト」などのキーワードで自動適用。
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
설치 방법 보기설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.
人間がスマホをポチポチして動作確認する作業を AI に委譲する。
Phase 0: QA Readiness 検査(条件付き) → ios-qa-prepare スキルで判定し、必要に応じて実行 Phase 1: 準備 → ios-qa-prepare スキルの知識で実行 Phase 2: テスト実行 → ios-qa-execute スキルの知識で実行 Phase 3: レポート → ios-qa-report スキルの知識で実行
「QA を実行して tests/qa-suite.md」 「動作確認して tests/cases/」
「このテストケースを実行して tests/cases/TC-001.md」
「アプリを起動して、メッセージが送信できるか確認して」 → テストケースを即興で構築して実行
実行タイミング: ワークフロー開始時
ユーザー指示を解析し、回帰テストモードを判定:
REGRESSION_MODE = false
if ユーザー指示に以下のキーワード:
- "回帰テスト"
- "regression test"
- "regression"
- "差分テスト"
- "差分確認"
THEN
REGRESSION_MODE = true
通知: "回帰テストモードで実行します。App Map 差分分析を先に実施します。"
END IF
回帰テストモード有効時の処理:
以下のいずれかに該当する場合、Phase 0 を実行:
Phase 0 の内容:
QA Readiness Score の計算式:
スコア = (HIGH要素率 × 40% + MED要素率 × 30% + 操作可能性 × 20% + 状態観測性 × 10%) × 100
ios-dev プラグインがある場合: Agent(subagent_type: "ios-dev:xbm-run", prompt: "ビルドして実行。scheme: <scheme>")
ない場合: ToolSearch("select:mcp__XcodeBuildMCP__build_run_sim") build_run_sim(scheme: "<scheme>")
scheme / simulator 情報を記憶。
App Map 注入をワンタイムで実施:
メリット:
実行順序に従い、各テストケースを処理。回帰テストモード有効時は影響テストケースを優先:
# 回帰テストモード: 影響テストケース優先
if REGRESSION_MODE:
affected_tests = Phase 0.5 の差分分析から抽出
test_execution_order = [
*affected_tests (優先度順),
*remaining_tests (元の優先度順)
]
else:
test_execution_order = 元の優先度順
for each test_case in test_execution_order:
# 回帰テストモード: 変更なしテストをスキップ提案
if REGRESSION_MODE and test_case not in affected_tests:
if ユーザー指示が「影響テストケースのみ」:
Skip(理由: App Map 差分なし)
continue
# 依存チェック
if depends_on が Fail/Inconclusive → Skipped
# アプリ状態リセット判断
if 前テストが Fail or preconditions が非互換 → アプリ再起動
# Step A: qa-runner で実行
Agent(
subagent_type: "ios-qa-agent:qa-runner",
prompt: |
以下のテストケースを実行してください。
## テストケース
{前提状態 + 操作意図のみ。期待結果は渡さない}
## 前提条件の達成手順(ヒント)
{プリセットの steps}
## 制限
max_actions: 20, timeout_seconds: {timeout}, stuck_threshold: 3
)
→ Execution Report を受け取る
# Step B: qa-judge で判定
Agent(
subagent_type: "ios-qa-agent:qa-judge",
prompt: |
以下のテスト結果を判定してください。
## 期待結果
{テストケースの期待結果セクション}
## 補足
{テストケースの補足セクション}
## 実行レポート
{qa-runner の Execution Report 全文}
)
→ Judgment を受け取る
results.append(judgment)
全 runner の Discoveries を集約し、App Map v5 フォーマットで更新:
Step 1: Discoveries の収集と分類
[interacted] — 操作して確認済み → 即座に App Map に反映[observed] — snapshot_ui のみで確認 → App Map に [unverified] マーク付きで追加Step 2: App Map への統合
既存 app-map.md がある場合:
[interacted] の情報: 既存記録を更新、日付を現在日時に更新[observed] の情報: 新規要素の場合は [MED, unverified] マーク付きで追加app-map.md がない場合:
Step 3: Known Issues への追記
Step 4: フォーマット更新
format_version: 5[HIGH, 2026-03-15][unverified] マーク付きの要素を Operation Patterns の Known Issues に記載実装注: このフェーズはオプション。テストスイート実行時のみ適用。単一ケース実行時はスキップ。
全テストスイート実行に対する全体タイムアウトを設定:
設定値:
タイムアウト判定ロジック:
for each test_case in remaining_tests:
elapsed_time = 現在時刻 - 実行開始時刻
remaining_time = total_timeout - elapsed_time
# 残りテストの平均実行時間を推定
avg_time_per_test = 3分(デフォルト推定値)
estimated_remaining_time = avg_time_per_test × len(remaining_tests)
if estimated_remaining_time > remaining_time:
# 時間不足の場合、残りテストを Skipped にする
for test in remaining_tests:
result.append(Skipped, reason: "全体タイムアウトによるスキップ")
break
else:
# テスト実行を続行
run_test(test_case)
警告メッセージ:
実行時間が圧迫しています。残り 10分で 5 件のテストが残っています。
以下のテストをスキップします: TC-004, TC-005
テストスイート内に 5 件を超えるテストがある場合、5 件ごとに中間サマリーを出力:
中間サマリーの内容:
## 中間レポート(TC-001 ~ TC-005)
| TC-ID | 結果 | Priority | 実行時間 |
|-------|------|----------|---------|
| TC-001 | Pass | critical | 45s |
| TC-002 | Pass | high | 52s |
| TC-003 | Fail | medium | 38s |
| TC-004 | Skipped | high | - |
| TC-005 | Inconclusive | medium | 55s |
**累計:** 3 Pass, 1 Fail, 1 Inconclusive, 1 Skipped / 実行時間: 190s
---
出力タイミング:
全テスト結果を集約してレポートを出力。
再起動する場合:
再起動しない場合:
再起動方法:
ToolSearch("select:mcp__XcodeBuildMCP__stop_app_sim,mcp__XcodeBuildMCP__launch_app_sim")
stop_app_sim() → launch_app_sim()
| 要素 | トークン消費 | 最適化前 | 最適化後 | 削減量 |
|---|---|---|---|---|
| App Map 読み込み | 300-600 × 1回 | 300-600 × N件 | 300-600 × 1回 | N-1 回分削減 |
| テストケース読み込み | 200-500 / 件 | 変わらず | 変わらず | - |
| qa-runner 結果 | 500-1,000 / 件 | 変わらず | 変わらず | - |
| qa-judge 結果 | 300-500 / 件 | 変わらず | 変わらず | - |
| レポート生成 | 1,000-3,000 | 変わらず | 変わらず | - |
| 10件実行時の合計 | 約 13,000-23,000 | - | 約 12,800-22,400 | 約 200-600(1回分) |
UI 操作ログ(snapshot_ui × N)は qa-runner 内で完全消費。
Phase 5 での効率化:
qa-runner には「期待結果」を渡さない。 理由: runner が期待結果を知ると、それに合わせた報告をする確認バイアスが生じる。 runner は「やったこと」と「見えたもの」を客観的に報告する。 judge が独立して「期待通りだったか」を判定する。
아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.
로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.
아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.
CHANGELOG エントリ追加・バージョン計算。「CHANGELOG」「変更履歴」「changelog add」「version bump」「バージョン」「バージョンアップ」などのキーワードで自動適用。
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
プロジェクトの .claude/ ディレクトリ(skills, agents, contexts)を Codex CLI 互換 .agents/ に変換。「codex export」「Codex 変換」「プロジェクトをエクスポート」などで自動適用。
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
デザインシステム準拠のSwiftUIコンポーネントを生成する。新しいUIパーツの作成、コンポーネント生成時に使用。「コンポーネント作成」「新しいUI」「パーツ作成」「component generate」「UIパーツ」「新規コンポーネント」などのキーワードで自動適用。
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Claude Code プラグインを Codex CLI 互換形式に変換。SKILL.md → .agents/skills/、agents → .agents/skills/、AGENTS.md 生成。「deploy」「codex」「Codex 変換」「エクスポート」などで自動適用。
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
SwiftUI ViewのDesign System準拠性を監査する。既存UIのレビュー、デザインチェック時に使用。「デザインレビュー」「UIチェック」「design audit」「デザイン監査」「UI監査」「デザインチェック」「トークン確認」などのキーワードで自動適用。
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
UIの視覚的差分を検出・比較する。デザイン変更前後の比較、リファレンスとの差分確認時に使用。「デザイン比較」「UI差分」「design diff」「design compare」「ビフォーアフター」「見た目の違い」などのキーワードで自動適用。
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.