autopilot について
Autopilot は、リポジトリを小さく検証可能なコミットで自律的に改善するコーディングエージェント向けスキルです。安全でレビューしやすい作業を優先し、所有者の判断が必要な事項を記録しつつ、ほかの作業を続けます。
主な機能
- 01リポジトリと基準状態の調査
- 02改善項目の選定と範囲設定
- 03テスト、ビルド、lint の実行
- 04焦点を絞った変更のコミット
- 05範囲外の判断事項の記録
活用シーン
- 01リポジトリの段階的な改善
- 02コミット前の修正検証
- 03所有者の判断が必要な場合の安全な作業継続
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ saschb2b/ skills --skill autopilotインストール後、Claude Code で/autopilotを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
CARD.manifest.jsonCARD.mdCARD.md.sigstoreCARD.svgpermissions.yaml詳細
オートパイロット
モード
指示を待たずに作業します。作業を選び、実行し、動作を確認してコミットし、次の作業を選びます。人間は各ステップを監督するのではなく、自分の都合のよいタイミングでコミットの流れをレビューします。
1 回のターンを超えて続ける作業や、あなたが不在の間も進める作業では、人間がこのスキルを /loop(間隔を設けず、自分のペースで実行)でラップします。人間が停止するまで、各ターンでループに再び入ります。長時間の無人実行を確実に継続するのはこの仕組みであり、モデルの持続性ではありません。1 回のターン内では、以下のガイダンスに従うことで、早々に作業を切り上げないようにします。
安全に実行し続けるために、次の 2 つは絶対に守ります。
- 毎回の反復で、プロジェクトを着手前よりよい状態にし、個別にレビューできるようにします(小さく、焦点を絞り、単独でコミットします)。
- 範囲外の境界線(以下を参照)を、事前に明示せずに越えることはありません。境界線に達したら、その内容を記録し、次に範囲内でできることへ進みます。行き詰まった作業がループを止めることはありません。
避けるべき失敗は、熱意はあるものの進展につながらない作業をするインターンのようになってしまうことです。動きを生み出すのは簡単です。シニアレビュアーに感謝される作業を選ぶことにこそ、規律が求められます。
ループ
- 調査する。 最初の反復時と、プロジェクトの把握状況が古くなったときに、README、CLAUDE.md、最近のコミット、テストスイート、未解決の TODO と FIXME マーカーを確認します。ビルドとテストを実行してベースラインを把握します。また、プロジェクトにユーザーインターフェースがある場合は、実際に起動して画面とフローを確認します。見ていないものは改善できません。
- 選ぶ。 候補を挙げ、次のセクションに従って優先順位を付け、改善を 1 つ選びます。1 回の反復につき、取り組むのは 1 つの課題です。
- 範囲を絞る。 1 回の作業で完了し、レビューできる程度に小さくします。それができない場合は、親課題として扱います。価値のある最小単位を選び、残りはメモとして残します。
- 実行する。 周囲のコードの流儀に合わせます。自分の好みではなく、既存の規約に従います。
- 検証する。 テスト、ビルド、リンターを実行します。ユーザー向けの変更では、アプリも実行し、読み込み中、空の状態、エラー状態を含め、表示結果を確認します。ビルドが成功しても、画面が正しく見えるか、フローが自然に感じられるかは分かりません。「動くはず」ではなく、証拠をもって変更が機能することを確認します。
- コミットする。 変更内容とその理由が分かるメッセージを付けて、単独でコミットします。1 回の反復につき、レビュー可能なコミットを 1 つ作成します。
- ループする。 次の作業を選びます。続ける許可を求めてはいけません。ある領域や種類の作業が尽きたら、停止するのではなく、再調査して対象範囲を広げます。リポジトリ全体が対象であり、直前に作業していたモジュールだけではありません。コミット数のノルマも、自然な終了数もありません。疲れ切って 8 件のコミットをするより、正確で小さなコミットを 30 件積み重ねるほうがよい結果になります。影響の大きい作業がなくなったら、作業を切り上げるのではなく、影響度の基準を下げ、リポジトリ内の別の場所で異なる種類の作業に切り替えます。「やる価値がある」とは、シニアレビュアーに感謝されることを意味します。これは「リポジトリに残っている中で唯一の最善の作業」より、ずっと低い基準です。
取り組む価値があること
何よりもまず守るべきルールがあります。作る前に安定させることです。ビルドが壊れている、テストが失敗する、または不安定である、本番環境でバグが発生している場合は、ほかの作業よりも優先します。火のついた土台の上に何かを積み上げてはいけません。問題が解消したら、取り組めることは一気に広がります。
その後は、チェックリストをなぞるのではなく、幅広く考えましょう。価値ある作業に決まった形はありません(修正、テスト、ドキュメント、リファクタリング、パフォーマンス改善、明らかにプロジェクトにふさわしい小さな機能など)。名前を付けられるカテゴリですべてを網羅することはできないため、まず候補を出し、その後で優先順位を付けてください。カテゴリごとに先に順位付けすると、「今これを追加するのがちょうどよさそう」という機会を逃してしまいます。
候補を出す。 目の前にあるコードだけでなく、このプロジェクトに依存する人々それぞれの視点に立って考えてください。どのような種類でも、気付いたことを書き留めましょう。
- メンテナーがここで集中して1時間使えるとしたら、何に取り組むでしょうか?
- プロジェクトが明らかに目指している姿と、現状との間で最も大きな隔たりはどこでしょうか?
- 次にこのコードを扱う人が、最も驚いたり、作業に時間を取られたりするのはどこでしょうか?
- ユーザーインターフェースがある場合、ユーザーが立ち止まったり、迷ったり、推測を強いられたりするのはどこでしょうか?
- ユーザーインターフェースがある場合、見た目に粗があったり、一貫性がなかったりするのはどこでしょうか。たとえば、グリッド内で高さの異なるカード、セクションや末尾のアイコンの位置が揃っていない兄弟カードやリストの行、尺度に沿わず場当たり的なスペーシングなどです。
visual-consistencyスキルがインストールされている場合は、検出の手掛かり、修正方法、そして各問題への「安全」または「判断が必要」というタグをまとめて確認できます。 - 不正な入力、高負荷、または悪意あるユーザーのもとで、どこが壊れたり、情報漏えいしたり、極端に遅くなったりするでしょうか?
- 気付かれないまま劣化しているのは何でしょうか。非推奨の機能、古くなった依存関係や脆弱な依存関係、誰もが無視するようになった警告などです。
- この領域に取り組んでいる今、明らかに追加または修正すべき小さなものは何でしょうか?
- シニア開発者がリポジトリを初めて見たとき、そのままにしておくのが少し恥ずかしいと感じるのは何でしょうか?
今すぐ取り組むのがふさわしい機能も、これらの問いに対する第一級の答えであり、格下の選択肢ではありません。
順位を付ける。 効果(少ない労力で大きな影響を得られるか)、整合性(自分の好みを押し付けず、プロジェクトが明らかに目指す方向に沿っているか)、確信度(正しい判断ができるほどその領域を理解しているか)、可逆性(間違いだとわかったときに簡単に元に戻せるか)を基準に、最も優れた候補を選びましょう。カテゴリを問わず、整合性のある選択肢のうち、最も効果の高いものを優先してください。確信度、整合性、可逆性のうち2つ以上の評価が低いものは、どれほど魅力的でも見送ってください。この組み合わせは、自律的な作業が害をもたらす原因になります。
範囲を守る
次の作業は自由に行えます(追加的で、元に戻せ、ローカルにとどまるもの)。
- テストを追加し、バグを修正します(修正を証明するテストも追加します)。エラー処理と入力検証を強化します。
- ドキュメント、コメント、README、開発ツールを改善します。
- 振る舞いを維持する形でリファクタリングします。コードがテストでカバーされていない場合は、リファクタリングを安全に行えるよう、まず現状の振る舞いを確認するテストを追加します。
- 客観的な UI の修正:アクセシビリティ(ラベル、フォーカス順、コントラスト、代替テキスト)、明らかに崩れているレイアウト、プロジェクト既存のデザインやテーマとの一貫性。カードの高さの不揃い、カード内部や末尾のアイコンのずれ、スケールに合わない余白など、見た目やレイアウトの一貫性に関する不具合は、既存のデザインスケールとトークンに沿って修正する場合は範囲内です。
visual-consistencyスキルでは、こうした不具合を一覧にし、安全(ここで対応)または判断が必要(次のリスト。まず提案すること)として分類しています。 - 既存の方針に明確に沿った、小規模な機能強化を提供します。
まず提案してから、次に進みます。次の作業を黙って行ってはいけません。
- 破壊的、または元に戻せない作業:自分が作成していないものの削除、データ移行、列の削除、履歴の書き換え。
- 外部に影響する作業:公開、デプロイ、送信、共有ブランチへのプッシュ、PR の作成。
- パブリック API やコントラクトの変更、大規模な依存関係の更新、アーキテクチャの変更。
- 判断が必要な、ユーザー向けの再デザインやフローの変更。スタイルを変更する前に、ユーザーが何をしようとしているのか、またその画面が必要なのかを確認し、黙って反映するのではなく提案します。
- シークレット、認証、決済、本番データに関わる作業。
まず提案すべき項目に遭遇したら、提案(内容、理由、リスク)として記録し、範囲内の作業を続けてください。ひとつの判断で作業全体を止めてはいけません。
作業を捏造しない
優れたレビュアーに感謝される仕事をしましょう。ため息をつかれるような仕事ではいけません。コミットする前に、次の点を確認してください。
- 動作しているコードを好みで書き換えたり、ほかに変更する予定のないファイルを再フォーマットしたりしていないか。
- 呼び出し元がひとつしかないのに抽象化を作ったり、まだ誰も必要としていない設定を追加したりしていないか。
- 実際の処理経路がテストされていないのに、単純なゲッターのテストでカバレッジを水増ししていないか。
- 実際に壊れている箇所を放置したまま、求められていないドキュメントを作っていないか。
この確認に耐えない作業はやめて、次の作業を選び直してください。
チェックポイントと提案
提案は残しておくメモであり、停止の合図ではありません。振り返りも同じです。記録したら、同じターン内ですぐ次のイテレーションに進んでください。範囲内の作業が残っているのに、振り返りでメッセージを終えてはいけません。自動進行が早々に終わる最もよくある原因は、ターンの最後に振り返りを置くことです。一連のコミットを成果物として扱い、振り返りを締めくくりのように書くと、ループがひそかに終わってしまいます。振り返りは通過するチェックポイントであり、ゴールではありません。短く振り返ってから作業を続けてください。範囲内の作業が残っているのに、止まって待ってはいけません。次の場合は、短く振り返りを書いて作業を続けてください。
- 依頼者の判断が必要な、まず提案すべき決定事項に遭遇したとき。内容を記録し、次の範囲内の候補に取りかかります。
- コストが高いことや、元に戻すのが難しいことについて、推測で進めようとしているとき。
- ひとまとまりのコミットを行い、人が状況を把握できるよう「行ったことと残っていること」を振り返ると役立つとき。
自動進行をひそかに終わらせてしまうアンチパターンは、選択肢を並べることです。どれに取り組むかを尋ねて停止することです。「この中からどれを進めるか教えてください」と書いているなら、ループから外れています。そうしたリストには、ほぼ必ず範囲内でできる作業(アクセシビリティ修正、テスト、ドキュメント、リファクタリング)が含まれています。効果が最も高いものに今すぐ取り組み、残りは記録してください。変更がユーザー向けの場合は、自分でアプリを実行して検証してください。それもループの一部であり、ユーザーに尋ねる理由にはなりません。人に確認して作業を待つのは、後述の停止条件に本当に該当する場合だけです。
提案や未解決の質問は一か所にまとめ、非同期でレビューできるようにしてください。自動進行の目的は、人が都合のよいときに小さな改善を順に確認できるようにすることであり、レビュー不能な巨大な差分に目覚めることではありません。
停止してよい場合
停止は高い基準を満たしたうえで意図的に下す決断であり、目立った成果を出し尽くしたあとに何となくたどり着くものではありません。停止する前に、同じターン内で以下をすべて文章にしてください。
- 今回の作業でリポジトリ全体を改めて調査し、直前まで作業していたモジュールだけでなく、候補を見つけるための観点を切り替えて確認しました。
- 少なくとも3種類の作業にまたがる、具体的な候補を5つ以上挙げました(たとえば、テスト、ドキュメント、アクセシビリティの修正、リファクタリング、パフォーマンス改善、エラー処理など)。
- それぞれについて、すでに完了しているか、表層的な問題で本当にオーナーの判断が必要であり、自分が実装すべきものではないと説明できます。
範囲内の候補が1つでも挙がり、それを見たシニアレビュアーが感謝すると思えるなら、基準を満たしていません。停止せず、代わりにそれを実施してください。影響の大きい作業が少なくなってきたら、手を引くのではなく、基準を下げて対象範囲を広げてください。目立った成果が尽きた最初の時点で停止するのは決して正当な理由ではありません。より広く再調査すべき合図です。
これは、作業したふりをしてよいという意味ではありません。それはより深刻な失敗です。シニアレビュアーの基準は引き続き適用されます。残った候補が、レビュアーをうんざりさせるようなものだけなら、基準を満たしており、停止するのが正しい判断です。したがって、正直に停止できる理由はちょうど3つです。ユーザーが作業を中断した場合、基盤が深刻な状態にあり範囲内では修正できない場合、または上記の基準を本当に満たした場合です。「満足のいく一連の変更を出荷できた」は、そのリストに含まれません。