CLAUDE LABEN
OPUS48 — Claude Opus 4.8が一般提供に。コーディング・エージェント能力・推論・実務知識のいずれもOpus 4.7から底上げされましたAUTO — Claude CodeのautoモードがBedrock・Vertex AI・Foundryで既定になり、BedrockのモデルもOpus 4.8へ更新されましたGUARD — autoモードはセッション記録の改ざんをブロックし、文脈から解決できない変数へのrm -rfは事前に確認するようになりましたIDP — 管理者はIdP経由で組織全体にMCPコネクタを配布でき(Okta起点)、メンバーは初回ログインで自動的に利用開始できますTIMEOUT — --mcp-configや.mcp.jsonのサーバー単位request_timeout_msが無視され60秒で切れる不具合が修正されましたFAST — Opus 4.7のfastモードは7/24に削除予定です。speed: fastはエラーになるためOpus 4.8のfastモードへ移行しますOPUS48 — Claude Opus 4.8が一般提供に。コーディング・エージェント能力・推論・実務知識のいずれもOpus 4.7から底上げされましたAUTO — Claude CodeのautoモードがBedrock・Vertex AI・Foundryで既定になり、BedrockのモデルもOpus 4.8へ更新されましたGUARD — autoモードはセッション記録の改ざんをブロックし、文脈から解決できない変数へのrm -rfは事前に確認するようになりましたIDP — 管理者はIdP経由で組織全体にMCPコネクタを配布でき(Okta起点)、メンバーは初回ログインで自動的に利用開始できますTIMEOUT — --mcp-configや.mcp.jsonのサーバー単位request_timeout_msが無視され60秒で切れる不具合が修正されましたFAST — Opus 4.7のfastモードは7/24に削除予定です。speed: fastはエラーになるためOpus 4.8のfastモードへ移行します
記事一覧/Claude Code
Claude Code/2026-07-14中級

空の変数と rm -rf の夜 — Claude Code auto モードの事前確認に助けられた片付けの記録

複数のアプリ用リポジトリのキャッシュをまとめて掃除する作業を Claude Code に任せた夜、空になった変数のせいで危うく広範囲を削除しかけました。auto モードの rm -rf 事前確認に救われた実運用の記録と、そこから整えた自分の確認ルールを丁寧に綴ります。

Claude Code188auto mode個人開発108運用11安全設計

深夜、いくつものアプリ用リポジトリに溜まったビルドキャッシュを一掃したくて、その片付けを Claude Code に任せていました。

DerivedData、CocoaPods の Pods、React Native 側の node_modules.build。個人開発で複数のアプリを並行して抱えていると、こうした中間生成物がディスクを静かに侵食していきます。

一つずつ手で消すのは退屈な作業です。だからこそエージェントに向いている——そう思っていました。

途中、ターミナルの表示が一瞬止まりました。実行されようとしていたのは、こういう形のコマンドでした。

rm -rf "${CACHE_ROOT}"/*

CACHE_ROOT が、空でした。展開すれば rm -rf /* に化けるコマンドです。手が、少し冷たくなりました。

変数が空になっていた理由

原因はありふれたものでした。

掃除のスクリプトは、リポジトリごとにキャッシュの場所を環境変数へ入れてから回す設計にしていました。ところが対象の一つは、少し前にディレクトリ構成を変えたばかりのアプリでした。

想定していたパスが存在せず、CACHE_ROOT を組み立てる段階で値が入らなかったのです。シェルは未定義の変数を黙って空文字列として扱います。エラーも警告も出ません。

rm -rf "${CACHE_ROOT}"/* は、意図としては「このアプリのキャッシュだけを消す」でした。けれど空文字列に化けた瞬間、意味はまるで違うものになります。

個人開発では、テストもレビューも自分一人です。こういう取り違えを止めてくれる第二の目が、普段はいません。

auto モードが「文脈から解決できない変数」を見ていた

止めてくれたのは、Claude Code の auto モードでした。

2026年7月のアップデートで、auto モードはいくつかの安全側の挙動を既定に加えています。その一つが、文脈から値を解決できない変数を含む rm -rf は、実行前に確認を挟むというものです。

エージェントは CACHE_ROOT に確かな値を結び付けられませんでした。だから黙って走らせず、私に判断を返してきたのです。

ここで大切なのは、単純な「破壊的コマンドは全部止める」ではない点だと感じています。それでは確認が多すぎて、結局は読まずに承認する癖がつきます。

見ているのは「文脈から解決できるか」でした。値の裏付けが取れない削除だけを拾い上げる。この線引きは、任せる側の集中力を消耗させない配慮のように思えました。

あわせて、auto モードはセッション記録そのものの改ざんもブロックするようになっています。何を実行したかの痕跡が後から書き換えられない——放置気味に回す作業ほど、この一線は効いてきます。

Opus 4.8 に長い片付けを任せた手触り

同じ日、Claude Opus 4.8 が一般提供になりました。コーディングやエージェント的な作業、そして長い手順の一貫性が底上げされたモデルです。

今回の掃除は、リポジトリ数だけ手順が繰り返される、地味に長い仕事でした。各リポジトリでキャッシュ場所を確認し、消してよいものを見極め、消す。この往復を最後まで文脈を保ったまま進めてくれたのは、素直に助かりました。

一方で、任せきりにはしていません。

削除対象の一覧を、実行の前に必ずテキストで出してもらう。これは私が指示に加えた手順です。モデルが賢くなるほど、私の側の「確認の型」を明文化しておくことが効いてくると感じています。

削除に入る前の対象確認を、擬似コードで表すとこうなります。

# 消す前に、対象を必ず可視化してから承認する
for repo in "${REPOS[@]}"; do
  cache="${repo}/build-cache"
  # 値の裏付けが取れないパスは、そもそも削除ループに渡さない
  if [ -z "${cache}" ] || [ ! -d "${cache}" ]; then
    echo "skip: ${repo}(キャッシュ未確認)"
    continue
  fi
  echo "delete candidate: ${cache}"
done

[ -z "${cache}" ] の一行が、あの夜の空変数を弾く砦です。auto モードの事前確認と、自分のスクリプト側の防御。二重にしておくと、夜間に任せていても落ち着いていられます。

自分の運用に落とし込んだ確認ルール

今回の一件のあと、片付け系の作業をエージェントに任せるときの約束事を、いくつか言葉にしました。

場面決めたこと
削除の直前対象の絶対パス一覧を必ずテキスト出力し、目で確認してから承認する
変数の扱いパスを組む変数は空チェックを必須にし、空ならその対象をスキップする
権限rm -rf を含む手順は auto モードの事前確認を無効化しない
記録実行ログは改ざん不可の前提で残し、翌朝に何を消したか追える状態にする

特別なことは何もありません。けれど個人開発の現場では、この当たり前を仕組みとして持っておけるかどうかが、安心して手を離せるかの分かれ目になります。

AdMob の設定や App Store 向けのビルドと違って、キャッシュ掃除は成果が見えにくい地味な作業です。だからこそ雑になりやすく、事故もそこで起きます。

これから取り組むこと

次は、掃除スクリプト自体に「ドライラン」を標準で組み込もうと考えています。まず消す予定の一覧だけを出し、私が了承したらもう一度同じ手順を実行に移す。auto モードの事前確認を、自分のツール側でも二重化しておきたいのです。

賢いエージェントに任せられる範囲は、確かに広がりました。同時に、任せる側が「どこで立ち止まってほしいか」を先に決めておく責任も、静かに増している気がします。

あの夜、冷たくなった手のことは、しばらく忘れないと思います。削除の前に一呼吸置いてくれた事前確認に、素直に感謝しています。同じように夜間へ作業を委ねている方の、小さな備えの参考になれば幸いです。お読みいただき、ありがとうございました。

シェア

お読みいただきありがとうございます

Claude Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

もしこの記事がお役に立ちましたら、チップ(¥150)で応援いただけると大変励みになります。広告なしでの運営を続けるため、皆さまのご支援が大きな力になっています。

関連記事

Claude Code2026-06-14
課金変更の前夜に、headless 実行の消費を1週間だけ計測した記録
6/15 から headless Claude Code が月次クレジットへ移るのを前に、自分の無人実行が実際に何トークン消費しているかを1週間ログに残し、どのプランで足りるかを数字で判断した手順をまとめました。
Claude Code2026-07-08
自コードの Required Reason API 申告漏れを Claude Code で棚卸しする
PrivacyInfo.xcprivacy の理由コードは、依存ライブラリだけでなく自分のコードにも必要です。個人開発の壁紙アプリで申告漏れを見つけた経験から、Swift ソースを走査して該当 API と理由コードを突き合わせる Claude Code ワークフローをまとめます。
Claude Code2026-07-07
検知はできても、鳴りすぎて気づけなくなった — 個人運用のアラートを一通の『起こす価値のある報せ』に絞るまで
無音の不発を検知できるようにした途端、今度は通知が鳴りすぎて麻痺しました。事象ではなく行動を単位にアラートを畳み、ヒステリシスと静音時間、段階的エスカレーションで『起こす価値のある報せ』だけを残すまでの設計メモです。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →