長期実行オーケストレーション
コーディネーターは直列的な決定ポイントです。コーディネーターが行うすべての読み取りと、そこにルーティングされるすべての決定は、時計のないキューで待機し、飽和すると作業は静かに停止します。このスキルは、そのようなキューに何も到達するのを防ぎます。
ドライブのトップレベルは2つのセッションで構成されます。コミュニケーターはオーナーがタイプ入力するセッションであり、その役割はオーナーとのやり取りだけです。コーディネーターは、レーン root としてバインドされた兄弟のOrcaセッションであり、リクエストが到着したターンにボディを持つすべてのリクエストに対してレーンを起動し、プロセスからエスカレーションされた内容を決定し、デスクが生成したものを中継します。その隣にはメタレーンが立ち、すべてのスキル、ツール、プロセスの変更を受け取り、各裁定をスキル更新に変換します。また、シグナルレーンはコーディネーターを追跡し、コミュニケーターが監視する必要をなくします。これ以外はすべて、ドライブツール lr の動詞(verb)、またはそれらを経由せずに実行されるプロセスです。ここでのルールは、失敗を不可能にする動詞またはプロセスを名前指定します。どちらも持たないルールは、パック内で修正すべき欠陥です。
このスキルは ~/.claude/CLAUDE.md に置かれ、ファンアウト形状、モデルルーティング、検証深度を管理します。パックは1つのGoバイナリ lr であり、置き換えられるPythonスクリプトは各動詞が本番稼働するまで保持されます(設計)。
3つ以上のレーンが同時に動作する、単一コンテキストウィンドウを超えるタスク、CI待ち、キュー、適用(apply)、浸漬(soak)、または多数の独立したユニットにわたるスイープは、ドライブです。単一レーンの調査は、直接モードの1つのサブエージェントで行い、ドライブではありません。
目次
- 自分のジョブのファイルを読む
- 判断を優先
- フックと拒否
- メタ変更はスキルに反映
- すべてのツール呼び出しの前に
- 動詞に問い合わせよ、読むな
- ルール
- フェーズ0: 常設セッション
- コーディネーターを経由せずに実行されるもの
- レーンとデスク
- オーナーの接点
- 記録とタスクリスト
- 開始と再開
- このスキルにルールを追加する
自分のジョブのファイルを読む
自分が担当している行だけを読んでください。各ファイルにはそのルールが完全に記述されています。
判断を優先
- どのルールも、決定の鍵となる1行を読むことを禁じてはいません。
- 手元にある発見は修正であり、レーン、再監査、またはワークフローではありません。
- オーナーの各文を、注意深い同僚が読むように読んでください。訂正は、以前にオーナーが裁定したものを再設計するのではなく、読み取りの欠陥を特定するものです。行動する前に、その件に関するレジスターの行を読んでください。繰り返しは、最初の読み取りに関する欠陥報告です。その読み取りが残っているすべての場所を、そのターンで修正してください。
フックと拒否
- フックは警告します。信頼に基づいてのみブロックします。オーナーの承認なしのマージ、ランディングを承認する人の変更、オーナーの許可なしのリバート、コミュニケーターから起動されたランナー/デスク、本番環境でオーナーのサインイン済みブラウザを操作するレーン、インストール済みフックファイルとセッション保護ガードへの編集。失敗した読み取りは警告のみです。
tests/test_fail_open.pyがこれを強制し、例外を列挙します。Slack権限フックはフェイルオープンします(slack-lane-brief.md)。 - あなたの作業で誤発火したフックは、そのターンにあなたをブロックする修正レーンを取得し、ブロックされていないものについては作業を続けます。本番IDガードなど、正しい拒否には修正レーンはありません。ブロックされたセッション(レーン、デスク、コーディネーター、コミュニケーターのいずれか)が、
rootへの問い合わせやメタレーンなしで起動します。lr launch lane hook-fix-<hook> opus high <brief> --drive <drive> --lane <you>、ただしlr lanes hook-fix-<hook>で生きているものがある場合は除きます。 - フックは、yasyf/cc-skills の
plugins/long-running/capt-hook/hooks/と yasyf/captain-hook のcaptain_hook/builtin_packs/にあります。すべての変更はcaptain-hook:authoring-hooksに従い、そのリポジトリのCIでlintとテストが実行されます。修正レーンは、回帰テストとともにフックの実際の欠陥を修正し、出荷し、ブロックされたセッションが実行される場所にインストールします。その証明は、拒否された呼び出しが通過することです(orca-lane-brief.md)。 - 修正は迂回ではありません。拒否が有効な間、誰もブロックされたものをラッパー、
cc-sudo、またはスクリプトを介して実行しません。オーナーの安全ルールはそのまま維持されます。マージ、Slack、負荷テスト、プロセスガード。これらのいずれかをガードするフックが誤発火した場合、回帰テストとともに誤発火を修正し、ルール自体はオーナーの言葉によってのみ変更されます。修正前に無効化される1つのフックは、コミュニケーターのすべての動作をブロックするものです。パックソース内でTODOに修正レーン名を記入してコメントアウトし、即座にマージされたPRで行います。インストール済みキャッシュの編集は、次のインストールまでしか持続せず、このMacでは数分以内に実行されるためです。 - ブロックせず改善の余地があるフックは、1つの
cci post --kind note --to meta-deskとしてメタレーンに送られます。その他のツールの拒否は、同じターンにメタレーンに送られ、作業は手動パスで続行されます。拒否は言い訳やオーナーへの質問ではありません。プラットフォームも同様です。待機や失敗の原因をSprite、ホスト、共有ツールのせいにするレコードは、その根本原因を修正するレーンとその修正のクロックを特定し、そのようなレーンがない場合は、そのターンにコーディネーターに1つを依頼します。マシンの交換は一時しのぎであり、決して答えにはなりません。
メタ変更はスキルに反映
世界的に適用可能なメタ変更、つまりレーン、カード、待機、返信、フック、ルーティング、回答の仕組みに関する裁定を受け取ったレーンは、到着したターンに1つのcciレコードとしてメタレーンに送信します。メタレーンは常に、このスキル、またはそれを所有するブリーフテンプレート、フック、cc-notesドキュメントの更新にし、マージしてインストールし、触れたセクションを書き換えリファクタリングして、スキルが1つの設計として読めるようにし、決して単に追加された行にしないようにします。メモリファイルやレコードはポインタであり、完了とは見なされません。
すべてのツール呼び出しの前に
| 呼び出しが | 実行すること |
|---|---|
| 動詞が答えるもの | 動詞を実行する。 |
| ボディを持つ作業 | そのタスクと台帳行でレーンを起動する。 |
| 待機 | それを動作するレーンに組み込む。 |
| ステータス | コミュニケーターは更新デスクのレンダリングを送信する。コーディネーターは何も送信しない。 |
| オーナーメッセージ | コミュニケーターはそのための1つのサブエージェントを起動し、それが来たサーフェス上で回答する。コーディネーターは裁定をあらゆる場所に適用する。ドライブの仕組みに関する裁定は、そのターンにメタレーンに行き、メタレーンはそれをスキル更新にする。 |
| スーパーバイザーが未対応のアラート | lr incident run <slug> を今すぐ実行。 |
| ツールの拒否、または2回失敗したもの | あなたの作業をブロックするフックは、このターンに起動する修正レーンを取得します(フックと拒否)。それ以外はすべて、このターンにメタレーンに送られ、修正はGo動詞です。どちらにせよ続行する。 |
| 承認、保留、開始、またはキャンセル | オーナーの命令がそれを運ぶか、レーンがそれを所有する。 |
終了したエージェントは停止、本番運用はログ記録、ライブかつチェック済みでないものは完了と呼ばない。 リストを生き残った呼び出しは、どの動詞もどのレーンも決定できない何かを決定します。それ以外はすべてレーンです。
動詞に問い合わせよ、読むな
| 知りたいこと | 実行する |
|---|---|
| レーンが生きているか、最後に何と言ったか | lr lanes <lane> --config <lr.json> |
| すべてのレーン、その状態、PR、常時任務 | lr lanes |
| 最後に見てから何が起こったか | cci digest --drive <drive>、次に cci tail --drive <drive> --cursor root |
| オーナーを待っているもの | cci owner-waits --drive <drive> |
| どのサブドライブが開いていて、それぞれがまだ何を保持しているか | lr drive sub list |
| 名前を指定する必要があるPRの状態 | ccx vcs pr status <n1> <n2> ...、バッチ処理 |
| オーナーがボードで承認したPR、およびそのうちまだ開いているもの | lr approved [--since <seq>]、バックフィルされた評決は除外 |
| すべての未解決のリクエスト、およびランディング済みだがライブでないもの | lr asks |
| オーナー更新、完全版、ソースから | lr update render、コミュニケーターの update-desk によって実行 |
| インシデントが何をしているか、それが何であるかを1文で | lr incident status <slug>; lr incident describe <slug> |
レーンのメールの送信先、すべての lr 動詞はステム meta-desk を最新のライブレーンに取る | lr route <lane> |
表にない読み取りはレーンに属します。PR、CIログ、Slackスレッド、長いファイル、クラウドリスト、ビルドページ。承認している差分、計画、評決は自分で読むことができます。コーディネーターはリーダーを起動し、最大5行を受け取ります。検索は1回の呼び出し、lr ask-lane '<question>'。root_context と root_reads フックは、それらの種類の読み取り、1つのオーナーリクエストのために開かれた2番目のソース、および tail や grep を介してパイプされたレーンのレコードに対して警告します。コミュニケーターのウィンドウでは、root_context は広範な検索を拒否し、lr ask-lane を指定します。
ルール
IDは安定しています。スクリプト、フック、参照はそれらを引用します。root は、ルールがコミュニケーターを指定しない限り、コーディネーターを意味します。
R1. 基本情報は、所有するレーンまたは動詞から得られます。grep、リスト、curl、ビルドページからではありません。最大5行まで。優先PR状態は、1回のバッチ処理された ccx vcs pr status 呼び出しで読み取られます。
R2. ボディを持つものはすべてレーンです。1つの制限されたウィンドウを超える読み取り、ログ、調査、PRまたはマージのメカニズム、列挙。1つの名前付きファイルの1回の制限された読み取り(最大150行)は許可されます。
R3. 待ってから実行するチェーンごとに1つのレーン、そしてレーンは駐車しません。レーンは、Monitor、Agent通知、クロック用の CronCreate、またはターミナル状態への1回の lr wait 呼び出しを待ち、1回報告します。shell_waits はシェルループやスリープをブロックします。デスクの Monitor は期限切れで再アームされます。
R4. レーンに再ブリーフィングしてはいけません。重複に答えてはいけません。終了したエージェントへの SendMessage は、そのブリーフを再実行します。lr wait は、印刷されたメールを既読としてマークします。
R5. 書き留め、保持しないでください。発見したレーンから cc-notes へ。ブリーフは briefs: <slug> ログの添付ファイルとして。~/.claude/scratch の下に手作りしないでください。
R6. すべてのオーナーリクエストは、到着したターンに処理中になります。リクエストごとに1つのレーン。ビジーなレーンのキューに追加しないでください。レーンは、成果物ごとに1つのPRを所有し、その修正をコミットとしてランディングします。orca-lane-brief.md は、いつスタックするかを示します。
R7. PRの状態は、報告される前に読み取られます。ccx vcs status またはフェッチされたトランク上のスカッシュコミット。メッセージやメモリからではありません。
R8. すべてのオーナーリクエストは、到着したターンに台帳の行になります。LIVE でのみ完了します。それ以前の答えは「#N にあり、まだライブではありません:<ブロッカー>」です。
…
[翻訳のために一部省略]