捨てる前に中を見る手間が、いちばん高くつく

捨てる前に中を見る手間が、いちばん高くつく

引っ越しのあと、開けていない段ボールが積んであります。側面には「台所・雑」とだけ書いてあります。

要らないものだという気はします。半年開けていないので、なくても生活は回っていました。それでも捨てられないのは、中に一つだけ、捨てたら困るものが入っている可能性が消えないからです。

だから開けます。三箱目までは真面目に開けて、四箱目で面倒になって、五箱目からは積んだままになります。捨てる前に中を見るという手間が、捨てる作業そのものより高くつくからです。

箱の外側に中身が書いてあれば、開けずに決められました。

金曜の夕方に十八本

AI にコードを書かせるとき、作業ごとに専用のフォルダを切ることになります。git には同じプロジェクトの二本目、三本目の作業フォルダを作る機能があって、それぞれが別の枝を開きます。互いのファイルに影響しないので、並列で頼むならこれが前提になります。

MulmoTerminal は、そのフォルダを画面から作れるようにしています。ターミナルで動く AI を何枚ものマスに並べて見張るための画面で、一マスが一体の AI にあたります。無料で、オープンソースとして公開されています。

名前を入れてボタンを押すだけなので、作るのは一瞬です。一週間で二十本近く溜まります。

fix-login
add-search
1026-fix-header
refactor-auth
try-vitest
…

金曜の夕方に一覧を見ると、十八本あります。どれも自分で作ったはずなのに、どれが片付いていてどれがまだかは思い出せません。

段ボールと同じ状態です。

消してから気づくと、戻せない

作業フォルダを消すと、中の未保存の変更も一緒に消えます。git に刻んでいない変更は履歴のどこにも残らないので、戻す手段がありません。

厄介なのは、自分が見ていないあいだに変更が生まれているところです。AI に並列で頼んでいるのだから、それが目的です。三十分前に頼んだ作業が、いま何行書き換えているかは分かりません。

十八本を一つずつ開いて中を確かめる、という作業が発生します。これも段ボールと同じで、途中で面倒になります。面倒になったあとが危ないところです。

「本当に削除しますか」は何も言っていない

普通の確認は、押す前と押したあとの差を教えてくれません。

「本当に削除しますか」という文は、何が消えるかを言っていないので、読んでも判断が進みません。結果として、読まずに押す癖が付きます。押す癖が付いたあとは、確認があることが害になります。

箱の外側に中身を書くのと同じことを、ボタンの文字でやる方法があります。

ボタンの文字が変わる

マスを閉じるときに、作業フォルダを残すか消すかを聞かれます。

閉じる確認のダイアログ。「2 unpushed commits + 5 uncommitted changes will be discarded」と出て、ボタンが Keep worktree / Discard & remove / Cancel の3つ

消えるものが無いときと、あるときで、出る文が変わります。あるときは、まだ送っていないコミットの数と、まだ刻んでいない変更の数が並びます。ボタンの文字も、単に消すという言い方から、捨てて消すという言い方になります。

押す前に、その箱に何が入っているかが読めます。

十八本のうち、捨てて消すと出たフォルダだけ中を開いて確かめる。残りはそのまま消していい。十八本を一つずつ開く作業が、ボタンの文字を読むだけになります。

数え直すのは、確認を出す瞬間

細かいけれど効く仕様があります。確認を出す瞬間に、変更を数え直します。そのあいだボタンは確認中の表示になります。

理由があります。マスのヘッダーに出ている変更の数は、少し前の値かもしれません。AI が五秒前にファイルを書いたばかりだと、表示は 0 のままで、実際には変更があります。そのまま消すと、直前に生まれた変更を見落としたまま消えることになります。

AI に並列で作業させているときは、見ていない五秒のあいだにファイルが書かれるのが普通です。だから確認の直前に数え直します。

箱を開ける直前に、もう一度中を覗くのに近い動きです。

管理下の外は消せない

削除の対象は、このアプリが作ったフォルダだけです。管理下の外を指す削除は、サーバー側で断られます。

ブラウザ側のチェックではないので、パスの書き方を変えても、別の方法で送ってもすり抜けません。AI が間違えて別のフォルダを消すという形の不安については、そこはコードで気をつけている場所ではなく、届かない場所になっています。

掃除できないフォルダを作らないために

一つだけ、先にやっておくことがあります。.gitignore に一行足しておきます。

# .gitignore
.mulmoterminal.local.json

作業フォルダには、色や名前を引き継ぐためにプロジェクトの設定のコピーが置かれます。これが .gitignore に入っていないと、git から見て未追跡のファイルとして出ます。

すると未保存の変更があると判断されるので、削除が毎回「捨てて消す」になります。実際には捨てるものが何もないのに、毎回それを押すことになる。毎回押していると、本当に捨てるときも同じ見た目になります。

箱の外側の表示が全部同じになってしまうわけで、一行足すだけで解消します。

使ってみる

MulmoTerminal は、次の一行で立ち上がります。ターミナル(Windows なら PowerShell、Mac ならターミナル)を開いて、そのまま貼り付けます。

npx mulmoterminal@latest

ブラウザが開いて http://localhost:34567 が表示されれば成功です。インストールという作業はなく、合わなければ閉じるだけで終わります。止めるときは、打ったターミナルで Ctrl + C を押します。

動かない場合、足りないものは次の二つのどちらかです。

確かめ方 無ければ
Node.js 22.12 以上 node -v nodejs.org/ja/download の LTS。入れたらターミナルを閉じて開き直す
Claude Code claude --version macOS は curl -fsSL https://claude.ai/install.sh | bash、Windows は irm https://claude.ai/install.ps1 | iex。そのあと claude でログイン

Claude Code は、AI をターミナルから使うためのコマンドです。使うには Claude の有料プラン(Pro / Max / Team / Enterprise)か API のアカウントが必要で、無料プランには含まれていません。MulmoTerminal 自体は無料で、AI の使用量はその契約から引かれます。

先に、そのプロジェクトの .gitignore に上の一行を足しておきます。

そのうえで、git のプロジェクトのフォルダをマスで開いて、起動フォームの下のほうに出る欄に作業の名前を入れ、ボタンを押します。作業フォルダができて、そこで AI が起動します。

そのマスで何かファイルを直させて、マスを閉じます。消えるものの数が出て、ボタンの文字が変わっていれば読めています。何も直していないマスを閉じると、文が出ないことも確かめられます。

残すほうを選べば、フォルダは残ります。あとから一覧の行から開き直せます。

まとめ

捨てる前に中を見る手間が捨てる作業より高くつくのは、引っ越しの段ボールから変わっていません。箱の外側に中身が書いてあれば、開けずに決められます。

AI に並列で作業させると、作業フォルダが一週間で二十本溜まって同じ状態になります。「本当に削除しますか」は何が消えるかを言っていないので、読まずに押す癖が付きます。

MulmoTerminal は、消えるコミットと変更の数を出してボタンの文字を変えます。数え直すのは確認を出す瞬間で、見ていない五秒のあいだに書かれたものを拾うためです。

この記事をシェア

関連記事

記事一覧に戻る