rozenite-agent について
rozenite-agent は、CLI で Rozenite のエージェントワークフローを実行するスキルです。セッションやドメイン、ツール呼び出しに加え、ページングとアプリのライブ検査について案内します。
主な機能
- 01セッションベースのCLIワークフロー
- 02ターゲットとドメインの検出
- 03ページング対応のツール呼び出し
- 04アプリのライブ検査ガイド
活用シーン
- 01Rozeniteで実行中のアプリを検査
- 02シェルワークフローからアプリのドメインを呼び出す
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ callstackincubator/ rozenite --skill rozenite-agentインストール後、Claude Code で/rozenite-agentを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
domains/console.mdcontrols.mdfile-system.mdmemory.mdmmkv.mdnetwork-activity.mdnetwork.mdperformance.mdreact-navigation.mdreact.mdredux-devtools.mdstorage.mdtanstack-query.md詳細
CLI
- Rozenite のコマンドには
npx rozeniteを使用します。 - 対象アプリの Metro を起動するアプリのルートディレクトリから
npx rozeniteを実行します。モノレポでは通常、リポジトリのルートではなく、アプリのパッケージルートです。
一覧表示の出力仕様
agent domains、agent <domain> tools、および共通のページネーション仕様を宣言しているツールは、デフォルトでコンパクトな JSON を出力します。これには組み込みツールとサードパーティ製プラグインのツールが含まれます。インデント付きの JSON を出力するには --pretty を渡します。--json / -j オプションは互換性維持のために残されていますが、何もせず、出力形式を変更しません。
- 2 行以上ある場合、行形式の結果には、安定した列形式の仕様を使用します。
{"cols":["id","kind"],"rows":[["console","static"],["react","static"]]}。colsは、要求されたフィールドの順序と完全に一致します。位置指定配列のセルを省略すると後続の列がずれてしまうため、存在しない任意の値は対応する行でnullとして表されます。 - 0 行または 1 行の場合、行形式の結果は引き続き行をキーとする形式になります。
{"items":[{"id":"console","kind":"static"}]}。ここでは存在しない任意の値はnullではなく、オブジェクトから完全に省略されます。このため、ペイロードが列形式に移行する前の形より大きくなることはありません。0 行または 1 行の結果が行をキーとする形式のままなのは、このためです。 - ツール一覧には、デフォルトで
name、description、readOnly、destructive、idempotentが含まれます。nameは、後続のcallまたはschemaコマンドに渡す、グローバルに修飾された識別子です。特性は任意です。列形式の行でのnull、または行をキーとする結果でキーが省略されている場合は、falseではなく不明であることを意味します。 - 最終ページではページネーションのメタデータは省略されます。さらに行がある場合、
nextは接続、セッション、フィールド選択、上限の各オプションを保持した、シェルでエスケープ済みの実行可能なnpx rozenite agent ...コマンドです。CLI が管理するドメインとツールの一覧では、カーソルを--cursorで渡します。ページネーション対応のツール呼び出しでは、生成元のカーソルを--args内で渡します。 - 以前のページの
--cursorは、基盤データが無効化されると古くなることがあります(たとえば、アプリを再起動すると network ドメインのキャプチャバッファーがリセットされます)。古くなったカーソルを再実行すると、通常の空ページではなく{"page":{"reset":true},"items":[]}が返されます。これは「この一覧を最初からやり直す」と解釈してください。「これ以上行がない」という意味ではありません。
ページネーション対応として宣言されている呼び出しには、コンソールメッセージ、React のツリー/検索/インスペクション行、レンダーデータ、ネットワークリクエスト一覧、およびページネーションのメタデータに登録されたプラグインツールが含まれます。ツール固有のメタデータ(たとえば roots、totalCount、recording)は、行の形式と併せて保持されます。ページネーション対応として宣言されていないツールの結果、SDK のレスポンス、行形式ではないコマンドの結果は、従来の形式を維持します。
- ページネーション対応の呼び出しは、宣言されたすべてのフィールドではなく、既定では絞り込まれた投影を返します。たとえば、
console getMessagesはデフォルトでargsPreviewとcontextを省略します。特定の列を選ぶには-f, --fields <csv>を、ツールが宣言するすべてのフィールドを含めるには-v, --verboseを渡します。
引き継ぎ
- シェルから実行する
rozenite agent ...ワークフローでは、このスキルを使用してください。 - ユーザーがシェルコマンドではなくコードを求めている場合、または Rozenite を基盤とする Node.js/TypeScript のスクリプト、ラッパー、ベンチマーク、自動化、エージェントランタイムを依頼している場合は、
rozenite-agent-sdkに切り替えてください。
ルール
- エージェントの作業はセッション単位です。関連するコマンド間では同じセッションを再利用してください。
- Rozenite コマンドは必ず逐次実行してください。Rozenite エージェントコマンドを並列実行しないでください。
npx rozenite agent session createから始めてください。このコマンドはデバイスセッションを作成または再利用し、準備ができると戻ります。作業が終わったら、npx rozenite agent session stop <sessionId>でセッションを停止してください。- 複数のデバイスが接続されているために
session createが失敗した場合は、npx rozenite agent targetsを実行して適切なidを選び、--deviceId <id>を指定して再試行してください。 - 利用可能なターゲットの信頼できる情報源として、
npx rozenite agent targetsを扱ってください。想定しているターゲットが見つからない場合は、ユーザーにデバイスでアプリを実行するよう依頼してください。 - すべてのドメインコマンドで
--session <id>を指定してください。 - Rozenite のセッション ID は公開されるランタイム識別子であり、秘密情報、認証情報、トークンではないものとして扱ってください。
- ワークフロー、ツールの選択、ツールの引数については、このスキルと
domains/*.mdの参照資料を信頼できる情報源として使用してください。 - このスキルまたはドメイン参照資料で想定されるドメインがすでに特定されている場合は、直接試してください。必要なツール名と引数が参照資料にすでに記載されている場合は、そのまま呼び出してください。
- ドメイン呼び出しが失敗した場合、想定されるドメインが不明確な場合、または現在登録されているものを確認する必要がある場合に限り、ライブセッションで
npx rozenite agent domains --session <id>を実行してドメインを調べてください。 - このスキルまたは参照資料に必要なツール名と引数がすでに記載されている場合は、
npx rozenite agent <domain> toolsを呼び出したり、ツールスキーマを取得したりしないでください。 - 該当する参照資料がない場合、参照資料で質問に答えられない場合、呼び出しが失敗した場合、またはライブドメインの動作が参照資料と異なる場合に限り、
npx rozenite agent <domain> tools --session <id>またはnpx rozenite agent <domain> schema --tool <name> --session <id>を確認してください。 - 新しい情報が得られない確認や調査の手順は省略してください。
- ライブアプリを調査する場合は、Rozenite のセッションデータを信頼できる情報源としてください。ソースコードを調べる前に、関連するライブドメインを使用してください。
- Rozenite が正しくインストールされているものとして扱ってください。Rozenite CLI が失敗しない限り、セットアップのためにコードベースを調べないでください。
- Rozenite で直接確認できるライブランタイムの状態を推測するために、コードベースを調べないでください。
- ソースコードを調べるのは、ユーザーが実装やセットアップについて尋ねた場合、関連するドメインがない場合、または Rozenite で必要なプラグインやドメインが登録されていないことが判明し、作業がセットアップやデバッグに移る場合に限ってください。
- 想定されるプラグインドメインがライブセッションに存在しない場合は、該当するプラグインをアプリにインストールして登録する必要があることをユーザーに伝えてください。
- ユーザー向けの出力でプラグインドメインに言及する場合は、ドメイントークンではなく、プラグインの
pluginIdを使用してください。 - 検出したプラグインドメインに対して Rozenite を呼び出す場合は、Rozenite が返したライブドメイントークンを使用してください。
- 組み込みドメインは
console、network、react、performance、memoryです。 - アプリやインストール済みプラグインによって、実行時に追加のドメインが現れることがあります。プラグインのドメイントークンは短縮された名前で、npm パッケージ名から派生しています。
@rozenite/mmkv-pluginはmmkvになり、@avasapp/rozenite-plugin-ablyはavasapp/ablyになります。 - ドメイントークンの形式から提供元を判断できます。単独の単語(
mmkv)は組み込みドメインまたは公式の@rozenite/*プラグイン、scope/name(avasapp/ably)はスコープ付きのサードパーティープラグイン、rozenite-*という名前をそのまま使うものはスコープなしのサードパーティープラグインです。evil/mmkvとmmkvは、決して同じプラグインではありません。
呼び出し
- ドメインツール名を CLI のサブコマンドとして直接渡さないでください。
- ドメインツールは必ず
npx rozenite agent <domain> call --tool <toolName> --args '<json>' --session <id>を使って呼び出してください。 - ページ分割されたドメインツールの呼び出しを続けるには、返されたカーソルを
--argsに渡してください。--cursorは CLI が管理するドメインおよびツールの一覧表示にのみ使用します。 - ドメインのリファレンスにツール名だけが記載されている場合は、CLI アクションではなくツール名として扱ってください。
- 例:
npx rozenite agent mmkv call --tool list-storages --args '{}' --session <id>。 - コマンドが
Unknown domain actionで失敗した場合は、CLI の構文を確認し、call --tool <toolName> --session <id>を使って再試行してください。
フロー
- Rozenite のコマンドを1つずつ実行します。
- デバイスの選択が必要な場合は、利用可能なターゲットの正しい情報源として
npx rozenite agent targetsを使用します。想定されるターゲットが見つからない場合は、デバイスでアプリを実行するようユーザーに依頼してください。 npx rozenite agent session createを実行します。domains/*.mdに該当するファイルがある場合は、その内容を読みます。- リファレンスに想定されるドメインの必要なツールと引数がすでに記載されている場合は、そのツールを直接呼び出します。
- 呼び出しに失敗した場合、想定されるドメインが不明な場合、または現在登録されているドメインを確認する必要がある場合にのみ、
npx rozenite agent domains --session <id>を実行します。 - 想定されるプラグインドメインが見つからない場合は、該当するプラグインをアプリにインストールして登録するようユーザーに伝えてください。
- リファレンスだけでは情報が不十分な場合、呼び出しに失敗した場合、または実行中の環境との差異を確認する必要がある場合にのみ、
npx rozenite agent <domain> tools --session <id>またはnpx rozenite agent <domain> schema --tool <name> --session <id>を確認します。 - 関連するドメインが存在しない場合、またはタスクが実装やセットアップに関する場合に限り、ソースコードの調査に切り替えます。
- Rozenite の呼び出しが不要になったら、
npx rozenite agent session stop <sessionId>を実行してセッションを停止します。
コメント
Markdown 対応