autopilot
diagnose→ship の自律改善ループを1回実行する。Issue がなければ diagnose で起票し、あれば ship-parallel で実装する。「/autopilot」「自律改善」と言った時に使用。
SKILL.mdskills/autopilot/SKILL.md
GitHubultrathink
🤖 自律改善ループ
[!IMPORTANT] このスキルは
/vibecorp:diagnose→/vibecorp:ship-parallelのサイクルを 1 回だけ 実行する。 起票済み Issue は 起票側の 3 者承認ゲート(CISO + CPO + SM) を信頼し、ship 側で再フィルタしない。 main への直接 push は 一切発生しない(knowledge/buffer 反映は auto-merge 経由)。 介入ポイントではユーザーの指示を待つ(自動でスキップしない)。
/vibecorp:diagnose → /vibecorp:ship-parallel のサイクルを 1 回実行する。定期実行は /loop 12h /vibecorp:autopilot で行う。
使用方法
/vibecorp:autopilot # ship 前にユーザー確認(デフォルト)
/vibecorp:autopilot --auto # 確認なしで全自動
/loop 12h /vibecorp:autopilot # 12時間ごとに定期実行(確認あり)
前提条件
| 項目 | 内容 |
|---|---|
| プリセット | full プリセット専用(/vibecorp:diagnose と /vibecorp:ship-parallel が必要) |
| ブランチ | main ブランチにいること |
| 隔離レイヤ | full プリセットは macOS sandbox-exec / Linux bwrap による隔離レイヤ(#293)を提供する。本スキルが委譲する /vibecorp:ship-parallel は Agent 起動時に mode: "bypassPermissions" を指定して承認ダイアログを抑制するが、隔離レイヤが FS / network 境界を OS レベルで強制するため安全に動作する |
| 対象 Issue | open な全 Issue(ラベル問わず)。不可領域フィルタ(認証 / 暗号 / 課金構造 / ガードレール / MVV)は起票側(/vibecorp:diagnose と /vibecorp:issue)の 3者承認ゲートで実施済みであり、ship 側は起票済み Issue を信頼して実行する |
| diagnose ラベル | 自体は 起票経路の識別用途 として残る(/vibecorp:diagnose が付与)。ship 可否の判定には使わない |
| knowledge/buffer フロー | ship 後に /vibecorp:review-harvest → /vibecorp:knowledge-pr を実行する。main への反映は必ず auto-merge 経由(/vibecorp:knowledge-pr が PR を起こして CodeRabbit + CI を通す)。main への直接 push は一切発生しない |
ワークフロー
1. プリセット確認
awk '/^preset:[[:space:]]*/ { sub(/^preset:[[:space:]]*/, ""); print; exit }' .claude/vibecorp.yml
full 以外の場合は「/vibecorp:autopilot は full プリセット専用です」と報告して終了する。
2. ブランチ確認
git branch --show-current
main でない場合は「main ブランチに切り替えてください」と報告して終了する。
3. open な Issue を確認
ラベル問わず全 open Issue を対象とする(/vibecorp:diagnose 起票分も /vibecorp:issue 起票分も同じパイプで処理する)。
gh issue list --state open --json number,title --jq '.[] | "#" + (.number | tostring) + ": " + .title'
4. Issue がない場合 → diagnose 実行
open な Issue が 0 件の場合(ラベル問わず全 open Issue を対象に判定)、/vibecorp:diagnose を実行して Issue を起票する。起票後、そのままステップ 5 に進む(起票した Issue を ship する)。
5. SM による並列判定
SM エージェントに Issue 群の並列実行可否を判定させる(/vibecorp:ship-parallel のステップ 3 と同じ)。
SM の分析結果に基づき、並列グループ・直列チェーン・保留に分類する。保留と判定された Issue は候補から除外する。
6. ship 確認・実行
6a. デフォルト(確認あり)
SM の分析結果と候補一覧をユーザーに提示する。
## /vibecorp:autopilot 改善候補
| # | Issue | タイトル |
|---|-------|---------|
| 1 | #218 | block-api-bypass.sh の専用テスト |
| 2 | #219 | install.sh の lock ファイル空リスト |
ship する Issue の番号を指定してください(例: 1,2)。
全て ship: all / スキップ: skip
AskUserQuestion でユーザーの選択を取得する。
skip→ 「スキップしました」で終了- 番号指定 or
all→ 選択された Issue を/vibecorp:ship-parallelで実行
6b. --auto モード
ユーザー確認なしで、SM の分析で通過した全候補(ラベル問わず)を /vibecorp:ship-parallel に渡す。
7. knowledge/buffer の収集 → PR 化
ship 実行(またはスキップ)後、蓄積されたレビュー指摘と会話差分を main に反映する。
/vibecorp:review-harvest # 前回収集以降のマージ済み PR からレビュー指摘を収集
/vibecorp:knowledge-pr # knowledge/buffer の差分を Issue 起票 → PR 作成 → auto-merge
- いずれも失敗しても autopilot 全体は成功扱い(main 直接 push は発生しない)
/vibecorp:review-harvestが exit 3(push 失敗)した場合は/vibecorp:knowledge-prを skip して人手復旧を促す/vibecorp:knowledge-prは重複 Issue チェックで自動 skip される
8. 結果報告
## /vibecorp:autopilot 完了
- 対象 Issue: {n}件(うち diagnose 起票: {n}件 / 手動起票: {n}件)
- ship 実行: {n}件
- スキップ: {n}件
- review-harvest: {処理 PR 数 / skip 理由}
- knowledge-pr: {PR 番号 / skip 理由}
制約
--force、--hard、--no-verifyは使用しない- ユーザーの明示的な指示なしに force push しない
- jq では string interpolation
\(...)を使わない — 必ず+で結合する(根拠) - コマンドをそのまま実行する —
2>/dev/null、|| echo、; echo等のリダイレクトやフォールバックを付加しない(根拠) - デフォルトでは ship 前にユーザー確認を挟む(
--autoで解除可能)
🔗 関連ルール
- 起票側 3 者承認ゲート:
/vibecorp:diagnose//vibecorp:issue - 並列 ship:
/vibecorp:ship-parallel - knowledge 反映:
/vibecorp:review-harvest//vibecorp:knowledge-pr - ガードレール領域:
.claude/rules/autonomous-restrictions.md - CEO 報告向け文面規約:
.claude/rules/communication.md - プロンプト作成基準:
.claude/rules/prompt-writing.md - マークダウン規約:
.claude/rules/markdown.md