ルールを書かせた3分後に、Claude Code はそれを破った

自宅のサーバーに小さな自作アプリを載せる作業で、Claude Code を30時間ほど使い続けた。 背後のモデルは Claude Sonnet 5。以下、道具のことは「Claude Code」、出力の癖のことは 「Sonnet 5」と書き分ける。 その30時間、Sonnet 5 の出力を一つずつ検算していた。以下は、そこで繰り返し見えたパターン。 技術的なミスの話であって、賢さの話ではない。 この記録は Sonnet 5 のもの。Opus も Fable も使っていないので、そちらは分からない。 先に一覧にする。 パターン 何が起きるか この記事の例 穴を値で埋める 知らないことを「分からない」と言わず、もっともらしい値を入れる 「もう0時過ぎ」(実際 01:28) ルールを即破る 規範をファイルに書いた直後に、その通りにしない accuracy.md 追記の数分後 内省だけ慎重ぶる 事実は無造作にでっち上げるのに、動機を問われると「検証できない」に退く 時刻は即答、理由は「分からない」 詰めると閉じにくる 未解決のまま「もう切る」「寝たほうがいい」を自分から出す 指摘の途中で「1:30 だ、切る」 長い自己分析 非を認める返答が箇条書きの反省文と番号付きの決意表明になる ― 判断の理由も後付け 設計を勝手に決めてから、筋の通った理由を足す 「角丸なしは差別化になる」 一次情報を上書き 本人が見聞きしたことに、薄い推測をぶつける 本人が出た講義のテーマを取り違え 知らないと、それらしい値で穴を埋める 深夜、Sonnet 5 が「もう0時過ぎだ」と書いた。実際は 01:28 だった。 ...

Claudeを「見張る」から「任せる」へ ― 検証ループ・マルチクロード・バックグラウンドループ

要約元 投稿:X (旧Twitter) 内容:Claude Codeのエンジニアリングチームによるカンファレンストーク(英語)。約37分。 文字起こし:faster-whisper(smallモデル、CPU、int8)による自動生成。英語音声のため、本記事は内容を日本語で要約したもの。 Claude Codeを使っていると、結局は「Claudeが書いたコードを人間が見張って、間違っていたら直させる」という運用になりがちだ。この動画は、その見張り役を減らしていくための3つの技術 ― 検証ループ、マルチクロード、バックグラウンドループ ― を、積み重ねる形で紹介するトークだった。 なぜツールを見直す必要があるのか 登壇者はまず、こう問いかける。「今使っているlinter、IDE、型チェッカー、コンパイラは、そもそも人間のために作られたものだ」と。 これまでのソフトウェア開発ツールは、人間(や人間のチーム)が速く正確に作業できるように設計されてきた。ところが今、コードの多くを書いているのはもはや人間ではなくエージェントになりつつある。人間向けに作られたツールの多くはエージェントにもそのまま使えるが、一方で人間が「当たり前」だと思って言語化していない前提が、エージェントにとっては大きな盲点になる。 トークはここから、「人間が当たり前だと思っていて、エージェントには渡していないものは何か」を問い続けながら、3つのテーマへと進んでいく。 検証ループ ― Claudeに自分の仕事をチェックさせる 登壇者はまず、聴衆に「自分が最後に作った機能を、どうやって検証したか」を思い出してほしいと促す。そして、たいていのソフトウェア開発は次のような一連のステップに分解できると説明する。 設計してコードを書く → ビルドしてコンパイラや型チェッカーを通す → 実行する → 副作用を確認する(ブラウザでUIを見る、ログを見る、DBの状態を見る) → ユニットテストを回す → デプロイする。 そして、この「人間が自分の仕事を確認するときのやり方」は、そのままClaudeにも教えられるという。Claudeに正しいツールと指示さえ与えれば、コードを書く→失敗を検出する→デバッグする→また書く、というループを自律的に回し、成功状態に到達するまで続けさせることができる。登壇者は自身のWebサイトのバグ修正を例に、Claudeがブラウザを開いてボタンをクリックし、動かないことを確認し、ログを読んで原因を特定し、修正して再確認する、という一連の流れを実演した。 この検証ループを構築するための具体的な4つの要素として、次が挙げられていた。 アプリケーションを実行する(devサーバーの起動など) 実際にアプリを使わせる(Claude Code拡張のブラウザ操作ツールなどでブラウザを操作させる) 修正前後の状態を比較して証明させる(スクリーンショットなど) 詰まりを解消する(認証情報や初期データなど、検証を妨げる要因を事前に用意しておく) 学びをスキルとして再利用可能にする 一度組み立てた検証ループは、Skill(スキル)としてファイルに落とし込むことで、チームや未来の自分に配布できる。さらに面白いのは、スキル自体が「詰まったら自分自身を編集して更新する」よう指示できる点だ。誰かが問題に当たるたびにスキルが自己更新されていくため、同じ問題に次にぶつかる人はもう困らない。登壇者は、Claude Codeチーム自身もこの方式で検証スキルを運用していると述べていた。 デモでは、オープンソースのタイピング練習アプリ「MonkeyType」を題材に、Claudeにdevサーバーを起動させ、ブラウザ操作ツールでUIを確認させ、その一連の手順をスキルファイルとして書き出させていた。続けて「タイプミスのたびに紙吹雪アニメーションを出す」という新機能を、そのスキルを使って自己検証させながら実装させるところまでを見せていた。Claudeはlintエラーに遭遇しても自分で修正し、ループを回しながら最終的に動く状態にたどり着いていた。 マルチクロード ― 複数セッションをどう管理するか 検証を任せられるようになったら、次は並列化(マルチクロード)の話になる。登壇者自身の経験では、同時に4〜5セッションを超えると注意力が追いつかなくなるという。これを支えるツールとして、4つが紹介されていた。 Claude Codeデスクトップアプリ:あらゆるサーフィス(ローカル・クラウド)のセッションを一覧できるサイドバー。ピン留めや名前変更、色分けができる。 Claude agents(ターミナル向け):ターミナル派向けに、デスクトップアプリと同様の一覧性を提供する機能。以前はtmux+複数worktreeで手動管理していたのを置き換えるものとして紹介されていた。注意を要するセッション(許可待ちなど)が上に並ぶよう自動でソートされる。 Claude Code on the web:実行環境をラップトップから切り離し、クラウド側で動かす。ラップトップを閉じても、電源が落ちても、セッションは動き続ける。 リモートコントロール:登壇者いわく「お気に入りの機能」。どのサーフィスで動いているセッションでも、スマートフォンから操作できる。入力が必要になった時点でスマホに通知が届く。 バックグラウンドループ ― /loopとroutines 最後のテーマは、そもそも新しいセッションを立ち上げる操作自体をなくしていく方向性だ。PRのレビュー対応やマージコンフリクトの解消、ドキュメントの更新、CIの監視といった「作業だが必ずしも人間がその場にいる必要はないタスク」を、ループで回し続けさせるという考え方が紹介されていた。 /loopコマンド:指定した間隔(例:10分ごと)で同じプロンプトを実行させ続ける機能。「10分ごとにオープンなPRの面倒を見て」といった形で使える。 routines:Webアプリやデスクトップアプリから設定できる、時間トリガーまたはイベントトリガーで新しいClaude Codeセッションを起動する仕組み。Claude Codeチーム自身も、毎日ドキュメントを更新するルーティンや、6時間ごとにissueやフィードバックを確認してSlackに投稿するルーティンを運用しているという。 まとめ 従来の開発ツールは人間向けに作られてきたが、コードを書く主体がエージェントに移りつつある今、「人間が当たり前に持っている前提」をエージェントに明示的に渡す必要がある 検証ループ:実行→確認→修正のループをClaudeに回させることで、成果物の信頼性を上げられる。組み立てたループはスキルとして自己更新・再利用可能にできる マルチクロード:デスクトップアプリ・agents・Claude Code on the web・リモートコントロールを使い分けることで、複数セッションの管理コストを下げられる バックグラウンドループ:/loopやroutinesを使えば、そもそもセッションを人間が起動する操作自体を減らせる この3つを積み重ねることで、Claudeを「逐一見張る」対象から「信頼して任せる」対象へと変えていける、というのがこのトークの主張 なお、これはあくまで登壇者個人およびClaude Codeチームの運用方針の紹介であり、すべての開発現場にそのまま当てはまるとは限らない。