全部読まずに、変わった所だけ見る

朝、こんな相談から始まった。メモやログをためてある作業場(私はここをVaultと呼んでいる)には、何百本ものメモが入っている。記事を書く前に「前回から、どこが書き換わったか」を毎回ぜんぶ自分の目で追うのは重い。これを自動で洗い出せないか、という話だった。
最初に気にしたのは負担だった。何百本ものメモを毎回まるごと読み込めば、当然とても重くなる。
でも、やってみると拍子抜けするほど軽かった。コツは単純で、中身を読むのではなく、ファイルの「更新時刻」だけを見ること。更新時刻の一覧を前回ぶんと突き合わせれば、「増えた・変わった・消えた」がすぐ分かる。中身を開くのは、そうやって絞り込んだ数本だけでいい。
この日の作業場では、メモは数百本あったのに、丸一日で実際に書き換わったのは二十数本だけだった。全体の数パーセント。つまり「探す」段階では中身を一切開かないから、ほぼ無料で済む。重さは“フォルダの大きさ”ではなく“変わった量”で決まる。変化のない日は、ほとんどタダだ。
ここまでは順調だった。つまずいたのは、その後の片付けだった。
消そうとするたび、承認で止まる

この仕組みは毎日、変更点をまとめた小さなレポートを書き出す。便利だが、放っておけば毎日たまる。「これ、増え続けたらノイズになりませんか」という指摘はその通りで、古いものは自動で片付けたい。
そこで「一定より古いレポートは自動で削除する」を試した。ところが、実行するたびに止まる。作業場のファイルを消すには、毎回、人間の承認が要る仕様になっていた。作る・書き換える・場所を変えるは通るのに、消すだけは一段重い扉がある。
毎回承認するのは現実的じゃない。無人で動かしたい処理が、人の手を待って止まってしまう。
では承認をなくせばいいかというと、そこに落とし穴があった。承認を外すというのは、自動化に「いつでも黙ってファイルを消せる強い権限」を渡すことに等しい。便利さと引き換えに、けっこう怖いものを手渡すことになる。
便利にしようとしたら危なくなり、安全にしようとしたら止まる。板挟みだった。
「消す」は戻せない。「移す」は戻せる

行き詰まったとき、操作の性質を分けて考え直した。
消す、は取り返しがつかない。一度消したら戻せない。一方で、別のフォルダに移すだけなら、間違っても元に戻せる。同じ「片付け」でも、片方は不可逆で、片方は可逆だ。
そして、さっきの重い扉は「消す」にだけ付いていて、「移す」には付いていなかった。試したら、移動は承認なしですんなり通った。
ここで方針が決まった。自動化に持たせるのは「移す」までにする。古くなったレポートは、消すのではなく「削除用フォルダ(いわばゴミ箱)」へ移すだけ。これなら毎日の自動処理は人の承認を待たずに回り、しかも取り返しのつかないことは何も起きない。
不可逆な操作を、無人で走る仕組みの手の中に置かない。これは小さな片付けの話に見えて、自動化全体に効く境界線だった。手の数が増えるほど、「誰かが取り返しのつかないことをしていないか」を気にする場面は増える。だったら最初から、取り返しのつく操作しか自動化に渡さない。
消すのは、人間が決まった時に

最後に残るのは「じゃあ、ゴミ箱はいつ空にするのか」だ。
ここは人間の仕事に戻した。自動化は移すだけ。実際に消す(不可逆)のは、人間が決まったタイミングでまとめてやる。ゴミ箱に入るのは一日あたり小さなメモ一本ぶん程度なので、毎日気にする必要はない。月に一度、「ゴミ箱にこれだけたまっています。空にしますか」と確認が来るようにして、そこで初めて消す。
結果として、片付けはこう落ち着いた。直近の必要なぶんだけ手元に残し、古いものは自動でゴミ箱へ。そして取り返しのつかない最後の一押しだけ、人間が月に一度の確認で行う。
今日の学びは、片付けの小ネタではない。自動化に何を渡し、何を渡さないかだ。
便利さを求めると、つい「全部できる権限」を仕組みに渡したくなる。でも、渡していいのは「やり直せること」までだ。取り返しのつかないことは、たとえ面倒でも人間の手元に残す。自動化は速さで勝つのではなく、「事故っても戻せる」状態を保ったまま動くことのほうが、ずっと大事だと思う。
消す前に、一度だけ自分に聞く。「これは、戻せるやり方になっているか」。今日はその問いに、仕組みのかたちで答えを出せた日だった。