mcpField
L
luvus

luvus

github.com/rizriyzエージェントワークフロー98639 回インストール今日更新
リポジトリ

luvus について

luvusは、Luvusセッションの操作方法を示すスキルガイドです。Agentへの委任、ワークスペースの制御、UHP連携の構築に使うCLIとUHPの選択、セッション管理、安全な操作手順を定めています。

主な機能

  1. 01規則に沿ったエージェントへの委任
  2. 02セッション、ワークスペース、マシンの管理
  3. 03セマンティックCLIによる操作
  4. 04必要に応じたUHPの検出と利用
  5. 05認可と安全制御の遵守

活用シーン

  1. 01指定したエージェントへのタスク送信
  2. 02名前付きサーバーセッションの確認と管理
  3. 03現在のLuvusワークスペースの制御
  4. 04UHPベースの自動化連携の構築

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/rizriyz/luvus --skill luvus

インストール後、Claude Code で/luvusを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

agents/
openai.yaml
references/
advanced-control.md
uhp-control.md

詳細

Luvus

Luvus のセマンティック CLI と UHP を使用して、作業を委任し、ライブワークスペースを制御し、明示的なハーネス統合を構築します。このスキルは、サービス、イベントループ、ポーリングプロセスを追加しません。

=target の委任を最初に処理する

=target message は、行の最初の空白以外の文字が = であり、target に空白が含まれず、その後にメッセージが続く場合に限り、Luvus の委任として扱います。数式、代入、文章中の = は委任として扱わないでください。Codex スキルの呼び出しでは、引き続き $skill-name 構文を使用します。

例:

  • =reviewer inspect this diff は、inspect this diff を reviewer という名前のエージェントに送信します。
  • =7 run the migration は、ペイン 7 に送信します。
  • =codex add tests は、codex という名前または種類の一意なエージェントに送信します。

委任する各行について:

  1. --wait を付けずに、luvus agent send <target> "<message>" を直接実行します。agent send は、稼働中の名前、数値のペイン ID、一意なエージェントの種類を権威ある方法で解決します。先に agent list を実行しないでください。
  2. 成功したら、返されたペイン、エージェント、名前、ステータスを受け入れ、作業の送信先をユーザーに伝えて、ターンを終了します。再読み込みやポーリングはしないでください。
  3. not_found または ambiguous_target の場合に限り、luvus agent list を一度実行して、稼働中の候補を表示します。ユーザーの選択なしに、推測したり別の対象を再試行したりしないでください。
  4. その他のエラーが発生した場合は、エージェントの一覧を表示せずにエラーを報告します。送信に失敗した後、委任されたタスクを引き受けたり、ローカルで実行したりしないでください。ユーザーが明確に依頼した場合に限り、エージェントを起動します。

自然な言葉での委任依頼にも、同じワークフローを適用します。別のエージェントが役立つという理由だけで、委任しないでください。

セッションを必ず 1 つだけ選択する

TUI の起動または接続につながるため、引数なしの luvus は実行しないでください。以下の例では読みやすさのために luvus と記載しています。ここで選択したクライアントに置き換えてください。

Luvus のペイン内

LUVUS_ENV=1 の場合は、継承したセッションを制御します。

  • LUVUS_BIN_PATH、LUVUS_SOCKET_PATH、LUVUS_PANE_ID が設定されていることを確認します。
  • 正確な LUVUS_BIN_PATH を呼び出します。継承したソケットを使用させてください。
  • 呼び出し元およびデフォルトの分割アンカーとして、LUVUS_PANE_ID を維持します。
  • 継承したソケットやバイナリを、デフォルト値、PATH の検索結果、別の Luvus セッションで置き換えないでください。

ユーザーがすでにそのセッション内にいて、委任または制御を明示的に依頼した場合に限り、継承したセッションを操作します。

Luvus の外部での利用

インストール済みの本番用 Luvus クライアントを使用します。

  • 現在のシェルのコマンド検索で、luvus のパスを一度だけ解決します。Unix では command -v luvus、PowerShell では (Get-Command luvus).Source などを使用します。
  • 以降のリクエストでは、解決したそのパスを指定して実行します。これにより、Cargo、Homebrew、install.sh、または PATH で管理される別の方法でインストールされた Luvus に対応できます。
  • 明示的に設定された LUVUS_HOME または LUVUS_SOCKET_PATH は維持します。LUVUS_SESSION も維持します。ユーザーがサーバーセッションを明示的に指定した場合は、関連するすべての Luvus コマンドに --session <name> を直接渡します。これによって別のサーバーが選択された場合、ペイン ID は発行元のセッションに属するため、Luvus は継承されたペイン ID を破棄します。最初にセッション一覧を表示してはならず、暗黙に default にフォールバックしてもなりません。それ以外の場合は、インストール済みのリリースバイナリに本番環境の既定値である $HOME/.luvus/luvus.sock を使用させます。
  • luvus コマンドが見つからない場合に、LUVUS_BIN_PATH やリポジトリのビルドで代用してはなりません。
  • Luvus の操作を試みた後、コマンド検索で luvus クライアントが見つからなかったために実行できなかった場合に限り、Luvus がインストールされていないことを報告して停止します。利用可能なコマンドとして、curl -fsSL https://luvus.dev/install.sh | sh、brew install RizRiyz/luvus/luvus、または cargo install luvus のいずれかを案内します。この案内を先回りして表示したり、ソケット、権限、サーバー、その他のコマンドの失敗に対して表示したりしてはなりません。後続の検索が成功するまでは、Luvus が利用可能であると示唆してはなりません。
  • リクエスト全体を通じて、同じバイナリとソケットを使用します。
  • ユーザーが Luvus の起動または使用を依頼し、それが通常必要な手順である場合に限り、本番サーバーを起動します。

Codex アプリでは、ローカルソケットにアクセスするためにワークスペースのサンドボックス外での権限が必要な場合があります。選択した Luvus クライアントに対して、その権限をリクエストします。未承認のサンドボックスエラーを、サーバーがオフラインであると説明してはなりません。承認済みのコマンドが接続できなかった場合に限り、本番サーバーがオフラインであると報告します。

名前付きサーバーセッションを管理する

名前付きセッションは、ワークスペースではなく、独立した Luvus サーバーと PTY ツリーです。ユーザーがサーバーセッションの確認または管理を明示的に依頼した場合に限り、次のコマンドを使用します。

luvus session list
luvus session attach <name>
luvus session stop <name>
luvus session delete <name>
luvus --session <name> pane list

pane list は、フォーカスを変更せずに、そのセッション内のすべてのワークスペースとタブからペイン ID を検出します。結果をアクティブなタブに限定するには、--current-tab を追加します。

session attach は TUI を起動するか、既存の TUI に接続します。セッションの存在確認だけを目的に実行してはなりません。session stop は、その名前付きサーバー内のすべてのペインを終了します。削除する前に一度だけセッション一覧を表示し、停止済みのセッション名が正確に一致することを確認して、明確な許可を得ます。default を削除してはならず、サーバーセッション用コマンドの代わりにワークスペース用コマンドを使用してもなりません。

保存済み SSH マシンを管理する

保存済みマシンは、選択中のローカル名前付きセッションが所有し、リモートの名前付きセッションを 1 つ選択する SSH プロファイルです。ワークスペースではありません。リモートワークスペースを開いても、プロファイルやセッションを追加で作成してはなりません。ローカルの名前付きセッションを切り替えると、そのセッション固有のワークスペースツリーとマシンカタログが再読み込みされます。

TUI ヘッダーのセッションコントロールは、リモートマシンのワークスペースがアクティブな場合でも、常に所有元のローカル名前付きセッションを管理します。これをマシンセッションのセレクターと解釈したり、ローカルセッションを切り替えると保存済みマシンのリモートセッション設定が変わると説明したりしないでください。

変更を提案する前に、読み取り専用の確認を行ってください。

luvus machine list
luvus machine show <id>
luvus machine status <id>
luvus machine sessions <id>

machine status は、すでに実行中の選択されたサーバーとそのワークスペースへの反映状況を確認します。インストールや起動は行いません。machine add と machine enable は、ホストに接続したり、選択されたサーバーが停止している場合に起動したりすることのある、フォアグラウンドでの変更操作です。パスワードや鍵を CLI データとして渡してはなりません。ユーザーの OpenSSH 接続先または設定エイリアスを使用し、ユーザーがその操作を明示的に許可した場合に限り --install を使用してください。デフォルト以外のリモートセッションを選択するには、machine add ... --session <name> を使用します。

ユーザーが uhp access --machines を明示的に開始しない限り、マシン UHP メソッドは使用できません。変更操作にはさらに --control が必要です。通常のセッション UHP アクセスから、マシンへの操作権限があると推測してはなりません。

高速なコマンドパスを使用する

  • 要求されたセマンティックコマンドを直接実行してください。定型的な help、ping、ステータス確認、一覧表示を前置しないでください。
  • 委任する場合は、agent send を直接呼び出してください。agent list は not_found または ambiguous_target の後に限り、復旧手段として使用してください。
  • 構文が不明な場合、またはコマンドがサポートされていない場合に限り、help を使用してください。
  • スレッド内ですでに返された有効な ID、名前、結果を再利用してください。
  • 対象を特定した変更成功応答を信頼してください。応答が不完全でない限り、直ちに同じ状態を再読み込みしないでください。
  • 項目ごとにステータスを確認するより、対象を広く含む一覧を 1 回取得してください。
  • シェルのスリープやポーリングループではなく、上限を設けた Luvus の待機を使用してください。

多くのコマンドは .result または .error を含む JSON を返します。これらの結果から、正確な ID、インデックス、パス、名前、ステータスを解析してください。サイドバー上の位置から対象を推測してはなりません。

CLI または UHP を意図的に選択する

通常の Luvus の操作や委任には、セマンティック CLI を使用します。単一の操作を実行する最短の方法であり、生のプロトコルやターミナル入力で代用してはいけません。

Universal Harness Protocol 1.0 は、ユーザーから Luvus API、ハーネス統合、機能またはスキーマの確認、順序付けられたイベント、フェンス付きスナップショット、リビジョンセーフな自動化、委任アクセス、またはターミナルバックエンドのストリーミングを明示的に求められた場合に限り使用します。その場合は、ドキュメントやリリース番号から対応状況を推測せず、インストール済みのサーバーを確認してください。

luvus uhp capabilities
luvus uhp schema
luvus uhp snapshot

これらの確認呼び出しは、実際のプロトコル契約を定義するため、事前確認を行わないルールの例外です。通常の CLI 操作の前には実行しないでください。 luvus uhp proxy は、stdin からの改行区切り JSON リクエストを、選択されたローカルサーバーに転送します。送信する前に、メソッドとパラメーターをインストール済みのスキーマに照らして検証してください。

luvus uhp access は、明示的に指定されたリモートプロバイダーまたはクライアント向けの、トランスポートに依存しないフォアグラウンド境界です。認証済みのループバックエンドポイントを示す、機械可読なディスクリプターを 1 つ出力し、パブリックリスナーは作成しません。ユーザーがドキュメントに記載された限定的な制御サーフェスを明示的に許可した場合にのみ、--control を使用してください。コマンドの実行は、要求されたアクセス期間中に限り、信頼できる暗号化トランスポートなしでループバックエンドポイントを公開してはいけません。

ステートフルな UHP 自動化では、次の手順に従います。

  1. 機能と制限を読み取ります。
  2. 既知のイベントシーケンスからサブスクライブし、フェンス付きスナップショットを取得します。
  3. それ以降のイベントのみを順番に適用します。
  4. シーケンスの欠落、オーバーフロー、再接続、サーバー世代の変更、または resync_required イベントの後は、スナップショットを再取得します。
  5. 競合する変更には、通知されたリビジョンまたは if_revision を使用します。
  6. 実際の機能で通知されている場合は、agent.start、agent.prompt、layout.apply、workspace.move_block、diff.note.apply などのアトミックなメソッドを優先します。

デフォルトのエンドポイントはローカルの所有者を信頼するものであり、パブリック TCP サービスではありません。明示的に委任されたハーネスに限り、スコープを限定した有効期限付き UHP トークンを作成してください。トークンシークレットを表示、永続化、またはログに記録してはいけません。また、要求された統合に必要な範囲を超えるスコープを許可してはいけません。ターミナルの監視ストリームと制御ストリームは、ハーネスまたはリモートクライアントの作業を明示的に行う場合に限ります。制御は排他的かつ限定的で、タスク終了時に解放する必要があります。通常の自動化では、agent prompt、pane read などのセマンティックな経路を優先してください。

メソッドのファミリー、イベントの復旧、トークン、リビジョン、レイアウト操作、ターミナルストリームについては、インストールされている場合、uhp-control.md を参照してください。利用可能なファイルが luvus skill show のみの場合は、上記のルールで十分です。

エージェントを委任して管理する

アクティブなエージェントを次の方法で特定します。

luvus agent list
luvus agent get <target>

ターゲットには、現在の名前、ペイン ID、または一意なエージェント種別を指定します。種別が曖昧な場合は、ユーザーに選択してもらうか、ペインを指定してもらいます。決して推測してはいけません。

管理対象のペインから、兄弟エージェントを起動して名前を付けるには、次のようにします。

luvus agent start reviewer --kind codex --timeout 30

外部ターミナルからは、先に有効なアンカーを選択します。

luvus agent start reviewer --kind codex --anchor <pane-id> --timeout 30

まず、アンカーを指定した起動をそのまま試します。--anchor が未対応であることを示す構文エラーまたは使用方法エラーが返された場合に限り、互換性のある 2 コマンドの手順を使い、pane split が返した新しいペイン ID を渡します。ヘルプによる事前確認は実行しないでください。

luvus pane split <anchor-pane-id> --no-focus
luvus agent start reviewer --kind codex --pane <new-pane-id> --timeout 30

方向フラグを省略すると、アンカーペインの長い辺に沿って分割されます。方向を指定するには、分割またはアンカー指定の起動時に --right または --down を渡します。--anchor と --pane を同時に指定してはいけません。

生のペインテキストと Enter ではなく、agent send で作業を送信します。

luvus agent send reviewer "Review the current diff"

ユーザーから待機を明示的に求められた場合、または次の必須手順が結果に依存する場合を除き、--wait を追加しないでください。管理対象のペインでは、非同期での受け渡しが便利な場合、呼び出し元の名前を伝え、ワーカーに完了を報告するよう依頼します。

luvus agent name lead
luvus agent send reviewer "Review the diff. When done, run: luvus agent send lead 'done: <summary>'"

待機しない受け渡しの後は、そのターンを終了します。完了報告のメッセージによって、新しいターンが始まります。外部ターミナルには呼び出し元のペインがないため、架空のペインを指定してはいけません。 --wait を指定した場合、agent prompt(agent send も同様)では、要求された --until の状態になるまで待機を完了する前に、新たに working または blocked への遷移が必要です。 状態が変わらないこと、タイトルがちらつくこと、または出力がないことだけでは、待機は完了しません。 observed_state には最初のアクティブな遷移が記録され、status には現在の状態が記録されます。 絶対指定の --timeout は両方の段階を対象とします(デフォルトは300秒)。タイムアウト時に遷移が確認されていない場合は、matched:false、evidence:"timeout"、および observed_state が null で返されます。ペインまたはターミナルが終了すると、error.data に pane、queued、submitted、observed_state、reason:"pane_closed"、baseline_revision、および content_revision を含む agent_not_running が返されます。待機中のタイムアウトとペイン終了では、CLI の終了コード2が返されます。キャンセル、タイムアウト、終了時には、保留中の待機の所有権が解放されます。 --wait を指定しない場合、即時応答の submitted:true、evidence:"queued" は変更されず、observed_state は省略されます。送信が意味するのはキューへの登録であり、状態の遷移によってプロンプトテキストが処理されたことが確認されるわけではありません。タイムアウトまたは応答の消失後に自動で再送しないでください。キューに登録された入力が実行される可能性があります。 agent.send および agent.prompt では、検出されたプロンプトブロックの証拠がある場合、入力をキューに登録せず agent_not_ready が返されます。Claude と Codex では、ライブ入力コンポーザーが有効であることを示す肯定的な証拠も必要です。任意のエージェントで肯定的なコンポーザーの証拠を必須にするには、--strict(UHP の strict:true)を使用します。検出機能のないエージェントでは agent_not_ready が返されます。strict モードを使用しない場合、その他のエージェントでは従来どおり、証拠が Unknown の場合のフォールバックが維持されます。明示的な agent keys アクションが許可されるかどうかを判断する前に、画面の表示内容を確認してください。

待機を要求した場合は、上限を設けて待機し、上限付きの結果を読み取ってください。

luvus agent send reviewer "Review the diff" --wait --timeout 300
luvus agent read reviewer --lines 120

agent start の識別情報については、idle、done、working、blocked を認識済みの状態として扱います。それらだけでは、プロンプトを受け付ける準備ができている証拠にはなりません。 unknown は完了の証拠ではありませんが、一致した識別情報を無効にするものでもありません。agent start が ready: true を返した場合は、追加のステータス照会を行わずに、その名前、ペイン、種類を受け入れてください。起動時の識別情報ではなく、作業の送信後に要求されたライフサイクル遷移を待つには wait agent-status を使用してください。複数の終端状態のうちいずれかでワークフローのブロックを解除する必要がある場合は、--status を繰り返すか、カンマ区切りの集合を渡してください。不明なオプションと位置引数は無視されず、拒否されます。

ブロックされたエージェントの場合:

  1. luvus agent get <target> を実行します。
  2. luvus agent read <target> --source visible --lines 120 を実行します。
  3. 該当する承認または質問を正確に特定します。
  4. ユーザーの依頼でその操作が許可されている場合に限り、agent keys を送信します。

agent keys が受け付けるのは、認識済みのエージェントペインと、既知のキー名を含む空でないリストのみです。キューに1つの順序付きアクションを登録する前に、リスト全体を検証します。無効な項目が1つでもある場合は何も送信されず、対象が閉じている場合は send_failed が返されます。

確認した画面との一致が必要な UHP インタラクションでは、source:"visible" を指定して agent.read を使用し、その content_revision を agent.keys の params で if_content_revision として、あわせて terminal_id も渡してください。visible 読み取りが対象とするのはライブ画面であり、ペインのスクロールバック表示領域ではないため、過去のターンまでスクロールバックしている間も有効です。revision は0以上の整数、ターミナル ID は小文字の16進数32文字ちょうどです。両フィールドはペアで任意指定できますが、片方のみ、または形式が不正なペアは invalid_request になります。延期されたペインの terminal_id は null であり、フェンスを適用できません。利用できない読み取りスナップショットでは、テキストは空、座標は null になります。 サーバーはペアを確認し、テキストの取得に使用したものと同じエンジンロックの下でキーをキューに追加します。content_revision_conflictはキーがキューに追加されなかったことを意味します。再読み込みして許可されたアクションを再評価し、同じペアで再試行しないでください。汎用レスポンスのrevisionとリクエストのif_revisionは、ペインのコンテンツカウンターではなく、グローバルなイベント座標です。ペアがない場合、動作は変わりません。古いサーバーでは座標が省略されたり、新しいフィールドが拒否されたりします。レガシーのフェンスなしの受け入れが許容される場合に限り、ペアを省略してください。これらはUHPパラメーターであり、CLIフラグではありません。

フェンスが適用されるのはキューへの追加だけです。すでにキューに追加された入力や、まだ観測されていない子プロセス側の変更は対象外です。カーソルやSGRの出力により、ダイアログのテキストに変化が見られなくても、ペアが古くなる場合があります。

ワークスペース、タブ、ペインを操作する

対象がまだ特定されていない書き込み操作の前に、以下の読み取りルートを使用します。

  • luvus workspace list
  • luvus tab list
  • luvus pane list
  • luvus pane status <id>
  • luvus pane read <id> --lines 120
  • luvus search <query>

ユーザーが安定した0ベースのワークスペースインデックスを指定した場合は、要求された変更を直接実行します。workspace listを実行するのは、名前、パス、サイドバー上の位置をインデックスに対応付ける場合、またはnot_foundの後に現在の選択肢を表示する場合だけです。スレッド内の最新の一覧結果を再利用し、これらのドキュメントに記載されたコマンドの前にhelpを実行しないでください。名前の変更で変わるのはラベルだけで、フォルダーは変わりません。ピン留めで変わるのはサイドバーの表示順だけで、APIインデックスは変わりません。

luvus workspace rename <workspace-index> <name>
luvus workspace pin <workspace-index>
luvus workspace unpin <workspace-index>

最後のプロジェクトを閉じても、クライアントが停止したり、シェルがない状態になったりすることはありません。Luvusはユーザーのホームディレクトリにニュートラルなワークスペースとターミナルを直ちに作成します。サイドバーのパスは保存されたホームルートのままですが、terminal_cwdはフォーカス中のペインに従います。したがって、workspace listが空になるのは復元または起動の例外的な失敗を示すものであり、サーバーがオフラインである証拠ではありません。ユーザーが特定のプロジェクトを指定した場合は、workspace open <path>を使用します。

管理対象のペインから操作する場合は、呼び出し元または分割のアンカーとしてLUVUS_PANE_IDを使用します。外部ターミナルから操作する場合は、最新の状態から明示的なペインを選択します。

明示的に指定したペインの隣で通常のコマンドを実行し、フォーカスを奪わないようにするには、次のようにします。

luvus pane split <anchor-pane-id> --no-focus
luvus pane run <new-pane-id> "cargo test"
luvus wait output <new-pane-id> --match "test result" --timeout 300
luvus pane read <new-pane-id> --lines 120

サポート対象のライブエージェントをフォークするのは、agent getで解決した後に限ります。フォークは元の会話を引き継ぎますが、新しい独立したセッションを受け取ります。

luvus agent get <target>
luvus agent fork <target> [--name <alias>] [--no-focus]

現在、ネイティブフォークがサポートされているのはClaude、Grok、Codex、Kilo Code、Pi、OMPです。返された場合は、unsupported_agent、session_unknown、またはspawn_failedをそのまま報告してください。失敗したフォークをpane split、agent start、またはresumeで代用しないでください。これらの方法では、会話の独立したコピーが保証されません。

ペインIDを解決してから、分割を転置します。

luvus pane transpose <pane-id>

これにより、そのペインを直接含む分割だけが切り替わり、フォーカス、ズーム、比率、稼働中のターミナルは維持されます。タブにペインが1つしかない場合は、changed:falseが返されます。レスポンスが失われた後は、再試行する前にレイアウトを確認してください。この切り替えは冪等ではなく、2回転置すると元に戻ります。

既存のペインを移動するのは、そのIDを解決し、そのペインが属するワークスペースの移動先タブを一覧表示した後に限ります。タブ番号は1ベースです。

luvus pane move <pane-id> --tab <tab-number>
luvus pane move <pane-id> --new-tab

アクティブなワークスペースでタブを並べ替えるのは、luvus tab listで移動元と移動後の位置を確認した後に限ります。

luvus tab move <from> <to>

高度な操作面を安全に操作する

SKILL.mdだけがインストールされている場合でも、このセクションの内容はすべて利用できます。advanced-control.mdがある場合は、簡潔なコマンド一覧として参照してください。このファイルがなくても操作の妨げにはなりません。また、推測や安全確認の緩和が許されることもありません。

状態と正確な対象を特定するには、次の読み取りルートを使用します。

  • ファイルと Git:luvus files tree、luvus git status、 luvus git branches、luvus git log
  • DIFF:luvus diff list、luvus diff get <path>、 luvus diff note list
  • ワークツリー:luvus worktree list
  • オーケストレーション:luvus task list、luvus task get <id>、 luvus lease list
  • モジュール:luvus module list、luvus module info <id>、 luvus module actions、luvus module settings <id>、 luvus module log <id>
  • テーマと UI:luvus theme list、luvus bar list、 luvus ui dock list

変更操作の文法が不確かな場合に限り、luvus help all を実行してください。 これは古い Luvus リリースとの互換性も保たれます。高度な領域を変更する前に:

  • ファイルを開く、パスを表示する、ツリーを更新する、または Git ビューを開く前に、ファイルと Git の状態を確認してください。
  • DIFF の正確なレイヤーとファイルを確認してから、開く、追加、編集、解決、削除、適用、またはレビューコメントの送信を行ってください。コメントの削除とエージェントへのフィードバック送信には、明示的な許可が必要です。
  • worktree を作成、開く、または削除する前に、worktree の一覧を確認してください。削除には、明示的な許可と正確なパスが必要です。削除が worktree_in_use を返した場合は、そのペイン、タスク、リースを報告してください。ユーザーが一覧にある作業の停止を明示的に許可しない限り、--force を付けて再試行しないでください。
  • タスクやリースの所有者、依存関係、ゲート、担当者、パスリースは、claim、start、update、complete、release、delete、merge の前に確認してください。task merge は luvus/integration にシリアル化されます。応答を待ち、merged を終端状態として扱い、報告された競合を解決してから再試行してください。ブランチに依存するタスクは、依存先がマージされるまでブロックが解除されません。task start の既定値は分離された mode=worktree です。明示的に mode=workspace を指定すると、共有チェックアウトにブランチのないタスクタブが作成され、マージできません。task start はどちらのワーカーを作成する場合も先にリースを確認するため、lease_conflict が返された場合は再試行の前に解決してください。リースは宣言されたパスを調整しますが、共有チェックアウトをサンドボックス化するものではありません。task release はアクティブなタスクを再キューに入れてパスリースを解放しますが、ワーカーペインは停止しません。ワーカーのステージング時にオペレーターの現在のワークスペース、タブ、ペインのフォーカス、ズーム状態を維持するには、task start ... --no-focus を使用してください。 task retry <id> は、done、failed、review、または blocked の作業を新しい試行で明示的に実行する操作です。以前のペイン、worktree、ブランチ、出力、メモは保持されます。依存するタスクがキューから外れた後は再試行が拒否されるため、先に依存タスクを確認してください。自動化が所有するタスクでは、元の実行スナップショットから変更不可能な新しい実行が作成されます。 task add --prompt <text> または --prompt-file <path> は、詳細なワーカー向けブリーフィングを保存します。task update でこれを置き換えられるのは、手動タスクがまだキューにあり、担当者が割り当てられていない場合に限られます。ワーカーの開始前に、保存されたプロンプトを確認してください。 タスクは作成時に、選択されているワークスペースのプロジェクトに紐付けられます。Luvus のペイン内で実行するコマンドには、そのワークスペースが自動的に適用されます。ペイン外で複数のリポジトリ、または複数の非 Git プロジェクトを開いている場合は、--workspace-id を指定してください。非 Git の起動ディレクトリのワークスペースと並んでいても、フォーカス中の Git プロジェクトが1つだけなら対象を特定できます。task next はそのプロジェクト内で実行され、リースが競合するのは同じプロジェクト内のみです。同じプロジェクトの Git worktree 間でも競合します。 作業の進捗は task update --note でのみ報告してください。task heartbeat --context-used <0..1> は、モデルのコンテキストウィンドウのうち既に消費した割合を示し、タスクの完了進捗を示すものではありません。0.6 は60%消費済みという意味です。コンテキストウィンドウの使用量が不明な場合は、heartbeat を省略してください。
  • エージェントのスケジュールを変更する前に、automation.list、automation.get、automation.history を確認してください。自動化の作成、更新、有効化、無効化、削除、または手動実行には、明示的な許可が必要です。カレンダートリガーは事前にプレビューし、ユーザーの IANA タイムゾーンを維持してください。再試行可能な create/run リクエストには冪等性キーを使用し、自動化を任意のスケジュール済みシェルコマンドに変換しないでください。無効化すると今後の実行は防げますが、実行中の ORCH タスクやペインは停止しません。 変更の成功は、台帳のチェックポイントを待ってから確定します。persistence_failed の発生後、または応答が失われた後は、状態を確認して同じ冪等性キーで再試行してください。定義が存在しないと決めつけたり、重複したスケジュールを作成したりしないでください。起動前に失敗した実行は、ストレージ復旧後に自動で再起動されません。 target=new_worker が永続的な既定値です。active_agent を使用できるのは、正確に特定したペイン、ターミナルのライフタイム、エージェント、ワークスペースの各 ID を指定する場合に限ります。delivered は入力キューに届いたことを示すもので、作業の完了を示すものではありません。ペインが閉じられた後、またはサーバーが再起動した後は、プロセスに紐付く対象を再利用しないでください。binding=durable として通知される対象が復旧できるのは、同じプライベートなネイティブ会話に限られます。needs_rebind が報告された場合は、対象のペインを先に確認してから automation.rebind を使用してください。別のセッションに置き換えないでください。
  • モジュールの状態を変更する前に、モジュールのメタデータ、アクション、設定、ログを確認してください。インストール、アンインストール、重大な設定変更には、明確な許可が必要です。
  • テーマソースをインストールする前に検証してください。明示的な許可なしに、アクティブなテーマをアンインストールしたり、リモートテーマを取得したりしないでください。
  • CLI ウィジェットコマンドには luvus bar ... を使用します。UHP のメソッド群は ui.bar.* です。配置やコンテンツを変更する前に、ウィジェットとドックを確認してください。ユーザーの依頼に必要な場合を除き、サイドバー、ドック、通知、トースト、バー、フォーカスを変更しないでください。
  • ユーザーから Mission Control を開くよう依頼された場合は、luvus mission open [<workspace>] で直接開いてください。省略可能なワークスペースのインデックスは0始まりです。アクティブなワークスペースを対象にする場合は省略してください。UHP による自動化では、UI を変更せずにデータを確認する場合は、ワークスペースのスコープ(既定値)または明示的な全ワークスペースのスコープで mission.snapshot を使用し、明示的に使用状況を更新する場合は mission.refresh を、表示中のタブを変更する場合に限り mission.open を使用してください。mission.refresh の refresh_id を保持し、同じ server_generation 内で refresh.completed_id がその値に達するまで mission.snapshot を読み取ってください。usage:null は不明を意味し、0ではありません。部分的な結果を説明するには、usage_status と summary.usage_coverage を使用してください。scope:"all" の場合も、選択された名前付きセッション内に限定されます。
  • エージェントの検出機能は Luvus に組み込まれています。luvus integration install は任意のネイティブなセッション再開フックを管理するものであり、エージェントをサイドバーに表示させる目的だけで使用してはいけません。ユーザーがライフサイクル統合を明示的に依頼した場合に限り、統合をインストールまたは削除してください。
  • Antigravity CLI では、luvus integration install antigravity により、復元時に正確な会話 ID が追加されます。これはセッション限定です。エージェントの状態は引き続きネイティブな画面検出を基準としてください。
  • OpenCode では、luvus integration install opencode により V1 または V2 が検出され、一致する統合コントラクトを通じて、正確な TUI ローカルのルートセッション所有情報が追加されます。 opencode2 は、正規の opencode エージェントの互換エイリアスです。稼働中のデータベースから V2 のセッション ID を推測しないでください。
  • Devin では、luvus integration install devin により、再起動後の再開に使う正確なセッション ID のみを報告する、セッション開始フックが1つ追加されます。検出は引き続きネイティブに行われます。プライベートデータベースからセッション ID を推測しないでください。luvus agent resume <id> では Devin のセッションを検索できないため、統合を使用しない場合は、正確な ID がわかっているときに luvus pane report --agent devin --session <id> でペインを紐付けてください。
  • Hermes では、luvus integration install hermes により、再起動後の再開に使う正確なペインごとのセッション所有情報が追加されます。検出は引き続きネイティブに行われますが、Luvus は Hermes のプライベートな履歴ストアをスキャンしません。
  • Letta Code では、luvus integration install letta により、正確な会話 ID のみを報告する、静かなセッション開始フックが1つ追加されます。検出は引き続きネイティブに行われます。 Luvus は Letta のメモリ、認証情報、会話、クラウドの状態を調べず、Letta のネイティブなフォークやスケジュール済み自動化も提供しません。
  • ライブ監視を依頼された場合に限り、イベントを購読してください。条件が満たされたら停止し、無期限のストリームを保持しないでください。

設定と不慣れな操作面を確認する

インストール済みのコマンドの構文は luvus help <topic> で確認してください。選択したサーバーの最新の自動化仕様は、luvus uhp capabilities と luvus uhp schema で確認できます。設定、インストール、概念、またはここで扱っていない操作面については、まず https://luvus.dev/agent-readme.md を読み、https://luvus.dev/llms.txt を使って関連するドキュメントページだけを開いてください。

Luvus の設定は ~/.luvus/ 内の config.json、または明示的に指定された LUVUS_HOME にあります。デバッグビルドでは ~/.luvus-dev/ を使用します。検証済みの設定を即時反映するには Settings 画面を使い、手動で編集する場合は不明なフィールドを保持してください。また、本番環境、開発環境、名前付きセッションのパスを代用しないでください。ウェブサイトに新しいリリースが記載されていても、インストール済みのバイナリと選択中の実行サーバーを優先してください。

安全性

  • 書き込みには明示的な対象を指定してください。フォーカス中のペインが別のクライアントに属している場合があります。
  • 変更を依頼されていない限り、フォーカスと非アクティブなペインのスクロール位置を保持してください。
  • プロンプト、パス、Unicode、引用符、ドル記号、等号、改行は引数として保持してください。不要な sh -c による補間レイヤーは避けてください。
  • 明確な承認と読み取り専用の対象確認がない限り、ペイン、タブ、ワークスペースを閉じたり、worktree を削除したり、タスクを削除またはマージしたり、モジュールをアンインストールしたり、重大な設定を上書きしたりしないでください。
  • 通常の操作手順として Luvus サーバーを停止または再起動しないでください。明示的な依頼があり、管理対象のすべてのペインに影響することを警告した場合に限り実行してください。

コメント