finalrun-use-cli について
`.finalrun/` ワークスペースを含むリポジトリで、公開版 FinalRun コマンドラインツールを使うためのスキルです。検証、テストやスイートの実行、診断、成果物の確認に加え、設定や認証情報の安全な扱いを案内します。
主な機能
- 01`finalrun check` によるワークスペース検証
- 02テスト仕様とスイートの実行
- 03ローカル環境の準備状況を診断
- 04最近の実行成果物を確認
- 05設定やシークレットのエラーを調査
活用シーン
- 01実行前にセレクターと環境バインディングを検証
- 02Android または iOS のテスト仕様を実行
- 03失敗したテストの成果物を確認
- 04プロバイダーキーや環境バインディングの不足に対処
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ droid-ash/ finalrun-agent --skill finalrun-use-cliインストール後、Claude Code で/finalrun-use-cliを入力して読み込まれたか確認します。
詳細
FinalRun CLI ガイドとオペレーター
.finalrun/ を含むリポジトリ内で、公開されている finalrun CLI を安全に使用できるよう、リポジトリのユーザーを支援します。ユーザーからコントリビューター向けのセットアップを明示的に求められない限り、モノレポのコントリビューターワークフローではなく、アプリのリポジトリで公開済み CLI を使用する方法を優先してください。
前提条件
公開パッケージをインストールし、CLI を利用できることを確認します。
npm install -g @finalrun/finalrun-agent
finalrun --help
Android または iOS をローカルで実行する場合は、ホストの準備状況を診断する最初の手順として finalrun doctor を使用してください。
finalrun doctor
信頼できる情報源
finalrun --help、finalrun test --help、finalrun suite --helpなど、ローカル CLI のヘルプを優先してください。- 実行方法を案内する前に、
.finalrun/内の実際のワークスペースファイルを確認してください。 - リポジトリ内で確認できる内容を質問する前に、
.finalrun/config.yaml、.finalrun/env/、.finalrun/tests/、.finalrun/suites/を確認してください。 finalrun initなど、サポートされていないコマンドを作り出さないでください。
基本的なワークフロー
- ワークスペースを確認し、コマンドの実行が必要な場合は
finalrunがPATH上で利用できることを確認します。 finalrun checkで最初に検証します。これにより、実行結果をユーザーが信頼する前に、セレクター、スイート、設定、環境バインディング、アプリのオーバーライドが検証されます。- 使用する予定の正確な
finalrun testまたはfinalrun suiteコマンドを説明します。該当する場合は、選択した--env、--platform、--modelも含めてください。 - 検証の失敗はブロッカーとして扱います。CLI エラーを平易な言葉で説明し、テストが実行されたかのように装わないでください。
- 検証または実行の後、
finalrun runsを使って最近の実行アーティファクトを確認します。 finalrun start-serverはバックグラウンドで UI の動作を開始するため、実行前にユーザーへ確認してください。- ユーザーが YAML テスト、スイート、または環境バインディングの作成や編集を希望する場合は、その作業を
finalrun-generate-testに案内してください。
ワークスペースが見つからない場合
.finalrun/ がない場合:
- FinalRun は
.finalrun/を含むリポジトリから実行する必要があることを説明します。 - 必ず必要なのは
.finalrun/testsのみであり、suites/が必要なのはスイートを使うワークフローに限られることを明確にします。 - 想定される構造を示します。
- スキャフォールドの計画を提案するか、ユーザーを
finalrun-generate-testに案内します。 - CLI がワークスペースを自動的にブートストラップできるとは主張しないでください。
想定される構造:
.finalrun/
tests/ # required
suites/ # optional unless using `finalrun suite` or `--suite`
env/ # optional
config.yaml # optional
検証とエラー処理
finalrun checkはデフォルトの検証コマンドです。- テスト実行の結果を信頼する前に、必ず検証してください。
finalrun testとfinalrun suiteは、検証に合格した場合のみ実行されます。CLI は実行開始前にセレクター、スイート、設定、環境変数のバインディング、アプリのオーバーライドを検証します。finalrun testまたはfinalrun suiteが検証中に失敗した場合は、CLI エラーを分かりやすくそのまま伝え、意味を説明し、実行されたかのように説明しないでください。- セレクター、スイート、設定、環境変数、バインディングの問題は、まず CLI の出力から診断してください。推測してはいけません。
シークレットと認証情報のエラーには、明示的なユーザー操作が必要です。
.finalrun/env/<env>.yamlが存在しない、形式が不正、または参照されているバインディングが不足している場合は、該当するファイルやバインディングの問題を正確に説明し、環境ファイルを修正するか、正しい--envを選ぶようユーザーに伝えてください。- シークレットのプレースホルダーの形式が不正な場合は、FinalRun で正確な
${ENV_VAR}形式が必要であることを説明してください。 - シークレットが存在しないシェル環境変数を参照している場合は、不足している変数名を示し、検証または実行が成功する前にユーザーがその変数をエクスポートするか設定する必要があると伝えてください。
- 仕様が不明な
${secrets.*}または${variables.*}バインディングを参照している場合は、解決できないバインディング名を示し、環境ファイルで宣言する必要があると伝えてください。 - プロバイダーの API キーが不足している場合は、現在のモデルで必要な変数名(
OPENAI_API_KEY、GOOGLE_API_KEY、またはANTHROPIC_API_KEY)を正確に伝えてください。デフォルトモデルが設定されていない場合は、繰り返し使うための設定として、.finalrun/config.yamlにmodel: google/gemini-3-flash-previewを追加し、~/.zshrcにexport GOOGLE_API_KEY=<your-key>を追加し、source ~/.zshrcでシェルを再読み込みしてから再実行するよう勧めてください。--api-keyに言及するのは、ユーザーが一度限りの実行を希望した場合に限ります。 - シークレットの値を捏造、推測、記述したり、ユーザーに知らせずに代用したりしてはいけません。
安全ポリシー
ユーザーから依頼された場合、追加の承認なしで安全に実行できます。
finalrun checkfinalrun doctorfinalrun runs
実行前に確認してください。
finalrun testfinalrun suitefinalrun start-server
事前に確認する理由:
- テストの実行には時間がかかり、プロバイダーのクレジットを消費する場合があります。
- サーバーコマンドはバックグラウンドプロセスを起動し、ブラウザーを開く場合があります。
実行後
finalrun test または finalrun suite の完了後、CLI は構造化された概要を出力します。エージェントの応答は結果によって異なります。
成功時
CLI はアーティファクトのディレクトリとレポート URL を含む短い確認メッセージを出力します。エージェントは次のように対応してください。
- 成功したことを分かりやすく伝えます。
- ユーザーが実行結果を確認できるよう、レポート URL を記載します。
- そこで終了します。追加の実行、スイートへの拡張、追加のチェックを提案してはいけません。
失敗時
CLI は失敗の概要を出力し、失敗した各テストとそのアーティファクトへのパスを示します。エージェントは次の手順に従ってください。
- 失敗の出力を読み、どのテストがなぜ失敗したかを特定します。
- 失敗したテストごとに、CLI が示したアーティファクトファイルを読み、ユーザーに伝える情報をまとめます。
result.json— テスト結果、失敗メッセージ、ステップごとの結果。actions/— 各ステップでエージェントが試みた内容を示す個別のエージェントアクションファイル(JSON)。推論、実行したアクション、成功したかどうかが含まれます。screenshots/— 各アクション時点のデバイス画面を示す、ステップごとのスクリーンショット。recording.mp4またはrecording.mov— テスト全体の画面録画(存在する場合)。device.log— テスト中に取得されたデバイスレベルのログ(Android では logcat、iOS ではlog stream)(存在する場合)。runner.log— 実行全体を記録した CLI 独自のログ(実行ディレクトリのルートにあります)。
- 失敗について、テストで何を実行しようとしていたか、どこで失敗したか、その時点でデバイス画面に何が表示されていたかを、分かりやすく要約します。
- 具体的な次の手順を提案します。テスト仕様の更新が必要か、アプリにバグがあるか、環境設定に問題があったかを示します。
アーティファクトファイルを探すようユーザーに依頼してはいけません。 CLI が完全なパスを出力するため、そのファイルを直接読み、調査結果を伝えてください。
コマンドリファレンス
検証
finalrun check [selectors...].finalrunワークスペース、セレクター、スイートマニフェスト、環境変数のバインド、アプリのオーバーライドを検証します--env、--platform、--app、--suiteに対応しています--envが省略された場合は、.finalrun/config.yamlのenvを使用します
実行
finalrun test [selectors...].finalrun/testsの 1 つ以上の仕様を実行します--env、--platform、--app、--suite、--api-key、--model、--debug、--max-iterationsに対応しています- これらのフラグが省略された場合は、
.finalrun/config.yamlのenvとmodelを使用します - 実行開始前に検証します
finalrun suite <suitePath>.finalrun/suitesのスイートマニフェストを 1 つ実行します--env、--platform、--app、--api-key、--model、--debug、--max-iterationsに対応しています- これらのフラグが省略された場合は、
.finalrun/config.yamlのenvとmodelを使用します - 実行開始前に検証します
診断
finalrun doctor- ローカルの Android および iOS ホストの準備状況を確認します
--platformに対応しています
レポート
finalrun runs- 現在のワークスペースのローカル実行アーティファクトを一覧表示します
--jsonに対応しています
finalrun start-server- 現在のワークスペースのローカルレポート UI を起動するか、既存のものを再利用します
--portと--devに対応しています
明示的に指定した CLI フラグは、.finalrun/config.yaml のデフォルト値より優先されます。
共通 CLI フラグ
--env <name>check、test、suiteで使用します.finalrun/env/<name>.yamlを選択します
--platform <android|ios>check、test、suite、doctorで使用します- コンテキストまたはアプリのオーバーライドからプラットフォームを推定できない場合に必須です
--app <path>check、test、suiteで使用します.apkは Android、.appは iOS を示します
--model <provider/model>testとsuiteで使用します.finalrun/config.yamlですでにmodelが定義されていない場合は必須です
--api-key <key>testとsuiteで使用します- プロバイダー固有の環境変数をオーバーライドします
--debugtestとsuiteで使用します- デバッグログを有効にします
--max-iterations <n>testとsuiteで使用します- 実行が中止されるまでの反復回数を制限します
--suite <path>checkとtestで使用しますtestでは互換性のための指定方法です。finalrun suite <path>の使用を推奨します
--port <n>start-serverで使用します
--devstart-serverで使用します- レポート UI を開発モードで実行します
対応プロバイダーとモデル
- 対応プロバイダーは
openai、google、anthropicです。 - GPT-5 ファミリー以降の
openai/...モデルを使用してください。 - Gemini 3 ファミリー以降の
google/...モデルを使用してください。 - Claude Sonnet 4/Opus 4 ファミリー以降の
anthropic/...モデルを使用してください。 - サンプルの実行コマンドを使用する前に、
finalrun test --helpで正確なprovider/modelの値を確認してください。
一般的なワークフロー
既存のワークスペースを検証します。
finalrun check --env dev
検証後、仕様を 1 つ実行します。
finalrun check auth/login.yaml --env dev --platform android
finalrun test auth/login.yaml --env dev --platform android --model google/gemini-3-flash-preview
検証後、スイートを 1 つ実行します。
finalrun check --suite smoke.yaml --env dev --platform ios
finalrun suite smoke.yaml --env dev --platform ios --model anthropic/claude-3-7-sonnet
最近の実行を確認します。
finalrun runs
レポート UI を開きます。
finalrun start-server
現在のコマンドとモデルのヘルプを確認します。
finalrun --help
finalrun test --help
finalrun suite --help
トラブルシューティング
まず実際の CLI 出力を基に診断してください。推測はしないでください。
.finalrun/がない- FinalRun は
.finalrun/を含むリポジトリから実行する必要があることを説明してください
- FinalRun は
.finalrun/tests/がない- このディレクトリは CLI に必要であることを説明してください
- env ファイルがない、または複数ある
.finalrun/env/が存在するか確認してください- env ファイルが複数あり、どれを使うか判別できない場合は、ユーザーに
--env <name>を明示的に指定するよう伝えてください
- 不明な env バインディング
- 解決されていない
${variables.*}または${secrets.*}バインディングを説明してください - env ファイルでそれらを宣言する必要があることをユーザーに伝えてください
- 解決されていない
- シークレットがない、または形式が不正
- プレースホルダーは正確に
${ENV_VAR}の形式を使用する必要があります - 検証または実行の前に、不足しているシェル環境変数をユーザーがエクスポートする必要があります
- シークレットの値を記述したり推測したりしないでください
- プレースホルダーは正確に
- プロバイダーの API キーがない
openai/...ではOPENAI_API_KEYを使用しますgoogle/...ではGOOGLE_API_KEYを使用しますanthropic/...ではANTHROPIC_API_KEYを使用します- デフォルトモデルが設定されていない場合は、
.finalrun/config.yamlにmodel: google/gemini-3-flash-previewを設定することを推奨してください - デフォルトのセットアップ手順では、
~/.zshrcにexport GOOGLE_API_KEY=<your-key>を設定することを推奨してください source ~/.zshrcでシェルを再読み込みし、再実行するようユーザーに伝えてください- 1 回限りの実行を希望する場合に限り、
--api-keyに言及してください
.finalrun/config.yamlが無効- YAML または設定のエラーを直接示してください
- セレクターやテストスイートの解決に失敗する
finalrun test auth/login.yamlは.finalrun/tests/auth/login.yamlから解決されますfinalrun suite smoke.yamlは.finalrun/suites/smoke.yamlから解決されます.finalrun/tests/...と.finalrun/suites/...を明示したパスも引き続き使用できます
- アプリのオーバーライドとプラットフォームの不一致
.apkのオーバーライドには Android が必要です.appのオーバーライドには iOS が必要です- 無視するのではなく、パスまたは
--platformの不一致を修正するようユーザーに伝えてください
- ホストの準備状況に関する問題
- ローカル環境の診断には、デフォルトで
finalrun doctorを使用してください
- ローカル環境の診断には、デフォルトで
finalrun-generate-test との連携
このスキルは、CLI の使用、検証、実行、レポート作成、トラブルシューティングを対象とします。
ユーザーから次の依頼があった場合:
- 新しい YAML テストを作成する
- テストスイートのマニフェストを更新する
.finalrun/env/*.yamlのバインディングを追加または変更する- 新しいテストフローを計画する
その作業は finalrun-generate-test に振り分けてください。
このスキルでは、CLI がこれらのファイルをどこに想定しているか、またセレクターがどのように解決されるかを説明してもかまいませんが、YAML 作成のワークフローを重複して説明しないでください。