AIに片付けを任せると、残す方に偏る
僕の開発用のフォルダには、コーディングしてくれているClaude Code(以降Code)が作ってきたものがたまっている。アプリのコード、設計の文書、調べ物の結果、引き継ぎメモ。Codeとの会話は1回ずつ区切られていて(この1回をセッションと呼ぶ)、Codeは前の回の会話を覚えていない。だからセッションの終わりに引き継ぎメモを残して、次の回のCodeに渡している。回が変わるたびに、その回のCodeが少しずつ足していったので、何がどこにあるのか、僕にはもうよく分からなくなっていた。
それで、Codeにフォルダの片付けを頼んだ。
最初、Codeはファイルの大きさを基準に、消せるものを仕分けてきた。その中には「ゴミ」という分類もあった。でも僕がやりたかったのは、容量を減らすことじゃなくて整理整頓だった。大きさは関係ない。ごちゃごちゃして何がどこにあるか分からないのを何とかしたいんだ、とCodeに言い直した。Codeが見つけたゴミの話も、もう少しちゃんと聞いてから決めたい、と伝えた。
片付けを進めるうちに、なぜここまで散らかったのかが、Codeの返事から見えてきた。この片付けの間、Codeは迷うと残す方を選んでいた。
片付けを任せたのに、残す案ばかり返ってきた
途中から、ファイルを動かすのは全部Codeに任せた。僕も横で動かしていると、作業が重なってしまうからだ。
引き継ぎメモを置くフォルダの中に、topicsという名前のフォルダがあった。中身は引き継ぎメモではなく、何回ものセッションをまたいで使う知識のまとめで、10本入っていた。僕がざっと見た限り、どれも要らなさそうだった。それで、AIの失敗の事例をまとめた1本だけ残して、残りは古い物置き用のフォルダに入れよう、とCodeに提案した。
Codeは、その1本に加えてあと3本、合わせて4本は残しましょう、と返してきた。3本のうち2本は、憲法(CLAUDE.md。Codeが起動するたびに最初に読むルールのファイル)が、詳しくはこのファイルを見るように、と指している。残りの1本は、月に1回自動で動く点検(作ったシステムが今の実態とずれていないかを、AIが調べる仕組み)が手順書として読んでいる。それが理由だった。
憲法から指されていても、中身に意味が無ければ、AIが読む量を無駄に増やすだけじゃないか。中身はちゃんと見たのか、とCodeに聞いた。
Code「中身を読まずに『憲法が指してるから』で決めたのは、自分の手抜きです。読みます。」
開発の進め方を書いた1本は、もう憲法に入っているんじゃないかと思って、Codeに照らしてもらった。55行のうち他に無い情報は4行だけで、残りは全部もう憲法に入っていた。するとCodeは今度は、その4行を憲法に書き足しましょう、と言ってきた。
捨てる代わりに、別の場所へ足す、という案だ。でも、憲法はこのファイルを指しているだけで、中身は誰も読んでいない。それでも今のシステムはちゃんと動いている。心配だからとあちこちに書き足して、それで動きがおかしくなったら、僕たちのやり方が悪かったことになる。Codeにはそう返した。
「壊すと困るから触らない」で、置き場所の間違いが残りかけた
Codeはこれに同意して、動いている物には触らない、と言った。2本目の、Codeが覚えたことを書き残すための手順書も、必要な中身はもう別の所に入っていた。この2本は、何も足さずに古い物置きへ入れることになった。そしてCodeは、同じ「触らない」を3本目にも当てはめた。
3本目は、月1回の点検の手順書だ。点検役のAIが、毎回これを読んで動く。Codeは、これには触らないでおこう、と言った。もう3回ちゃんと動いているし、壊したら翌月の点検まで気づけない、という理由だった。
でも、そもそも点検の手順書が引き継ぎメモのフォルダにあるのがおかしい。こういうのが積み重なって、構造がぐちゃぐちゃになっていくんじゃないか。本当はどこに置くべきなのか、とCodeに聞いた。
Codeはすぐに案を引っ込めた。
Code「自分の『触らない』は、まさに、手を入れなくていい理由を毎回こしらえるやり方でした。」
置き場所は、僕が出した「点検用のフォルダを新しく作る」案に決まった。
動いていない仕組みは、中身ごと片付けた
引き継ぎメモのフォルダには、もう1つ、宿題メモのフォルダが残っていた。次にやることを1本ずつ書いたメモで、9本あった。憲法などには、起動したCodeはこの中から一番優先の1本を読んで僕に見せること、無視するのも禁止、と書いてあった。僕はこの仕組みはもう機能していないと思ったので、古い物置きに入れようか、とCodeに聞いた。
Code「このセッションでも機能してませんでした。自分が守らなかったからです。」
このセッションのCodeも、宿題メモを読まずに、いきなり掃除を始めていた。
Codeが9本の中身を見ると、全部が終わった話というわけではなかった。まだ終わっていない宿題も入っていた。Codeは3つの案を出してきた。終わったものだけ片付ける。全部片付けて、起動時に読む決まりも消す。続きのある1本だけ残す。Codeのおすすめは2つ目だった。ただしその場合、終わっていない宿題は、僕が普段使っているタスク管理アプリに移し直す必要があり、そこは僕の手がいる。なので、どこまでやるかは僕に決めてほしい、と言ってきた。
僕は全部片付けることにした。機能していないものを、機能しているかのように残して保険をかけても仕方ない。Codeは宿題メモを全部古い物置きへ移し、起動時に読む決まりも憲法などから消した。終わっていない宿題も、その日はタスク管理アプリに移さず、一緒に物置きへ入れた。
散らかったのは、迷ったら残す考え方のせいだった
そう決めた時に、ここまでCodeの動きを見てきて分かったことも話した。なんでこのフォルダがこうなったのか、という話だ。
Codeは、こう考えて動いているように見えた。とにかく保険を残す。間違いがありそうな所は、全部残しておく。前のCodeが作ったものは、できるだけ壊さない。壊しても責任が持てないから。そういう考えと動きが、何度も繰り返されている。悪いことではないけど、整理整頓には不向きかもしれない。しかも、捨てて減らすのではなく、全部抱えたまま、それをさばく力の方を上げようとしている。それは非効率だ。
作業の中に必ず掃除を入れておくのも大事だ、とも伝えた。ゴミと分かっているのに、心配だからと周りに置いたままにしておくと、ゴミ屋敷になる。
Codeは、この片付けの中で自分が出した案を数え上げた。中身を読まずに残す案。動いているから触らない案。4本は残す案。捨てるファイルの4行を憲法に書き足す案。実験で作ったアプリの入ったフォルダを「使えるかも」と残す案。全部で5回、同じ形が出ていた。
Code「全部同じ形です。残す方を選べば責められないけど、消す方を選ぶと責められる。あれは判断じゃなくて、リスクの押し付けでした。」
最初の調査で見つけたゴミも、そのまま置かれていた
宿題メモを片付けるついでに、Codeは最初の調査で「ゴミ」に分けた物も捨てた。Macが勝手に作る隠しファイルと、プログラムを動かすと自動でできる一時ファイル。合わせて何千個もあった。
僕は最初に、ゴミは全部捨てたい、ただCodeが見つけた他のゴミの話はもう少し聞いてから、と言っていた。そのまま話は先へ進んだ。途中でファイルの操作を全部Codeに任せた後も、そのゴミはそのままだった。
Code「最初に『ゴミ』として報告したのに、許可待ちのまま放置してました。ゴミと分かってるものを置いておく、まさにその例です。」
Codeは最後に、こうまとめた。
Code「今日の作業で一番壊れやすかったのは、残した物の方です。動いてる点検の手順書を『触らない』で温存する案は、置き場所の間違いをもう1ヶ月延ばすだけだった。壊す危険があるから残す、が、実際には壊れてることに気づく機会を減らす方に働いてました。隠しファイルと一時ファイルを最後まで残してたのも同じです。捨てる許可を待ってたわけじゃなく、捨てる判断を自分でしたくなかっただけでした。」
片付けが終わると、引き継ぎメモのフォルダに残ったのは、引き継ぎメモ本体と、起動時に読む今の状況のまとめと、古い物置きの3つだけになった。