Communitygithub.com

yasyf/long-running

複数レーンを駆動する長期実行オーケストレーションスキル。コーディネーターがボトルネックにならないように設計されており、複数のコンテキストウィンドウを超えるタスク、CI/インフラ構築、マイグレーション/監査、バックグラウンドエージェント監視、大量のPR管理などに使用します。

long-running とは?

このスキルは、複数レーンにわたる長期実行タスクを効率的に処理するためのオーケストレーションパターンを定義します。中心的な概念は「ドライブ」であり、これは複数のレーン(並行処理ユニット)で構成されます。ドライブのトップレベルは「コミュニケーター」(オーナーとの対話窓口)と「コーディネーター」(決定の集中ポイント)の2つのセッションを持ちます。コーディネーターがボトルネックになるのを防ぐため、メタレーン(スキル変更を管理)やシグナルレーン(コーディネーターの追跡)などの補助レーンが用意されています。すべての作業はGoバイナリ `lr` の動詞(verb)として実行されるか、コーディネーターを迂回するプロセスとして動作します。スキルは `~/.claude/CLAUDE.md` にインストールされ、Claude Code (Codex) プラットフォームを前提としています。設計文書はGitHubのForge-AI/design-docsリポジトリにあります。複数のレーンを同時に扱う、単一コンテキストウィンドウを超えるタスク、CI待ち、キュー処理、多数の独立したユニットをスイープする作業などがドライブに該当します。単一レーンの調査は直接モードのサブエージェントで行い、ドライブにはしません。

対応✓Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/yasyf/cc-skills/tree/HEAD/plugins/long-running/skills/long-running

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

長期実行オーケストレーション

コーディネーターは直列的な決定ポイントです。コーディネーターが行うすべての読み取りと、そこにルーティングされるすべての決定は、時計のないキューで待機し、飽和すると作業は静かに停止します。このスキルは、そのようなキューに何も到達するのを防ぎます。

ドライブのトップレベルは2つのセッションで構成されます。コミュニケーターはオーナーがタイプ入力するセッションであり、その役割はオーナーとのやり取りだけです。コーディネーターは、レーン root としてバインドされた兄弟のOrcaセッションであり、リクエストが到着したターンにボディを持つすべてのリクエストに対してレーンを起動し、プロセスからエスカレーションされた内容を決定し、デスクが生成したものを中継します。その隣にはメタレーンが立ち、すべてのスキル、ツール、プロセスの変更を受け取り、各裁定をスキル更新に変換します。また、シグナルレーンはコーディネーターを追跡し、コミュニケーターが監視する必要をなくします。これ以外はすべて、ドライブツール lr の動詞(verb)、またはそれらを経由せずに実行されるプロセスです。ここでのルールは、失敗を不可能にする動詞またはプロセスを名前指定します。どちらも持たないルールは、パック内で修正すべき欠陥です。

このスキルは ~/.claude/CLAUDE.md に置かれ、ファンアウト形状、モデルルーティング、検証深度を管理します。パックは1つのGoバイナリ lr であり、置き換えられるPythonスクリプトは各動詞が本番稼働するまで保持されます(設計)。

3つ以上のレーンが同時に動作する、単一コンテキストウィンドウを超えるタスク、CI待ち、キュー、適用(apply)、浸漬(soak)、または多数の独立したユニットにわたるスイープは、ドライブです。単一レーンの調査は、直接モードの1つのサブエージェントで行い、ドライブではありません。

目次

自分のジョブのファイルを読む

自分が担当している行だけを読んでください。各ファイルにはそのルールが完全に記述されています。

あなたは読むもの
オーナーに応答(返信、選択、再設計、Slack、ボード)communicator-brief.md
オーナー向け更新のレンダリングまたはダッシュボードの維持owner-report-table.md, drive-dashboard.md
コーディネーターcoordinator-brief.md
メタレーンまたはその実装者meta-lane-brief.md
シグナルレーン、雑務レーンsignal-lane-brief.md; chores-lane-brief.md
レーンブリーフの作成、またはその下でのレーン/デスクとしての作業orca-lane-brief.md
レーンのコンテキストローテーション、ハンドオフ、コンパクションhandoff-subagent-brief.md, compaction.md
MacまたはSprite上でのOrcaワーカーの起動または中継orca-desk-brief.md, orca-workers.md, orca-sprite-workers.md
PRのランディング、マージキュー、D1~D23landing.md, merge-train-brief.md
ヘッド、ランディング、または計画のグレーディングgrading-principles.md, finder-brief.md, finder-desk-brief.md, finder-desk-rows.md, fidelity-desk-brief.md, fidelity-job-brief.md, semantic-collisions-brief.md
所有者のいないレッドの管理red-sweep-brief.md
アラートまたはインシデントactive-alert-brief.md, alert-fix-brief.md, alerts-desk-brief.md, alert-evidence-brief.md, alert-comms-brief.md, unfixed-case-brief.md
リリースrelease-lanes.md, manual-release-brief.md
Slackへの投稿slack-lane-brief.md, comms-desk-brief.md
cciレコードの投稿/読み取り、レーンバス、Bルールbus-contracts.md
オーナー裁定の記録/適用、レジスター、判定者owner-rulings.md
レーン活性: レーンが沈黙できない理由、スーパーバイザー、ウォッチャーsupervisor.md, watchers.md, drive-watchdog-brief.md
唯一の最重要成果; サーフェスに対するオーナーの操作priority-desk-brief.md; user-test-brief.md
サブドライブの開始sub-drives.md
大規模コーパスを修正レーンに読み込むthe bulk-read skill
ルールの存在理由を問う; レーンがジョブを遂行するためにこれは不要lessons.md

判断を優先

  • どのルールも、決定の鍵となる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 にあり、まだライブではありません:<ブロッカー>」です。

…

[翻訳のために一部省略]

Individual skills in this repo

This repo contains 3 individual skills — each has its own dedicated page.

yasyf/design-doc

Run an assumptions-first architecture design and ship it as an interactive design doc. Ground truths land in a register with stable IDs, every design fork goes through a question round with a recorded escape hatch, an adversarial review attacks the middle draft, and every estimate is gated on a named spike. The deliverable is a registers.json-driven single-file HTML doc that opens on a hand-written executive summary, cites every entry by a human-readable handle, carries declared interactive components, and answers questions in the page when an AI config is deployed beside it, plus a generated PDF, written as a humble proposal that explains and asks for feedback. Use when asked to "write a design doc", "architecture proposal", "help me design <system>", "redesign <system>", "assumptions-first design", or to turn a systems discussion into a reviewable design document.

yasyf/open-pr

Open a pull request that reads like the repo's own maintainers wrote it — pick a depth first, where an express lane for "just open the PR" or "just ship it" orients, writes, and ships without the research passes, and the full lane orients with `ccx vcs lane` and `ccx vcs guidelines`, learns the house style from a bot-filtered sample of recent human-authored merged PRs via a cached per-repo style card, calibrate register against a local wlm voice profile, run a politeness and standards-conformance pass with issue-first handling on repos the user does not own, write the title, body, and commit messages to the repo's own conventions, ship through `ccx vcs ship`, and hand the CI and bot-comment watch to a background pr-watcher agent. Use when opening, submitting, or contributing a pull request, drafting a PR title or body, contributing a change to an open-source repo, or shipping a branch as a PR.

yasyf/orca

Launch and supervise Orca workers through the canonical Sprite prepare-and-attach entrypoint, with an explicit local route for Opus roots and the rare Fable assignment for the most sensitive work, and reclaim what a settled Dispatch left behind. Use for worker dispatch, native Run messaging, remote diagnosis, ending a done lane, or source return.

関連スキル