/goal コマンドの活用例: Vitest の実行時間を 6 倍高速化した話
https://ogp.azukiazusa.dev/blog/ogp/goal-command-use-case-vitest.png
/goal コマンドの活用例: Vitest の実行時間を 6 倍高速化した話
Vitest のisolate:falseによるテスト高速化とClaude Code/goalコマンドによる大規模タスク自律実行の実例
テスト実行時間の課題
フロントエンドテスト実行時間が長く開発生産性に悪影響
React / Vitest / Testing Library構成でテスト件数10000件超え
実行時間を12分→2分へ短縮(約6倍高速化)
高速化の要因
isolate:falseでモジュール評価共有が可能になりImport時間削減
テスト環境, jsdomのセットアップも共有されEnvironment時間削減
Import600sがボトルネックであることを計測で特定
isolate:falseの注意点
テストファイル間状態共有が発生し副作用が伝播
localStorage未クリアやcleanup未実行でテストがランダムに失敗
afterEach登録が最初のファイルのみになる問題(モジュールキャッシュ)
ID採番が連続しスナップショットが不安定化
注意点への対策
setupFilesで共通クリーンアップ処理を集中管理
snapshotSerializer`でランダムIDを正規化
課題
Claude Codeに大規模修正を任せると方針確認が頻発し進行が停止
失敗テスト無視など誤った提案が出るケース
最終ゴールに到達する前にセッションが終了してしまう問題
/goalコマンドの特徴
自然言語でゴール条件を指定し達成まで自律継続
セッション終了直前をフックし軽量モデルがゴール判定
未達成なら自動続行し確認要求や中断を防止
/goalコマンドの使い方
ゴールは定量的条件で指定することが重要(例: 失敗テスト0件)
抽象的条件は不適切(例: 実行時間を短縮する)
トークン消費が大きいため単発修正は通常プロンプトが適切
実際のタスク進行
shuffle実行とseed変更でランダム失敗を確実に潰す
失敗原因分類しサブエージェントで並列修正
再実行で失敗がないか検証しゴール達成
所要時間は約10時間