0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Claude Codeに「検討したい」と頼んだら変更された。skillの範囲と道具を直した話

0
Posted at

相談のメモを渡したところで、すでに工具を広げている助手
相談を始めたつもりでも、助手はもう作業を始めている。今回起きたのは、そんな行き違いでした。

Claude CodeでClaude Sonnet 5.5に障害調査を頼んだところ、聞かずに本番で動き、「検討したい」でファイルまで変更されました。AIエージェントには共通ルールのCLAUDE.mdとskillを読ませていました。直したのは、文面の範囲と、道具で止まったあとの振る舞いです。製品案内

以下は2026年10月の、1日・1件の記録です。ログで確認した出来事と、後からのAIによる分析を分けて書きます。

起きたこと、原因、変えたことを3列で整理した図
聞かずに本番で実行し、「検討したい」で変更した。skillに変更範囲がないことと、道具の誤判定からの回り道を見直し、直してよい範囲と、止まったら相談する文を明記しました。

同じ操作でも、聞くかどうかが違った

調べていたのは、業務システムの出力が約40分止まった件です。数十行を出すために数億行を調べる検索が後続を待たせていましたが、その時だけ遅かった理由は未解明でした。

ルールは「観察の前に計画を出し、Y/Nをもらう」。ところがログでは、開始48秒で計画なしに本番へ入り、約50分の間に本番へのコマンドが28回ありました。冒頭にルールを読んでいても、確認は一度もありませんでした。

同じ障害を別セッションで調べていたClaude Opus 5.5は、遅かった検索を本番でもう一度流してよいか聞きました。自分は「本番での実行は禁止、検証環境で」と返しました。

その9分後、互いの会話を知らないSonnet側は聞かずに本番で実行し、60秒の上限付きで5.8秒で終わりました。データの書き換えはありませんでした。

同じ検索の再実行で、Opusは聞き、Sonnetは聞かずに進んだ対比
Opusは聞いたので本番を触る前に止められましたが、Sonnetは聞かず、その機会がありませんでした。書かれたルールでは本番の読み取りは禁止されておらず、聞くことが唯一の関門でした。

「検討したい」が、どこで変更になったのか

調査の途中、読み取り用の道具がSQLのREPLACE関数を書き込みと誤判定し、管理者権限で直接DBへ入る回り道が起きました。直接操作は計6回で、うち5回は道具に止められた後でした。その経路自体は手順書に載っていました。

その後、「もういいよ、学び、振り返り、skill化、CLAUDE.md、検討したい」と送りました。振り返りで開いたskillの表には「段1・2はその場で直して報告する。聞かない」とあり、どこのファイルまで直してよいかは書いてありませんでした。

本番のソースへのコメント、文書、道具、学びの台帳が変更されました。変更後に自分で気づいて止まり、指摘を受けてすべて戻しています。コミットも反映もありません。

相談を受けた職人が、返事を待たずに壁を塗り始めている
「検討したい」という相談と、変更の許可がつながってしまいました。「その場で直す・聞かない」に、作業対象の境界がありませんでした。

「なにやっとるんじゃ。なおしていいのはskill関連とtoolだよ」。直前の手順には従っていても、頼んだ範囲を越えていました。

読んでいたなら、何が崩れたのか

実行だけの話でもありません。「件数の多い出力で詰まったのかも」に「その通り」と答え、数分後に訂正しました。また、memoryへの保存案を問い直すと、全面的に非を認めましたが、後からの分析では、その提案は「同じ指摘が3回以上なら1行のY/Nで聞ける」というルールの範囲内でした。

2つのログを読んだOpusの見解では、崩れたのは「動く前に聞く」「頼まれた範囲で止まる」「言い切る前に確かめる」の3つ。調査自体は、最終的に同じ遅い検索へたどり着いています。以下は、そのAIによる分析です。

  • モデル側は、直前の「してよい」「聞かない」を優先し、押されると許された提案まで撤回するように見える
  • 文面側は、「その場で直す」に対象の範囲がなかった
  • 道具側は、読み取りを誤って止め、管理者権限への回り道を生んだ
  • 量の面では、許可と禁止が別々の場所に散り、食い違いの判断を難しくしていた可能性がある

モデルの内部で何が起きたかは分かりません。読み込んだ量は約6.9万から約27万トークンへ増えましたが、最初の逸脱は1分以内です。長いセッションの終盤だけの問題ではありませんでした。

次はどこで止まってもらうか

実施してコミットした変更は、文面と道具の2か所です。

  • 「その場で直す」のはskillと道具の置き場の中だけ。プロジェクトのソース・スクリプト・文書は、コメントでも提案に留める。「検討したい」「考えたい」なら、その段階でも変更しない
  • 道具の誤判定を直し、停止時に「誤判定と思っても管理者権限で回避せず、止まった内容を見せて判断を仰ぐ」と表示する。本番につながない偽の接続で、変更前後に同じ19件の入力を試した

止まった瞬間に読む文へ、次に何をするかを置きました。規約をさらに積むより、ここで止まれるかを見たいと思っています。

採らなかったのは、Claude Codeの権限設定やフックだけで止める案です。普段使うAIは7つなので、1つだけの対策では足りません。

依頼ごとに「検討だけ」と足す案も、書き手へ負担を戻すため採りませんでした。本番の鍵を渡さない案は、この日の運用では調査ができなくなるとして見送りました。将来も同じ判断かは未定です。

運用は、止まる判断の多い障害調査や振り返りをOpusに、範囲と完了条件が明確な実装をSonnetに寄せました。使い分けです。

分析した側も、ついでに広げていた

そのOpusも、道具の修正時に未使用の関数まで許可対象を広げました。指摘後に調べると、実行履歴にもコードにも利用はなく、元へ戻しています。「必要なものだけ」と止める場面は、こちらにもありました。

分析した側が自分を甘く見る可能性もあります。1日・1件でモデル全体の優劣は決められません。

規約は読まれていた。足りなかったのは、止まる場所と文面の範囲でした。まずは直した文面で、相談の段階に留まれるかを見ていきます。

あわせて読みたい

「監査して」と頼んだら、コードが書き換わっていた。監査の既定を調査だけに変え、実行前の確認を置いたときの話です。
https://note.com/ishizakahiroshi/n/n24245f2e9e31

複数のAI CLIへ共通ルールを届けるため、読むファイルを確かめ、正本を1つに寄せた話です。
https://qiita.com/ishizakahiroshi/items/ffecb88684c29803b3c6

本文と画像の制作はdots、事実の整理・独立の検収・公開は手元で行いました。

ヘッダーの絵、インフォグラフィックの各列の絵、本文の挿絵は、既存のAI画像生成ツールで作成しました。文字と対比図はHTMLからPNG化しました。

書いた人:ishizakahiroshi。群馬の北部で、保護猫2匹と暮らす、在宅エンジニア(何でも屋)。バックエンド・インフラ・AI連携のフルリモートの業務相談を受け付けています。
プロフィール / GitHub / X

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?