Skip to content

feat: autopilot — Claude による Issue ライフサイクル自律オーケストレーター(EPIC + スパイク) #760

Description

@smalruby3-editor-bot

🆕 Smalruby 独自 — 開発運用のための自律オーケストレーター。upstream には存在しない。

Goal

複数の GitHub Issue を Claude が並行して、起票 → トリアージ(EPIC 分解 / size 重み付け)→ 実装 PR → 敵対的レビュー → 人間レビュー → DoD → マージ まで自律的に進める常駐プログラム autopilot を作る。状態は smalruby org の専用 GitHub Projects v2「Autopilot」#4 のフィールドで一元管理する(Issue のみ管理。PR は label/Draft/sticky で投影)。autopilot 自身が、この EPIC の sub-issue 群を最初の実ワークロードとして処理する(自己ブートストラップ)。

現状: スパイク完了 ✅(develop マージ済み)

A(設計確定)/ B(Project 構築)/ C(歩く骨格)を完了し develop に反映済み。成果物:

  • docs/autopilot/autonomous-contract.md — 全 autopilot-* スキルと Runner の契約(非対話 / 結果ファイル+番兵 / bot identity / 冪等 / PR 投影 / HITL OR 解除)
  • .claude/skills/autopilot-triage/ — triage スキル(分類・スコープ・size)
  • bin/autopilot-worktree — 軽量 worktree(install/build 不要・状態共有)
  • tools/autopilot/ — 歩く骨格(contract/phases/project/runner/cli + unit tests)
  • Project「Autopilot」fix: restore Smalruby assets and fix scratch-gui unit tests #4 — Status / AI Status / HITL / Size / Kind / 補助テキスト

dogfood 実証済み: OR 解除セマンティクス、実 claude triage(#767)、merge-progression、PR ラベル/Draft/sticky。

アーキテクチャ

GitHub Projects v2 #4 (状態の単一の真実, Issue のみ)
        ▲ poll/更新 (gh GraphQL, bot)   │
   autopilot daemon (常駐・単独プロセス) ─┤  並行2 / pause・resume・force-stop / HTTP 割込
        ├ Claude runner (tmux send-keys + watchdog, worktree 隔離)
        ├ Web ステータスモニタ (一覧/ログ/操作)
        └ CLI (単発検証: あるフェーズだけ試す)
  • Status(人間の Scrum 列): New Item / Backlog / Icebox / Sprint Backlog(キュー) / In Progress / Review / DoD / Close
  • AI Status(AI 専用の細フェーズ ≈ スキル): Triaging / Understanding / Decomposing / EPIC Decomposed / Implementing / Creating PR / Self-Reviewing / Addressing Comments / Running DoD
  • HITL(Yes/No): 人間の番か(set は全面一括 Yes / 解除は OR: どれか1つ No で proceed)
  • 設計の詳細な決定ログは本 issue のコメント群、および docs/autopilot/autonomous-contract.md 参照(README は docs(autopilot): docs/autopilot/README.md を集約 #768 で集約)。

EPIC 運用方針

EPIC は「作業項目」ではなく「トラッカー」。daemon は leaf(Kind=Issue)だけをキューから拾う。
本 EPIC は子がすべて done になるまで In Progress のまま継続し、子 PR の merge では完了しない
(merge-progression は leaf にのみ適用)。畳むときは「納品スライスを Done + 残りをフォローアップ EPIC」。

Sub-issues(分解結果)

GitHub の Sub-issues として紐付け済み。size 付き:

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request🤖 autopilotautopilot(AI)が管理する PR/Issue(AI処理対象)

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions