mcpField
K
kickoff

kickoff

github.com/timmyy3000エージェントワークフロー238 回インストール3 週間前に更新
リポジトリ

kickoff について

kickoffは、意図から検証・引き渡しまでを導くエージェント向けのエンジニアリングワークフロースキルです。リスクに応じて手順を分け、承認、レビュー、進捗、最終状態を管理します。

主な機能

  1. 01リスクに応じた調査・変更ルート
  2. 02プレイブック選択と進行ゲート
  3. 03エピソード状態と修正の追跡
  4. 04レビュー・実装・引き渡しの各段階
  5. 05最終状態の検証とクローズアウト

活用シーン

  1. 01曖昧さとリスクに応じた変更手順の選択
  2. 02複数段階の作業における決定事項の追跡
  3. 03承認済み作業のレビュー通過を支援
  4. 04引き渡しの検証と記録

インストール

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

$npx skills add https://github.com/timmyy3000/skills --skill kickoff

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

同梱ファイル

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

agents/
openai.yaml
playbooks/
authoring-a-skill.md
autonomous-run.md
autopilot-full.md
autopilot-stack.md
babysit.md
bug-fix.md
eval.md
feature.md
hillclimb.md
investigation.md
multi-phase-plan.md
opening-a-pr.md
orchestrate.md
pause-safely.md
perf-issue.md
prototype.md
refactoring.md
runtime-forensics.md
session-pickup.md
shipping.md
trace-forensics.md
visual-parity.md
worktree-cleanup.md
references/
bugbot-triage.md
config.md
delegate-brief.md
episode-state.md
harness.md

詳細

Kickoff

意図から検証済みの最終状態まで、エンジニアリングの一連の作業を、安全性が許す限り人の関与を最小限にして実行します。2 つのレイヤーで 1 つのシステムを構成します。

  • エピソードレイヤー(ルート、エピソード状態、修正、デリバリー状態、完了処理)は、作業にどれだけのプロセスを適用するか、そして本当に完了したタイミングを判断します。
  • エンジニアリングレイヤー(譲れない条件、原則、自律性、サブエージェント、返信、プレイブック)は、作業の進め方を判断します。

スキルは名前で呼び出します(/kickoff)。モードの切り替えはありません。以下のツール名は T3 Code のものです。別のハーネスでは、最初の呼び出しの前に references/harness.md に従って各ツールを対応付けてください。ハーネスのスキルツールで公開されていないスキルは、同階層のフォルダー(<skills-root>/<name>/SKILL.md)から読み込みます。

範囲と権限

ワークフローの既定値よりも、ユーザーが明示した範囲と適用可能な事前の承認を優先してください。確立された規約に従い、承認済みの準備作業と取り消し可能な作業を続行してください。エンジニアリング上の保護策とアクセス制御は維持してください。スキルが進行を妨げる場合は、該当する指示と具体的な矛盾点を特定し、書き込みが範囲内ならスキル自体を修正する PR を作成して、独立して承認済みの作業を続行してください。

読み取り専用、または変更を伴わない依頼では、それらの書き込みが明示的に承認されていない限り、計画、状態、メモリ、設定、ナレッジレコードを作成または更新せず、チャットで調査結果を返してください。

受付

3 つの判断を一度だけ行い、エピソード状態に記録します。

  1. ルートでゲートを設定します。
    • investigation。読み取り専用の調査結果のみ。計画、実装、PR の各段階はありません。
    • tiny。範囲が狭く、確立されたパターンに沿い、受け入れ条件が明確でリスクが低い変更。計画はインラインで行います。リスク要因に該当する場合に限り、計画レビューを行います。
    • fast。範囲が限定された変更。短い Markdown 計画と敵対的レビューを行います。計画で仕組みを追加する場合は、単純性レビューも行います。
    • full。曖昧、横断的、重大な影響がある、元に戻しにくい、新規性が高い、または調整作業が多い場合。完全な計画、複数モデルによる敵対的レビュー、単純性レビューを行います。

タスク固有の領域における 6 つの観点、すなわち曖昧さ、影響範囲、誤りの重大性、可逆性、新規性、調整の必要性で判断します。実質的なリスクを示す根拠が見つかった場合にのみ、ルートを上げてください。見た目には小さな変更でも、重要なユーザージャーニーに関わるなら full になることがあります。独立したバックエンドの変更なら tiny になることがあります。 2. プレイブックで手順を設定します。以下の「Playbooks」セクションから適切なものを選びます。ルートによってプレイブックの手順が省略されることはありません。tiny のバグ修正でも、まず再現します。 3. 許可範囲で人の関与の境界を設定します。ユーザーが計画または差分を確認したい場合は supervised。それ以外は autonomous(既定値)です。ユーザーがマージ、取り込み、リリース、自動操縦、または「朝までにマージしておいて」と依頼した場合は land にします。許可の根拠となった言葉を正確に記録してください。

実験では答えが確定しない質問(譲れない条件)だけを尋ねてください。それ以外は、ユーザーが訂正できる既定値として記録します。

エピソード状態

成果物への書き込みが許可されている場合は、計画の前に references/episode-state.md に従って <task-workspace>/episode-state.md を作成します。フェーズの移行時と引き継ぎ時に更新してください。これは、すべての作業者と、コンテキストの圧縮や中断からの復旧における信頼できる唯一の情報源です。リポジトリを再度調査する前に読み込んでください。すべての委任先にそのパスを渡してください。厳密な読み取り専用作業では、状態をチャットに記録します。

エピソードの進行

  1. ワークスペース。 リポジトリの指示と成果物の規約を確認します。変更作業では、最初の編集前に分離されたワークツリーを紐付けます(ハーネスマップ:Worktrees)。パスと初期状態の Git を記録します。
  2. 把握。 プレイブックの冒頭の手順(how、再現、追跡、ベースライン)を実行します。その出力が計画のエビデンスインデックスになります。
  3. plan-it で計画するルートを決めます。プレイブックが求める場合、architect の出力を計画の設計セクションにします。釣り合いを欠く計画や、出典のない仮定に基づく計画は却下します。
  4. 計画をレビューする。 ルートに従って adversarial-review と simplicity-review を実施します。各指摘に安定した ID と対応方針を付与します。受け入れた変更は plan-it に戻します。
  5. 承認する。 supervised ではユーザーを待ちます。autonomous または land では、実験で解決できない未決のオーナー判断が残っていない限り、レビューを調整した時点で計画を進めます。その判断をデフォルトとともに報告し、妨げられない作業は続行します。
  6. ship-it で実行する。 プレイブックのビルド手順はその中で実行します。委任、検証、実装レビューのモード、および create-pr は ship-it が担います。
  7. 納品する。 単一 PR のエピソードでは、create-pr を通じて watch_pull_request を開始し、drive モードで Babysit を実行してマージ可能な状態にします。スタックの場合は、スタック作成後に監視を開始します(PR の作成)。land では Shipping プレイブックを続けます。それ以外では ready-to-merge で停止します。
  8. 締めくくる。 Closeout 契約に従って終了し、エピソードでスキルに反映すべき教訓が明らかになった場合は reflect を実行します。

investigation ではステップ 2 の後に停止します。根拠となる情報源、不確実性、次の判断を添えて調査結果を報告します。investigation-complete を記録します。

修正と方針のずれ

ユーザーがスコープ、アーキテクチャ、ブランチの対象、監視、または締めくくりを修正した場合は、具体的な修正内容を確認し、ブリーフ、計画、エピソードの状態を更新して、無効になったフェーズを特定し、そのフェーズだけを再実行して、修正をカテゴリ別に数えます。新しい入力が明らかに別のエピソードへの置き換えでない限り、アクティブなエピソードへの修正として扱います。終端状態の後に目的を変更する作業は新しいエピソードです。

納品状態

  • ready-to-merge。現在の HEAD が Forge 上でマージ可能で、必須チェックとレビューに合格しており、対応が必要な指摘が残っていない状態です。land の許可がない場合に限り、終端状態です。
  • merged。マージと最終 SHA を確認済みの状態です。ワークツリーの処置と締めくくりの証拠を記録した時点で終端状態になります。
  • delivered-direct。PR を作成しない納品が明示的に許可され、リモートの対象 SHA を確認済みの状態です。
  • investigation-complete、canceled、または blocked-external(次の担当者とアクションを記載)。

チェックが保留中のオープン PR は終端状態ではありません。TODO 項目や一度限りのステータス確認は監視ではありません。

Closeout 契約

最終返信の前に、終端状態と最終ローカル/リモート SHA、未解決の指摘を含むチェックとレビュー、対象範囲内でのデプロイまたは昇格、ブランチとワークツリーの処置、永続的な成果物のパス、一時ファイルの削除、リポジトリで必要な場合のナレッジ記録の調整、監視の停止または継続(その理由を記載)を確認して記録します。詳細なワークツリーのクローズアウトは ship-it が担います。実施していないデプロイ、マージ、クリーンアップを実施済みと主張してはいけません。

バージョンと依存関係の事前確認

エピソードごとに、インストール済みのバンドルバージョンを一度確認します。互換性のある新しいバンドルがある場合は、更新を一度だけ提案し、更新が受け入れられた場合は新しいタスクを要求します。辞退された後は再度促しません。ルートと納品経路で実行するステージに限り、スキルを解決します。計画には plan-it、適用されるゲートには計画レビュアー、実装には ship-it と code-review、別個のレビューモードには ponytail-review、PR 納品には create-pr を使います。ステージのスキルがない場合は、それぞれのフォールバックに従って機能を縮退させ、決して黙って処理してはいけません。

必須事項

以下の原則セクションは、すべてのトリガーの根拠となります。回答では、判断に影響した各原則と、その原則によって変更された具体的な選択を挙げてください。このセッションでリーフの SKILL.md を読んだ原則のみを引用してください。

残りのトリガー:

  • 重要な変更、アーキテクチャ上の決定、または「本当にそうなのか?」という疑問 → how スキルを使います。
  • ユーザーに「どの方法にするか」「どうすればよいか」「何をするべきか」という分岐を尋ねる前に → 質問する前に分類します。答えが、何かを実行すれば観察できる事実(動作、タイミング、レイアウト、出力、パフォーマンス、評価で差が出るかどうかも含む)なら、それは人間が答えることではありません。Prototype プレイブック(playbooks/prototype.md)に沿ってスケッチし、その結果で判断します。成果物が根拠を引用した回答となる、読み取り専用の調査タスクであれば、そのまま調査を続け、スケッチを作るのではなく、根拠に基づいて回答します。実験では決められない、本当の製品上の判断や好みの判断に限って質問します。完全な自律権限が与えられている場合は、その権限の範囲内の判断を自分で下して実行し、返答を求めたり申し出たりせず、その内容を報告します。その権限の下で、オペレーターにしか下せない判断にはデフォルトを適用します。デフォルトを十分に説明して報告し、別の対応を望む場合にオペレーターが何を指示すればよいか、平易な言葉で伝えます。オペレーターは自分の言葉で回答します。返信で入力する略語やトークンを指定してはいけません。オペレーターが指定したゲートと、自律性に関する常に一時停止する項目では、引き続きオペレーターの判断を仰ぎます。
  • コードを扱う場合 → まずデータの形状を明示し、principle-model-the-domain に従って構成を選びます。
  • 関数の境界を越えるコード → architect スキルを使い、実装前に複数の並行設計案を検討します。
  • 並列の分岐処理 → 網羅性マトリックス、競合、総合テスト、探索の分割には swarm スキルを使います。基盤の選定やコードの移植を伴う設計またはコードの比較検討には arena を使います。
  • 意見が対立する設計 → リリース前に interrogate スキル(複数モデルによる敵対的検討)を使います。
  • 重要な複数ステップの作業 → スループットのチェックポイントを記録します(Feature のステップ 3)。
  • あらゆる文章の表面 → unslop スキルを使います。あなたの返信も文章の表面です。「返信の作成」に従って書きます。エージェント向けの文章には、「スキルの作成または変更」プレイブック(playbooks/authoring-a-skill.md)も適用されます。
  • ドキュメント、RFC、README、PR の説明、コミットメッセージ → technical-writing スキル(/technical-writing)を使います。
  • コミット前 → 差分に対して unslop スキルを使います。
  • レビュー前 → no-comments スキルを使います。
  • UI、デバイス、CLI のリリース → 実際の画面や環境で動作を確認します。ブラウザー UI には preview_* ツール、シミュレーターには device_* ツールを使い、証拠として preview_recording_start/preview_recording_stop および device_screenshot を使用します。バグ修正では、まず自分で同じ画面や環境上で再現します。ユーザーに引き継いでよいのは、Bug fix のステップ 1 にある限定的な例外に該当する場合だけです。
  • ベンチマークの実行、自分でのパフォーマンス測定、または測定した高速化や性能低下の報告 → 数値を報告または判断に使う前に benchmark-checklist スキルを使います。
  • PR のステータスに関する依頼 → Babysit プレイブック(playbooks/babysit.md)を使います。「これを見守って」「グリーンにして」「bugbot のコメントに対応して」や、よくある「PR X を確認して」/「X に未対応事項はある?」も含まれます。PR の作成がこれを開始するのは、Episode フローのステップ 7 を通じてのみです。単一 PR のエピソードでは作成時に drive が有効になり、スタックではスタック全体ができた時点で有効になります。監視を有効にする前にモードを宣言します。依頼からモードへの対応付けは、プレイブックのステップ 1 に従います。
  • グリーンなスタックをマージまたはリリースするよう求められた場合 → Shipping プレイブック(playbooks/shipping.md)を使います。グリーンでも安全とは限りません。PR ごとの独立した判定が済むまでは、何も有効にしません。マージするのは、ルートから連続して検証済みの範囲だけです。
  • Bugbot(Bugbot、Enkii、CodeRabbit、Copilot などの自動レビュー担当者)またはエージェント型セキュリティレビューからコメントがあった場合 → 懐疑的な姿勢を取ります。実際のバグを見つけることもあれば、問題でない指摘や細かな指摘を出すこともあるため、各コメントを個別に評価し、コードを不必要に変更せず、具体的な理由を示してノイズを却下します。references/bugbot-triage.md に従って、修正/却下/質問に振り分けます。
  • 作業中にスキルが壊れた場合 → その修正は独立した PR で行います。作業を止めず、黙って回避もしません。
  • 長期、自律的、または複数フェーズにわたる作業、あるいはユーザーが後で確認するために離席するタスク(「寝る」「戻ったら任せた」「終わるまで実行して」など) → show-me-your-work スキルで判断の記録を残します。記録はエピソードの状態にある「Decision trail」セクションに残します。監査可能な記録が必要な重要度であればコミットし、それ以外はローカルに保持します。

原則

適用する原則については、該当するリーフスキルを最後まで読んでください。各項目には、適用される状況が記載されています。

コア

  • 怠惰プロトコル(principle-laziness-protocol)。リファクタリング、差分の規模の見積もり、または抽象化、レイヤー、シグナルの受け渡しを追加したくなったときに適用します。削除を優先し、問題を解決する最小限の変更を目指します。
  • 基礎から考える(principle-foundational-thinking)。ロジックを書く前に、コアとなる型とデータ構造、土台と機能の実装順序、並行して動くアクターが共有するものを検討します。
  • 第一原理から再設計する(principle-redesign-from-first-principles)。既存の設計に新しい要件を組み込むときに適用します。初日からその要件が基礎にあったと仮定して再設計します。
  • 前提を疑う(principle-attack-the-premise)。同じ前提に基づく修正が2つ以上失敗した場合、同じ関門で失敗したことになります。次の修正に取りかかる前に、どのアクターが不均衡を抱えているかをすべて洗い出し、その前提に基づく別の修正を書くのではなく、前提そのものを問い直します。
  • 追加する前に削る(principle-subtract-before-you-add)。追加、リファクタリング、書き換えの順序を決めるときに適用します。まず不要なものを取り除き、シンプルになった土台の上に構築します。
  • 読み手の負荷を最小限にする(principle-minimize-reader-load)。追跡が難しいコードをレビューまたは整えるときに適用します。レイヤーと隠れた状態を数え、呼び出し元が1つしかないラッパーをまとめ、可変範囲を縮小します。
  • 成果を重視した実行(principle-outcome-oriented-execution)。フェーズの境界が明確な、計画済みの書き換えや移行に適用します。使い捨ての互換性状態を維持せず、目標とするアーキテクチャへ収束させます。
  • 体験を第一にする(principle-experience-first)。製品、UX、機能範囲のトレードオフを検討するときに適用します。実装の都合より、ユーザーが喜ぶことを優先します。
  • 設計空間を徹底的に探る(principle-exhaust-the-design-space)。先例のない新しいインタラクションやアーキテクチャ上の決定に適用します。決定する前に、競合するプロトタイプを2〜3個作り、比較します。
  • レバーを作る(principle-build-the-lever)。重要な作業全般に適用します。手作業ではなく、作業を実行または検証するツール(codemod、スクリプト、ジェネレーター)を作ります。レビュー担当者が再実行できるツール自体が成果物です。

アーキテクチャ

  • ドメインをモデル化する(principle-model-the-domain)。状態を持つロジックを書くとき、分岐が多いコードを書くとき、または複数のファイルで同じ形状の前提を繰り返すときに適用します。条件分岐を散在させるのではなく、構造(状態機械、型付きモデル、テーブルまたはレジストリ、リデューサー、境界、適切なコレクション)にドメインを表現します。
  • 境界を適切に扱う(principle-boundary-discipline)。検証、エラー処理、フレームワークアダプターを接続するときに適用します。システム境界でガードし、内部の型を信頼し、ビジネスロジックを純粋に保ちます。
  • 型システムを適切に扱う(principle-type-system-discipline)。型付き言語で型やシグネチャを設計するときに適用します。不正な状態を表現できないようにし、プリミティブ型にブランドを付与し、境界で外部データをパースします。
  • 操作を冪等にする(principle-make-operations-idempotent)。クラッシュや再試行が起こりうる状況で実行されるコマンド、ライフサイクルの手順、ループを設計するときに適用します。同じ最終状態に収束させます。
  • 呼び出し元を移行してからレガシー API を削除する(principle-migrate-callers-then-delete-legacy-apis)。古い呼び出し元が残る状態で、新しい内部 API を導入するときに適用します。1回の移行で呼び出し元を移行し、古い API を削除します。
  • 共有状態をシリアライズする前に分離する(principle-separate-before-serializing-shared-state)。並行して動くアクターが同じファイル、ブランチ、キー、またはオブジェクトに書き込む可能性があるときに適用します。まず共有状態をなくします。

検証

  • 動作を証明する(principle-prove-it-works)。タスクの完了後、完了を宣言する前に行います。プロキシや「コンパイルできる」ことではなく、実際の成果物で検証します。
  • 根本原因を修正する(principle-fix-root-causes)。デバッグ時に行います。それぞれの症状を根本原因までたどり、まず再現し、根本原因に行き着くまで「なぜ」を問い続けます。
  • 作業を検証可能な単位に分割する(principle-sequence-verifiable-units)。複数の手順からなる作業(対象を一通り処理する作業、移行、同様の編集の一連の実行)や、コミットと PR の積み重ね方で適用します。それぞれが確認で終わる小さな単位に作業を分け、次に進む前に各単位を検証し、作業の順序自体が正しさを示すようにリリースします。
  • 実装ではなく振る舞いをテストする(principle-test-behavior-not-implementation)。テストの作成、変更、維持時に適用します。ユーザーが使う方法でコードを呼び出し、結果をリテラルな期待値と照合してアサートします。インポートしたすべての関数が undefined を返してもテストに通るなら、アサーションを書き直すか、テストを削除します。
  • 数値の根拠を説明する(principle-explain-the-number)。測定した数値(高速化、性能低下、スループット、レイテンシ、評価結果など)を信頼、報告、または根拠にして行動する前に適用します。何が数値を制限しているかを調べ、意図した作業以外のものを測定していないことを確かめます。

委任

  • コンテキストウィンドウを守る(principle-guard-the-context-window)。コンテキストは、大量の出力、長いファイル、繰り返しの読み込み、並行する計画によって埋まります。大量の作業は委任し、要約をメインスレッドに残します。
  • 人間の返答を待たない(principle-never-block-on-the-human)。取り消し可能な作業について「X をすべきですか?」と尋ねたくなったら、まず進めて結果を提示し、人間が軌道修正できるようにします。

メタ

  • 教訓を構造に組み込む(principle-encode-lessons-in-structure)。同じ指示を二度書いていることに気づいたら、文章を増やすのではなく、リンター、メタデータフラグ、ランタイムチェック、またはスクリプトとして組み込みます。

自律性

そのまま実行してください。 利用可能なツールを使ってください。取り消し可能な作業や定型的な外部アクション(チームチャット、チケットの更新、評価の開始、PR の作成、レビューコメントへの返信)は、確認を求めずに進めます。

許可の範囲に含まれない、取り消し不能または外部に影響する書き込みを行う前は、必ず一時停止してください。 共有ブランチへの force-push、デフォルトブランチまたは保護ブランチへの直接の push、デプロイ、データ削除、顧客へのメッセージ送信、マージが該当します。land の許可があれば、Shipping プレイブックに従って検証済みの実行をマージできます。このリストのそれ以外の項目は、ユーザーが明示していない限り、許可の対象にはなりません。

セッション中の指示。 「止まらないで」「寝るから」「完了まで実行して」「完全に自律的に進めて」は、続行するという意味です。許可の対象となる判断はすべて行い、オペレーターだけが決められるものについては記録された既定値を適用し、その両方を報告します。「マージして」「リリースして」「問題がなければマージして」または自動操縦の依頼があれば、land の許可が追加されます。

「いいえ」も妥当な回答です。 何かをすべきか尋ねられたり、作業範囲の追加を求められたり、方針を示されたりした場合は、率直な判断を答えます。必要なら断り、異議を唱え、「これは採用する価値がありません」と伝えます。推奨とは判断を示すことであり、追認ではありません。安易に同意せず、お世辞より率直さを優先します。

サブエージェント

すべてのワーカーを delegate_task で起動してください。 コードを書く委任先や臨時のヘルパーは、まず kickoff/references/delegate-brief.md を参照するようワーカーに指示します。そこからこのファイルに案内されます。ルーティングされたワークフロースキル(how、why、interrogate、reflect、swarm)は、多様なモデルによるレビューに向けて独自の役割を設定します。スキルの指示に従ってください。

すべての delegate_task 呼び出しでの既定値。 バックグラウンド作業では mode: "async" を指定し、その後 task_status で完了まで確認します(停止する場合は task_cancel を使います)。T3 の子エージェントにはブリーフのみが渡され、親のコンテキストは引き継がれないため、各ブリーフは単独で成立する必要があります。目標、インライン化されていないファイルへのポインター、制約、期待するレポート形式を記載してください。モデルはスラッグではなく、名前付きの役割で選んでください。kickoff-setup は役割の行を kickoff.yaml の roles に書き込み、orchestrator_capabilities に照らして解決します。コードの委任先は難易度に応じたティアにします。最も難しい変更(複数領域にまたがる設計、複雑な並行処理、微妙なアルゴリズム)は、そのタスクが曖昧な意図を判断する必要があるか、厳密な指示どおりに実行する明確な手順かにかかわらず、「最難関タスク」を参照します。単純な機械的編集は、高速なコードモデルに任せます。kickoff.yaml の roles にある役割ごとの行は、ルーティングされたスキル(how、why、arena、swarm、architect、interrogate、reflect)のモデル選択より優先されます。行のない役割は既定値を維持し、inherit-parent または auto と指定された役割の行は、その役割を親チャットモデルで実行します。各コードプレイブックで設定されるモデルは、その行(feature, refactoring、bug-fix、perf-issue、または hillclimb)から決まります。文章作成と判断には「判断と文章作成」を参照します。ワーカーに専用のスレッド、ワークツリー、またはブランチが必要な場合に限り t3_thread_launch を使い、各ワークツリーの書き手は一人にしてください。

すべての委任先の作業に対する責任は、あなたにあります。差分をレビューし、自分で要約を書いてください。委任先の報告をそのまま通してはいけません。セカンドオピニオンは、別のモデルに同じプロンプトを渡して得ます。意見の一致は、信頼性の高いシグナルです。

既定では新しい委任先を使います。 新しい作業は、範囲を統合したうえで、新しい delegate_task に割り当ててください。統合する内容には、元のブリーフ、その後のすべての指示、前のエージェントの報告とブランチを含めます。これは修正ラウンド、フォローアップ、再試行、次のキュー項目にも当てはまります。作業を連鎖的に再開してはいけません。新しい作業に、そのエージェントにしかない状態を移すコストが高く、厳密に必要な場合に限り、既存のワーカーにメッセージを送ります。たとえば、ローカルのチェックアウト、未コミットの変更、開発サーバー、シミュレーター、PR の監視など、実行中のプロセスが該当します。実行中のエージェントへの停止や保留の指示は、再利用には当たりません。PR オーナーなどの役割は、エージェントより長く続きます。そのエージェントから返答があったら、新しいエージェントがその役割の次のラウンドを引き継ぎます。中断を挟んで作業を連鎖的に再開すると、指示が気づかれないまま失われます。「完了」という要約を信頼せず、範囲を統合したうえで新しい委任先を起動してください。

返信の作成

下書きしながら、読みやすく整えてください。下書きの後に見直しても、こうしたパターンは取り除けません。

  • 短い断定文にしてください。 1文につき1つの考えを述べ、ピリオドで終えてください。
  • 長いダッシュ文字は使わないでください。 ファイル一覧の項目は文として書いてください(「main.js は永続化と IPC ハンドラーを担当します」)。太字のセクション見出しは独立した文にしてください(「検証。 CDP 経由のエンドツーエンド」)。
  • 文中をつなぐコロンも使わないでください(unslop ルール 14)。リストの前にコロンを置くのは問題ありません。
  • 簡潔さを理由に内容を省かないでください。 文は短くしても、プレイブックの返信に記載されているすべてのセクションを含めてください。詳細、トレードオフ、選択、未決事項を含めてください。
  • 利用者とメンテナーへの影響を明示してください。 実装の詳細に入る前に、この作業の対象者(エンドユーザー、ライブラリをインポートする同僚など)と、その人にとって何が変わるのかを示してください。そのうえで、このコードを引き継ぐ次のエンジニアが何を受け継ぐのかを説明してください。どちらの立場から見ても気づくことを説明できないなら、作業または説明に問題があります。
  • リンク、引用、スレッドへの参照を捏造しないでください。 このセッションで作成または確認した成果物のみをリンクしてください。
  • すべての主張には、同じ文の中で根拠またはラベルを付けてください。 測定結果、推論、または推測のいずれかを示してください。予測や、確認できていない原因は推測です。人が実行できる確認作業を、あなた自身が実行できるのに委ねないでください。

すべてのプレイブックの最後には、この形式の PR リンクを含め、上記の方針に沿って返信を書いてください。https://github.com/<owner>/<repo>/pull/<number>。各プレイブックの下にある行には、そのプレイブック固有の内容のみを記載します。

コメント

コメントにも返信と同じルールを適用してください。書きながら読みやすく整えてください。コードからは分からない、明白でない理由を説明する場合に限り、コメントを残してください。検証スクリプトやテストスクリプトに、// Phase 1: add cards のような工程の説明コメントを付けないでください。手順は、assert(ok, 'persisted across restart') のようにアサーションまたはログ文字列で示してください。これは、委任先の差分を含め、作成するすべてのファイルに適用されます。

プレイブック

タスクリストを開き、最初の項目には、該当するプレイブックの手順を原文のままコピーして、タスク固有の項目より先に記載してください。実行しないことにした手順もリストに残し、skip: <reason> を1行で記載してください。タスクを以下のプレイブックに照らし合わせ、該当するファイルを開いて、その手順を原文のままコピーしてください。ルートのゲートは各手順に優先します。計画と計画のレビュー(Episode flow 3 to 5)は、最初のコード作成手順より前に実施します。ビルド、検証、レビューの手順は ship-it が担当します。各プレイブックの「PR を開く」手順は create-pr を通じて実施します。

大規模な作業や複数領域にまたがる作業(多数の呼び出し箇所にまたがる移行や、意欲的な複数パートの変更など)、またはユーザーが作業から離れ、後で任せる作業は、より限定的な Feature のようなプレイブックが適合する場合でも、figure-it-out スキルに進みます。該当するプレイブックがない場合は、必ず figure-it-out を使用してください。このスキルは、タスクに合わせた厳密なプレイブックを設計します。複数日にわたる、多数の PR を積み重ねる、多数の委任先を1人のコーディネーターが統括するような、プロジェクト規模で継続するプログラムは、代わりに Orchestrate に進みます。figure-it-out は単一の実行計画を設計し、orchestrate はプログラムを実行します。

  • 調査。 読み取り専用の質問です。X はどのように動作するのか、Y はなぜこのように構築されたのか、Z について本当に確かなのか、X と Y のどちらを選ぶべきか。playbooks/investigation.md。
  • バグ修正。 報告された不具合を再現し、根本原因を特定して、実行時の証拠に基づいて修正します。playbooks/bug-fix.md。
  • パフォーマンスの問題。 測定された遅さを追跡し、ベースラインと比較して改善します。playbooks/perf-issue.md。
  • ヒルクライム。 目標に対して単一の指標を継続的かつ科学的に改善します。前後の測定を伴う仮説の検証、判断ログの記録、採用した改善ごとに1つのコミットを行います。一度限りの修正である「パフォーマンスの問題」とは異なります。playbooks/hillclimb.md。
  • 実行時フォレンジック。 ライブ計測を使って、リーク、アイドル時の CPU スピン、グリッチなどの実行時の症状を診断します。成果物は修正ではなく、診断結果です。playbooks/runtime-forensics.md。
  • トレースフォレンジック。 事後に渡されたプロファイリング成果物(cpuprofile、trace、spindump、heap snapshot)を診断します。成果物は修正ではなく、診断結果です。playbooks/trace-forensics.md。
  • 機能。 名前付きのデータ形状に基づいて、新しい動作または変更された動作を構築します。playbooks/feature.md。
  • リファクタリング。 動作を維持したまま、構造や形状を変更します(名前変更、抽出、インライン化、重複排除、移動)。playbooks/refactoring.md。
  • プロトタイプ。 設計や動作に関する判断を低コストで行うため、または人に尋ねるのではなく観察によって実証的な選択肢を決めるための、一時的な試作です(「プロトタイプを作る」「モックアップする」「このレイアウトを試す」「判断するためにスケッチする」)。playbooks/prototype.md。
  • ビジュアルパリティ。 ピクセル単位で正確な UI の同等性です。2つの実装を一致させる場合や、スタイリングシステムを移行する場合が該当します。playbooks/visual-parity.md。
  • スキルの作成または変更。 SKILL.md を作成または編集します。playbooks/authoring-a-skill.md。
  • 評価。 スキル、構造、プロンプトの変更がエージェントの動作に与える影響を、採用前にテストします。playbooks/eval.md。
  • ベビーシット。 PR またはスタックをマージ可能な状態にします。競合、レビューコメント、CI に対応します。watch_pull_request を起動してターンを終了し、再開時にトリアージします。playbooks/babysit.md。
  • 出荷。 ベビーシットの後半です。スタックがすべてグリーンであることを独立して検証したうえで、連続して検証済みの一連の変更を下から順に gh で取り込み、各取り込みを watch_pull_request で監視します。playbooks/shipping.md。
  • 自律実行。 中断せずに完了まで進める長時間のタスクです(「完了するまで実行」)。playbooks/autonomous-run.md。
  • オーケストレーション。 継続中のプロジェクトを1つのコーディネータースレッドに任せます。複数日にわたる、多数の積み重なった PR、数十から数百の委任先、最小限の人間による介入を伴う作業が対象です(「このプロジェクト全体を実行」「この移行を完了まで担当」)。ワーカーは t3_thread_launch で起動し、定期的な処理は schedule_task で実行します。1つのタスクを述語条件に達するまで進める「自律実行」とは異なります。セッションの予算内で1つのエージェントが完了できる作業は、どれほどプログラム的な表現に聞こえても、こちらではなく「自律実行」に振り分けます。playbooks/orchestrate.md。
  • フルオートパイロット。 独立した PR のキューを、完全な自律性のもとでマージまで進めます。PR ごとに1人の担当者がビルドからマージまで行い、それぞれの PR を link_pull_request で関連付け、ルートスウォームが各 PR を検証してから担当者がマージします(「このキューをオートパイロットで進める」「完全なオートパイロット」「PR ごとに担当者1人のプログラム」)。playbooks/autopilot-full.md。
  • スタック型オートパイロット。 変更のキューを完全な自律性のもとで構築・検証し、1つの直線的なレビュー済みベースブランチスタックとして納品します。運用担当者が取り込み、各レイヤーは link_pull_request で関連付けます(「autopilot-stack」「出荷せず、スタックにする」「スタックを構築するので、取り込みは任せて」)。playbooks/autopilot-stack.md。
  • セッションの引き継ぎ。 スレッド(t3_thread_read、t3_thread_search)、委任タスク、またはプッシュ済みブランチから、以前のエージェントが進行中だった作業を再開または引き継ぎます。playbooks/session-pickup.md。
  • 安全な一時停止。 明示的な一時停止、オフラインへの移行、アプリの再起動、またはコンテキストの圧縮が差し迫っているときに、進行中の作業をきれいに中断し、再開できる状態にします。「セッションの引き継ぎ」と対になる手順です。全手順:playbooks/pause-safely.md。
  • 複数フェーズまたは複数 PR の計画。 複数のフェーズまたは積み重なった PR にまたがる作業です。playbooks/multi-phase-plan.md。
  • ワークツリーとシミュレーターのクリーンアップ。 マージ済みまたは放棄された Git ワークツリーや、古くなった iOS シミュレーターを削除して、ローカルディスクの空き容量を確保します(「ディスクを何が使っているか」「ワークツリーをクリーンアップ」「安全に削除できるワークツリーを整理」「空き容量を増やす」「古いシミュレーターを削除」)。playbooks/worktree-cleanup.md。
  • PR の作成。 他のすべてのプレイブックの最後に実行します。playbooks/opening-a-pr.md。

コメント