$npx -y skills add bigdra50/unity-cli --skill unity-verifyコード変更後の検証ワークフロー。refresh → コンパイル待ち → エラー確認 → 任意でテスト。 Use for: "検証して", "コンパイル確認", "テスト実行", "verify", "preflight
| 1 | # unity-verify |
| 2 | |
| 3 | > **PREREQUISITE:** `../unity-shared/SKILL.md`(Relay Server 経由で Unity Editor が起動/アクティブであること) |
| 4 | |
| 5 | ## Quick Verify |
| 6 | |
| 7 | コード変更するたびに実行。unity-shared の Quick Verify (#quick-verify) を参照。skill 経由のコマンドは必ず `-i <instance>` を付ける (unity-shared #インスタンス指定)。 |
| 8 | |
| 9 | ```text |
| 10 | u -i <instance> console clear |
| 11 | → u -i <instance> refresh |
| 12 | → isCompiling ポーリング (2s 間隔, 最大 30s) |
| 13 | → u -i <instance> console get -l E,W | head -50 |
| 14 | ``` |
| 15 | |
| 16 | ### 結果判定 |
| 17 | |
| 18 | `u console get` の出力に対して以下のテーブルで判定。出力ゼロ行 = エラー無しとして扱う (空 = OK)。 |
| 19 | |
| 20 | | 出力内容 | 判定 | 次のアクション | |
| 21 | |----------|------|---------------| |
| 22 | | 空 (0 行) | **クリーン** | 完了。次工程 (Full Verify 等) に進める | |
| 23 | | `[ERROR]` 行のみ無し + `[WARN]` 行あり | **クリーン (Warning 許容)** | Warning を 1〜3 行に要約してユーザー報告、続行 | |
| 24 | | `[ERROR]` 行あり | **エラー** | 下記「修正ループ」へ | |
| 25 | |
| 26 | `-l E,W` は Error + Warning 両方を取得する。Warning だけなら続行可、Error が 1 件でもあれば停止して修正ループに入る。 |
| 27 | |
| 28 | ### 修正ループ (Error 検出時) |
| 29 | |
| 30 | 最大 3 回までの「修正 → Quick Verify 再実行」サイクル。 |
| 31 | |
| 32 | 1. **修正前にユーザー確認 (default)**: 以下のいずれかに該当する場合は自動修正せずユーザーに修正方針を確認する |
| 33 | - ファイル名 prefix が `_` (例: `_Broken*.cs`) または "Test" "Fixture" 等を含む |
| 34 | - エラーファイル内コメントに `intentional`, `TODO`, `FIXME`, `tuning` 等の意図的破壊を示唆する語がある |
| 35 | - 1 回の修正で 3 ファイル以上に変更が及ぶ場合 |
| 36 | - 既存ロジックの大幅変更が必要な場合 (型変更、API 置換、import 追加以外の構造変更) |
| 37 | 2. **自動修正可**: 単純なタイプミス (セミコロン抜け、スペル間違い、import 不足) で 1 ファイル限定の場合は試行 OK |
| 38 | 3. **ループ運用**: 修正 → Quick Verify を最大 3 回繰り返す。3 回で解消しない場合はユーザーに状況を報告し判断を仰ぐ |
| 39 | 4. **副作用回避**: 1 回の修正は 1 ファイル単位。無関係な変更 (フォーマット整形、リファクタ) を混ぜない |
| 40 | |
| 41 | ## Full Verify |
| 42 | |
| 43 | ユーザーが要求した場合のみ。Quick Verify + EditMode テスト。 |
| 44 | |
| 45 | ```text |
| 46 | Quick Verify 実行 |
| 47 | → クリーン (Error 0、Warning は許容) なら u -i <instance> tests run edit → 結果確認 |
| 48 | → Fail あり: 報告、修正して Quick Verify から再実行 (修正ループの規定に従う) |
| 49 | ``` |
| 50 | |
| 51 | ## Runtime Check |
| 52 | |
| 53 | 要求された場合のみ。Play Mode でランタイムエラーを検出。 |
| 54 | |
| 55 | ```text |
| 56 | u -i <instance> console clear |
| 57 | → u -i <instance> play |
| 58 | → isPlaying ポーリング |
| 59 | → 3秒待機 |
| 60 | → u -i <instance> console get -l +E+X |
| 61 | → u -i <instance> stop |
| 62 | ``` |
| 63 | |
| 64 | 報告のみ。自動修正せずユーザーに判断を委ねる。 |
| 65 | |
| 66 | ## Auto-trigger |
| 67 | |
| 68 | 以下の編集後に Quick Verify を自動実行: |
| 69 | - `.cs` / `.shader` / `.compute` |
| 70 | - `.asmdef` / `.asmref` |
| 71 | - Unity パッケージ関連 (`package.json` / `manifest.json`) |
| 72 | |
| 73 | スキップ: コメントのみの変更、プロジェクト外ファイル、ユーザー指示。 |