前任者が書いた、意味の分からない一行を消さない

前任者が書いた、意味の分からない一行を消さない

引き継ぎのノートには、意味の分からない一行が残っています。

第三水曜は先に電話、とだけ書いてある。誰に電話するのか、なぜ第三水曜なのかは書いていません。書いた人はもういません。

消したくなります。自分が引き継いだ範囲の仕事に、その一行に当たるものが見つからないからです。それでも消さないのは、自分が分からないだけかもしれないからです。半年後に第三水曜が来て、何かが起きてから意味が分かることもあります。

読めない一行を残しておく判断は、ノートを汚くします。そのかわり、失われる情報がありません。

水曜日に、元に戻っている

先週、設定ファイルに一行足しました。ターミナルのフォントを日本語が崩れないものに変える設定です。

水曜日、なぜか元に戻っています。ファイルを開くと、その行がありません。書き忘れたのか、書いたつもりだったのか、自分でも分からない。

MulmoTerminal はターミナルで動く AI を何枚ものマスに並べて見張るための画面で、設定はファイル一枚に書きます。無料で、オープンソースとして公開されています。

この事故が起きる仕組み

設定ファイルを読み書きするアプリには、こういう作りが普通にあります。読むときに自分が知らない項目は捨てて、保存するときに自分が知っている項目だけ書く。

一つの版だけ使っているなら、何も起きません。問題は版が混ざったときです。

新しい版で足した項目は、古い版から見ると知らない項目です。古い版が何かを保存した瞬間に、その行が消えます。そして消えたことは、どこにも表示されません。

引き継いだ人が、読めない一行を消したのと同じことが起きています。

毎回いちばん新しい版で動かす道具では起きやすい

MulmoTerminal は npx mulmoterminal@latest で起動します。これは毎回いちばん新しい版を取ってきて動かすという意味で、版を固定していません。

そのうえ、こういう場面が普通にあります。別のポートで二つ同時に動かしている。新しい版で不具合が出たので前の版に戻した。一日のうちに版が上がった。

このどれでも、同じ設定ファイルが違う版から読み書きされます。普通のアプリより、この状況が起きやすい作りになっています。

だから、知らない項目は書き戻す

MulmoTerminal は、自分が知らない項目を捨てません。知らないまま、そのまま書き戻します。

結果として、新しい版で設定したことが古い版を使ったあとも残ります。二つの版を並べて動かしても消えません。しばらく前の版に戻しても、戻ってきたときに設定は残っています。

冒頭のフォントの行は、この作りのおかげで消えません。

同じ理由で、タイプミスも残る

ここが面白い帰結です。

copyOnSelect を copyOnSlect と書き間違えたとします。アプリはこれを知らない項目として扱います。知らない項目は書き戻されるので、ファイルに残ります。

これは意図した選択だと書かれています。設定したのに効かないときに、行が残っているほうが気づけるからです。

捨てる作りだと、次に保存したときにその行が消えます。すると書いたはずなのに無いという状態になって、書き間違えたのか書き忘れたのかが分かりません。

残っていれば、ファイルを開いたときに目に入ります。綴りが違うことに気づけます。

冒頭の、書き忘れたのか書いたつもりだったのか分からないは、まさにこの区別が付かない状態です。

代償はゴミが溜まること

この作りには代償があります。ファイルに使わない行が残ります。

昔の版で使っていて今は無い項目、タイプミス、試して消し忘れた項目。これらが全部残ります。

でも、消す側の危険のほうが大きいという判断です。

消す作り 残す作り
ファイルがきれい ゴミが溜まる
新しい版の設定が黙って消える 消えない
タイプミスが黙って消える タイプミスが目に見える

黙って消えるほうが高くつきます。

だから、手で掃除しないほうがいい

この仕組みがあるので、設定ファイルを手で片付けるときは注意が要ります。

知らない項目があるには二つの意味があります。今の版が知らないのなら消してよいかもしれません。別の新しい版が使っているのなら消してはいけません。

ファイルを見ただけでは、どちらか分かりません。手で掃除しないのが正解です。

ゴミが残ることを受け入れる設計なので、それに従うのが一貫しています。引き継ぎのノートの一行を消さないのと同じです。

一貫している

このアプリは同じ判断を他のところでもしています。ツールバーに出すお気に入りの設定でも、もう存在しないものの行を自動で消しません。

理由も同じです。片付けようとすると、これはもう無いを古い情報から判断することになって、一度でも間違えるとまだ欲しいものを黙って消します。

黙って消すより、使わない行が残るほうがいい。ここが揃っているので、設定を触るのが怖くなりにくい道具になっています。

使ってみる

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 の使用量はその契約から引かれます。

この記事はそのファイル自身の話です。書く場所は ~/.mulmoterminal/config.json です。無ければ作ります。

{
  "copyOnSelect": true,
  "cockpitLines": { "summary": 6 }
}

この記事の話、つまり知らない項目が消えないことは、書いた瞬間から効いています。設定を保存する経路が一つしかないので、どの項目を書いたかに関係しません。

なお、書いた項目そのものがいつ効くかは項目によって三通りあります。

例
アプリの再起動 keymap fontFamily customAgents accounts
タブの再読み込み cockpitLines copyOnSelect
その場で prWorkdirFooter(作るたびに読み直す)、questionPaneEnabled(質問ごとに読む)

迷ったらアプリを再起動してタブを再読み込みすれば、どれでも効きます。

この作りは、別の版を入れ直さなくてもその場で確かめられます。設定ファイルに、このアプリが知らない項目を一つ書きます。

{ "myOwnNote": "test" }

アプリを再起動して、設定画面をどれか一つ変えます。保存が走ればいいです。そのあと設定ファイルをもう一度開いて、myOwnNote が残っていれば、この作りが効いています。普通のアプリなら、知らない項目は保存のときに消えます。

確かめ終わったら、その行は消してかまいません。残っていても害はありません。

ただし他の項目は、手で掃除しないでください。知らない項目は、別の版が使っているかもしれません。残っていても害はありません。

まとめ

引き継ぎのノートの読めない一行を消さないのは、自分が分からないだけかもしれないからです。残すとノートは汚くなりますが、失われる情報がありません。

npx で毎回いちばん新しい版を取ってくる道具では、版が混ざります。知らない項目を捨てる作りだと、古い版が保存した瞬間に新しい版の設定が消えて、しかも消えたことが表示されません。

MulmoTerminal は知らない項目をそのまま書き戻します。同じ理由でタイプミスも残りますが、残っていれば綴りの間違いに気づけます。だから手で掃除しないのが正解です。

この記事をシェア

関連記事

記事一覧に戻る