Skip to content

fix(autopilot): runner が .claude/ 編集の権限プロンプトで stall する (非対話化) #820

Description

@smalruby3-editor-bot

概要

autopilot の implement / review フェーズが、.claude/ 配下のファイル編集時に
Claude Code の権限プロンプトで stall する。--permission-mode acceptEdits でも
.claude/**(例: .claude/rules/scratch-gui/smalruby-prettier-files.md、各 smalruby-markers.md
の編集は「自分の設定の編集」クラスとして自動承認されず、対話プロンプトが出るため。

CLAUDE.md は 新規 Smalruby 固有ファイル追加時に prettier ホワイトリスト
(.claude/rules/.../smalruby-prettier-files.md) とマーカー一覧の更新を必須
としているので、
新ファイルを伴う実装は ほぼ必ずこのプロンプトに当たる

再現

#631 / #633 の implement 実行中、両方が次のプロンプトで停止した:

Do you want to make this edit to smalruby-prettier-files.md?
❯ 1. Yes
  2. Yes, and allow Claude to edit its own settings for this session
  3. No

tmux pane で option 2 を手動選択するとアンブロックされ、以降同一ランでは再プロンプトされず完走した。

影響

対処案

Runner が起動する claude を 完全非対話にする(コントラクト §1「権限プロンプトを前提にしない」の徹底)。

候補:

  1. --dangerously-skip-permissions を付与DEFAULT_CLAUDE_COMMAND / runner の launch)。
    autopilot は隔離 worktree 内で bot 権限の事前承認作業を行うので、既に Bash/Edit が
    allowlist 済み = 実質フル権限。残る対話ガードを外すだけでリスク増は小さい。
    • 要確認: root 実行 + --dangerously-skip-permissions は Claude Code が拒否する版がある
      IS_SANDBOX 等の回避要否)。devcontainer 内 root での挙動を検証する。
  2. project 内 .claude/settings(または launch 時の設定)で .claude/** の Edit を allow に
    する。ただし settings はホスト read-only mount のため worktree 側で完結する方法に限る。
  3. implement/review スキルが .claude/ を直接編集せず、prettier/マーカー更新を別ステップ化。
    → CLAUDE.md の「同一 PR で更新」方針に反するため非推奨。

→ 案1 が本命。検証の上で tools/autopilot/src/phases.jsDEFAULT_CLAUDE_COMMAND を更新し、
daemon を再起動する。

DoD

  • implement/review が .claude/ 編集で stall しない(新ファイルを伴う実装が無人で完走)
  • root + 非対話フラグの相性を検証(拒否されないこと)
  • 既存パイプライン(triage→implement→review→Ready)が回帰なく動く

Metadata

Metadata

Assignees

No one assigned

    Labels

    🤖 autopilotautopilot が処理対象にした Issue/PR(daemon が付与)

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    Status
    Close

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions