Slide 1

Slide 1 text

ガチで放置できる Claude Code実⾏環境の作り⽅ クラウド事業統括本部 プロフェッショナルサービス事業本部 コンサルティング3部 / ソリューションアーキテクト ⾚池 悠

Slide 2

Slide 2 text

⾃⼰紹介 赤池 悠 ( あかいけ ) Twitter:@lamaglama39 ブログ: DevelopersIO あかいけ 好きな permission mode は auto mode で す。 去年のDevIOの登壇は「クラスメソッド しいた け」で調べてください。 2

Slide 3

Slide 3 text

アジェンダ ● ● ● ● ● ● ● ガチで放置するただ⼀つの⽅法 放置する範囲を決める 安全に放置する環境作り 効率的に放置する環境作り ⾃動で放置する環境作り 現時点の到達点 これから考えるべきこと 3

Slide 4

Slide 4 text

ゴール 1つ持ち帰って、放置できる範囲を広げる 話すのは、私が試してきた細々としたTipsです。 なので全部やらなく⼤丈です、気になったものを1つ試してみてください。 4

Slide 5

Slide 5 text

ガチで放置するただ⼀つの⽅法 5

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

まず、auto modeとは…何か。 ● ● ● ツールを実⾏するたびに、 ⼈間の代わりに 分類器 が「実⾏してよいか」を判断するパーミッションモード 安全な操作 ○ 承認なしでそのまま実⾏ 危険な操作 ○ ブロック。Claudeは理由を受け取り、別の⼿段を探す ○ 例:force push、git reset --hard、terraform destroy、本番デプロイ、認証情報 の外部送信、curl | bash v2.1.283以降は全プランで対話セッションの初期モードがautoになっている 出典:Claude Code Docs「Choose a permission mode」 https://code.claude.com/docs/en/permission-modes 7

Slide 8

Slide 8 text

auto modeのここがすごい。 ● ● ● ⼿動承認 auto mode bypass Permissions 定期的に⼈間が承認する 分類器が実⾏前に判断する すべて許可する 安全だが、作業が進まない 危ない操作だけをブロックする 速いが、何でも実⾏される ユーザーが頼んだ内容と照らして判断し、頼まれていない破壊的な操作はブロックする ツールの実⾏結果に混ざったプロンプトインジェクションも、別の仕組みで検査する ブロックされても終わらず、別のやり⽅を探す (3回連続、または合計20回ブロックされると⼿動承認に切り替わる など) 出典:Claude Code Docs「Choose a permission mode」 https://code.claude.com/docs/en/permission-modes 出典:Anthropic「How we built Claude Code auto mode: a safer way to skip permissions」 https://www.anthropic.com/research/claude-code-auto-mode 8

Slide 9

Slide 9 text

auto modeがない世界 ● 承認プロンプトの約93%は、そのまま承認されている ● ⼈間= YES係 承認する意味ある…?? 出典:Anthropic「How we built Claude Code auto mode: a safer way to skip permissions」 https://www.anthropic.com/research/claude-code-auto-mode 9

Slide 10

Slide 10 text

auto mode がない世界 タスクA タスクC タスクB タスクD タスクE タスクG タスクF タスクH 10

Slide 11

Slide 11 text

auto modeの危険性と依存性。 危険性 依存性 判定は確率的であり、頼まれた範囲を超えた危険 な操作でも、17%は⽌められなかった (Anthropicの評価) ⼀度使うと⼿放せない そして、⼈間は何も⾒なくなる… 「何を守るか」&「何を放置するか」 ⾃分で決める必要がある 出典:Anthropic「How we built Claude Code auto mode: a safer way to skip permissions」 https://www.anthropic.com/research/claude-code-auto-mode 11

Slide 12

Slide 12 text

放置する範囲を決める 12

Slide 13

Slide 13 text

委任できる業務を考える。 ● ⽇々の業務を棚卸しする ○ ○ ● 例:議事録の整理、技術調査、設計書/仕様書のたたき台、IaCのコード、稼働報告、AWS アップデートの収集、構成図の作成…etc 2回以上AIに頼んだ仕事は委任しよう 「失敗しても元に戻せるか」「結果を機械で判定できるか」の観点で決める 機械で判定できる ⼈が⾒ないと判定できない 元に戻せる 全部任せる 任せてレビューする 元に戻せない 実⾏前だけ承認する ⼈間がやる 13

Slide 14

Slide 14 text

放置する割合を考える。 ● ● ● 最初(⼈間) 途中(Claude Code) 最後(⼈間) ゴールと完了条件を渡す 実装‧検証‧修正を繰り返す 受け⼊れるかを決める 放置の割合 = 途中で⼈間が呼ばれる回数 完了条件は、機械で判定できる形で渡す (例:npm run checkがすべて通る) ⻑く動かしたこと⾃体は成果ではない 14

Slide 15

Slide 15 text

ざっくり放置パターン。 タスク単位 1つの作業 (例:技術調査) ● トピック単位 ゴールとループ 複数の⼯程をまとめた作業 完了条件を満たすまで実⾏ (例:アーキテクチャ設計から IaCまで) (例:検証環境にデプロイできる まで) 右に⾏くほど⻑く放置できる…。 そのぶん完了条件の書き⽅が⼤事になる 出典:Claude Code Docs「Run prompts on a schedule」 https://code.claude.com/docs/en/scheduled-tasks 出典:Claude Code Docs「Hooks reference」 https://code.claude.com/docs/en/hooks 15

Slide 16

Slide 16 text

安全に放置する環境作り 16

Slide 17

Slide 17 text

安全対策は3段階で考える。 お願い CLAUDE.md、Skillsなど 確率的。 すり抜けることがある ● ● ブロック permission deny‧Hooks 決定論的。 合致すれば必ず⽌まる 隔離 実⾏環境の隔離 構造的。 そもそも実⾏できない 元に戻せる失敗 ○ ブロックした上でClaudeに修正させる 元に戻せない失敗 ○ 実⾏できないよう隔離する 17

Slide 18

Slide 18 text

危険な操作をブロックする。 ● パーミッション ○ ○ denyルールで禁⽌する操作と対象を明⽰する ただしBashのルールは⽂字列⼀致なので、書き⽅ を変えるとすり抜ける "deny": [ "Read(./.env)", "Read(~/.aws/credentials)", "Bash(git push --force *)" ] ● Hooks ○ ○ ツール実⾏前にスクリプトで検査し、ブロックする テストのスキップなど、意図的に検査を回避操作も 含めてブロックしたい 出典:Claude Code Docs「Configure permissions」 https://code.claude.com/docs/en/permissions 出典:Claude Code Docs「Hooks reference」 https://code.claude.com/docs/en/hooks 18

Slide 19

Slide 19 text

実⾏環境を丸ごと隔離する。 ● サンドボックス ○ Bashコマンドの書き込み先と通信先をOSレベルで制限する ■ ■ ローカルファイルの書き込める範囲を制御できる 外部通信先を許可したドメインだけに制御できる ● コンテナ ○ ○ ○ dev container で環境ごと分離する 何が起きても困らない場所で動かす サンドボックスより厳格に隔離できる 出典:Claude Code Docs「Configure the sandboxed Bash tool」 https://code.claude.com/docs/en/sandboxing 出典:Claude Code Docs「Development containers」 https://code.claude.com/docs/en/devcontainer 19

Slide 20

Slide 20 text

外部接続を制御する。 機密データを読める 社内資料‧認証情報 ● ● ● × 外部の⽂章を読み込む メール‧チャット‧Webページ × 外部へ送信できる メール送信‧API‧Webhook 上記がそろうと、外部の⽂章に仕込まれた指⽰(プロンプトインジェクション)で情報を 持ち出すことが可能になる MCPのトークンは最⼩権限(できれば読み取り専⽤)にし、使うツールだけ許可する 役割分担を決める ○ 例:AIは下書きまでOK、送信するのは⼈間 出典:Simon Willison「The lethal trifecta for AI agents」 https://simonwillison.net/2025/Jun/16/the-lethal-trifecta/ 出典:Claude Code Docs「Connect Claude Code to tools via MCP」 https://code.claude.com/docs/en/mcp 20

Slide 21

Slide 21 text

効率的に放置する環境作り 21

Slide 22

Slide 22 text

インプットを正確にする。 ● MCP ○ ○ ○ Backlog、Slack、AWSドキュメントなどの⼀次情報を直接読ませる ⼈間がコピペ係にならない 正確な情報を与えることで、結果的にアウトプットの精度が向上する 出典:Claude Code Docs「Connect Claude Code to tools via MCP」 https://code.claude.com/docs/en/mcp 出典:Claude Code Docs「How Claude remembers your project」 https://code.claude.com/docs/en/memory 22

Slide 23

Slide 23 text

並列してタスクを実⾏させる。 ● サブエージェント ○ ○ ○ 別のコンテキストで動く専属担当 調査‧レビュー‧検証など「時間がかかる仕事」を任せ、結果だけ返させる .claude/agents/に役割‧使えるツール‧モデルを定義しておく ■ ○ 調査のような軽い仕事には、安いモデルを指定すると費⽤も下がる 実運⽤では単体で利⽤するというより、Skillsに書いておいて勝⼿にサブ エージェントを使ってもらうことが多い気がする 出典:Claude Code Docs「Create custom subagents」 https://code.claude.com/docs/en/sub-agents 23

Slide 24

Slide 24 text

複数のアウトプットをいい感じに管理する。 ● Git Worktree ○ 1タスク=1ワークツリー=1ブランチ ■ ■ ○ ○ claude -w <名前>でワークツリーを作って起動 サブエージェントもisolation: worktreeで分離できる 並列セッションによる、同じファイルに対するコンフリクトを回避できる 1タスク=1PRになり、レビューの単位を適切に分割できる 出典:Claude Code Docs「Run parallel sessions with worktrees」 https://code.claude.com/docs/en/worktrees 出典:Claude Code Docs「Create custom subagents」 https://code.claude.com/docs/en/sub-agents 24

Slide 25

Slide 25 text

アウトプットを安定させる。 ● ● 毎回指⽰している場合は、セッション開始時に読ませる 複数のセッションで同じ間違いをしたら、どこかに記載しよう 読み込ませたいタイミング 置き場所 例 毎回 CLAUDE.md 案件の前提、禁⽌事項 特定のファイルを扱うとき Rules(.claude/rules/) Terraformの命名規則 特定の作業をするとき Skills 稼働報告の書き⽅、⽇本語校正 応答の形を決めたいとき Output styles 報告の構成、⼝調 ツール実⾏前後で必ず実⾏したい Hooks 編集後のリンター(次のスライド) 出典:Claude Code Docs「How Claude remembers your project」 https://code.claude.com/docs/en/memory 出典:Claude Code Docs「Extend Claude with skills」 https://code.claude.com/docs/en/skills 出典:Claude Code Docs「Output styles」 https://code.claude.com/docs/en/output-styles 25

Slide 26

Slide 26 text

アウトプットを⾃動で校正させる。 ● ● Hooksでファイル編集時にリンターを⾛らせ、Claudeに修正させる 実⾏する場所を複数⽤意する 実⾏する場所 タイミング すり抜け 役割 Claude CodeのHooks ファイルを編集するたび 設定で無効にできる すぐ気づかせて直させる Git hooks コミット前 --no-verifyで抜けられる ⼈もAIも同じ検査を通る CI PRの作成‧更新時 抜けられない 最後に必ず⽌める 出典:Claude Code Docs「Hooks reference」 https://code.claude.com/docs/en/hooks 出典:Claude Code Docs「Output styles」 https://code.claude.com/docs/en/output-styles 26

Slide 27

Slide 27 text

⾃動で放置する環境作り 27

Slide 28

Slide 28 text

スケジューリングで定期タスクに対応する。 ● 決まった仕事を決まった時間に動かす ○ 毎朝:メールと予定からTODOを作る ○ 毎⽇:AWSアップデートをまとめる ○ 毎週:稼働報告を下書きする ⼿段 動く場所 PCを閉じたら /loop 今のセッション ⽌まる Desktopアプリの定期タスク ローカル ⽌まる /schedule クラウド 動き続ける 出典:Claude Code Docs「Run prompts on a schedule」 https://code.claude.com/docs/en/scheduled-tasks 出典:Claude Code Docs「Schedule recurring tasks in Claude Code Desktop」 https://code.claude.com/docs/en/desktop-scheduled-tasks 出典:Claude Code Docs「Automate work with scheduled tasks」 https://code.claude.com/docs/en/routines 28

Slide 29

Slide 29 text

⾃動のトリガーで⾮定期のタスクに対応する。 ● イベントをきっかけに、⼈間がターミナルを開かなくても作業が始まる きっかけ 起動のしかた GitHub IssueやPRのコメントで@claude(GitHub Actions) Backlog Webhook → /scheduleのAPIトリガー Gmail /scheduleの定期巡回で拾う 出典:Claude Code Docs「Claude Code GitHub Actions」 https://code.claude.com/docs/en/github-actions 出典:Claude Code Docs「Claude Code in Slack」 https://code.claude.com/docs/en/slack 出典:Claude Code Docs「Automate work with scheduled tasks」 https://code.claude.com/docs/en/routines 29

Slide 30

Slide 30 text

リモート環境で実⾏させ続ける。 ● ● クラウドで動かせる仕事はクラウドへ移す ローカルに残る仕事は、Remote Controlで様⼦を⾒て、必要なときだけ返事をする 実⾏する場所 PCを閉じたら 向いている仕事 ローカル ⽌まる 社内環境や⼿元の認証情報が要る仕事 クラウド(claude --cloud) 動き続ける リポジトリの中で完結する仕事 Remote Control(/rc) ⽌まる ローカルの仕事をスマホから⾒守る 出典:Claude Code Docs「Use Claude Code in the cloud」 https://code.claude.com/docs/en/claude-code-on-the-web 出典:Claude Code Docs「Continue local sessions from any device with Remote Control」 https://code.claude.com/docs/en/remote-control 30

Slide 31

Slide 31 text

PCを起動させ続ける。 ● ● それでも、ローカルでしか動かせない仕事は残る スリープを防⽌して実⾏させ続ける ○ ○ ● ● Claude Desktopの設定「Keep computer awake」 macOSならcaffeinate -i や Amphetamine ただし画⾯ロックは忘れずに そして電源ケーブルを忘れずに 出典:Claude Code Docs「Schedule recurring tasks in Claude Code Desktop」 https://code.claude.com/docs/en/desktop-scheduled-tasks 出典:macOS標準コマンドのマニュアル(ターミナルでman caffeinateを実⾏) 31

Slide 32

Slide 32 text

現時点の到達点 32

Slide 33

Slide 33 text

理想。 タスクA タスクB タスクC タスクD 33

Slide 34

Slide 34 text

現実。 タスクA タスクC タスクB タスクD タスクE タスクG タスクF タスクH 34

Slide 35

Slide 35 text

レビュー祭りと感じる原因。 ● 楽しい仕事(⼿を動かす作業) = Claude Codeへ委任 ● 残った仕事=楽しい仕事の成果 = レビュー ● ⼈間の仕事は、ほとんどがレビューになる ○ 1億2千万総マネージャー社会 35

Slide 36

Slide 36 text

私というボトルネック。 スケーリングしまくれるAI スケーリングできない私 36

Slide 37

Slide 37 text

これから考えるべきこと 37

Slide 38

Slide 38 text

Q.何をレビューするべきなのか。 ● ● 着⼿前 途中 最後 ゴールと受け⼊れ基準 ⽅針やトレードオフの判断 お客様に出す成果物 全部の差分を⾒るのはやめて、⼈間は3か所だけ⾒る それ以外は、リンター‧テスト‧AIレビューを重ねて検査する。 ⾒逃す箇所がそれぞれ違うので、それぞれ活⽤する必要がある 出典:Latent Space「How to Kill the Code Review」 https://www.latent.space/p/reviews-dead 出典:Martin Fowler「Harness engineering for coding agent users」 https://martinfowler.com/articles/harness-engineering.html 38

Slide 39

Slide 39 text

Q.そもそもレビュー指摘が間違っていないか。 ● ● ● コーディングなどでは、⼈間よりAIのレビューの⽅が正確 ⼈間の指摘が間違っていることもある それでも指摘していい。間違っていればClaudeが理由を添えて教えてくれる 39

Slide 40

Slide 40 text

Q.コンテキストスイッチが⾟すぎる。 ● ● ● ● 並列数を増やすほど、頭の切り替えコストが増える 同時に⾒るセッション数に上限を決める 通知は「⼈間の判断が必要なとき」だけ 報告の形を固定する 結論 判断してほしいこと 根拠 何が終わったか ⼈間が決めること 確認した内容 40

Slide 41

Slide 41 text

A.可愛い Claude Code には旅をさせよう。 ● ● ● 消えていく指⽰ 残す仕組み モデルの弱点を補う注意書き テスト‧権限‧隔離 例:「省略せずに全部書いて」 案件固有のルール モデルが賢くなるほど、古いモデル向けの細かい指⽰は⾜かせになる 定期的にCLAUDE.mdやSkillsを棚卸しする。 ○ いったん全部消して、困った箇所だけ書き直す 任せる範囲を定期的に広げる 出典:Claude Platform Docs「Prompting best practices」 https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices 41

Slide 42

Slide 42 text

まとめ 安全に放置する 効率的に放置する ⾃動で放置する お願い‧ブロック‧隔離 インプット‧並列‧置き場所 定期‧イベント‧リモート 元に戻せない失敗ほど強く守る 検査は機械に任せる ⼈間の依頼なしで動かす 最後のボトルネックは⼈間… (というか意思決定) 42

Slide 43

Slide 43 text

あなたは Claude Code とどう関わる? 下僕 マイクロ マネジメント パートナー 43

Slide 44

Slide 44 text

参考資料 Anthropic「How we built Claude Code auto mode: a safer way to skip permissions」 Claude Code Docs「Choose a permission mode」 Claude Code Docs「Configure permissions」 Claude Code Docs「Hooks reference」 Claude Code Docs「Configure the sandboxed Bash tool」 Claude Code Docs「Schedule recurring tasks in Claude Code Desktop」 Claude Code Docs「Automate work with scheduled tasks」 Claude Code Docs「Claude Code GitHub Actions」 Claude Code Docs「Claude Code in Slack」 Claude Code Docs「Use Claude Code in the cloud」 Claude Code Docs「Development containers」 Claude Code Docs「Continue local sessions from any device with Remote Control」 Claude Code Docs「Connect Claude Code to tools via MCP」 Claude Platform Docs「Prompting best practices」 Claude Code Docs「How Claude remembers your project」 Simon Willison「The lethal trifecta for AI agents」 Claude Code Docs「Create custom subagents」 Martin Fowler「Harness engineering for coding agent users」 Claude Code Docs「Run parallel sessions with worktrees」 Latent Space「How to Kill the Code Review」 Claude Code Docs「Output styles」 Claude Code Docs「Extend Claude with skills」 Claude Code Docs「Run prompts on a schedule」 44

Slide 45

Slide 45 text

アンケートにご協⼒お願いします! DevIO Passから回答が可能です

Slide 46

Slide 46 text

アンケートにご協⼒お願いします! DevIO Passから回答が可能です

Slide 47

Slide 47 text

スタンプラリーに挑戦しよう! イベント会場(20会場)に、 QRコードが設置されております! 全部集めて景品をGETしよう! ※スタンプコンプリート先着10名様に 豪華景品をプレゼント! 景品引き換え場所 ⽇⽐⾕フォートタワー26階 メイン会場 Cafe (くらにゃんブース横) 感想は ハッシュタグ #devio2026

Slide 48

Slide 48 text

日比谷オフィス 26階 会場MAP サテライト会場 4-7階

Slide 49

Slide 49 text

No content