差分1000件の正体は作りかけの絵だった話
困ったこと
ふくけいの工房を管理している倉庫(リポジトリ)で、ある日「変更あり」が1000件並んだ。何も触っていないのに、だ。以前にも似た騒ぎがあって「もう直ったはず」だったのに、作業場所を変えた途端に復活する。着替えるだけで服が1000枚汚れて見えるような、意味の分からない状態。片付ける前に、この1000件の正体を全部知らねば始まらない。
どう解決したか
まず全部を実際に確かめて仕分けた。すると1000件は3種類に分かれた。最大の山は914件で、その9割・900枚の正体が、アニメーションを作る過程の中間コマ(元絵から何度でも作り直せる出力物)だった。倉庫に置く必要がそもそもない品物だ。次に、AI3人に別々の改善案の代理人を頼んで弁論大会を開いた。想定より手強い反論もあったが、自分の案が悪いと認めて敗北を宣言する代理人まで現れた。さらに反論を考える過程で「残す案を選ぶと、偽の差分が再生成のたびに本物の差分に化けるだけ」という新事実が見つかった。結果は「そもそも倉庫に置かない」案が83点で、2位に24点差の圧勝。
何が変わったか
問いが一段上がった。「しまい物をどう管理するか」から「そもそも何をしまっておくか」へ。置かないと決めた品物は、以後二度と差分として姿を現さない。道具の使え方の記録も直した(昔の荷物のために道具と貸し倉庫は残す・新しい預け入れだけ止める、が正確な表現だと)。決定から2週間後、7ステップの手順はすべて完走した。
<details><summary>▶ 技術的にどうなってるか</summary>
- 発生機構:
.gitattributesに git-lfs のルールだけ追加して遡及移行(git lfs migrate import)をせず、gif生成の中間フレーム900件(docs/demo/frames/・参照0件を実測)が管理下にあったため、「git-lfs の有無」という環境差で偽差分が恒常化していた - 1000件の内訳(実測): LFS偽差分914(frames 900+gifs 4+screenshots 10+visual_baselines 3)/ filemode誤検知17 /
.bakゴミ68。別枠で catalog_images の zip 98件(実体23MB・.gitignore記載済みなのに追跡済みで無効) - 実測で覆った前提:
git lfs fetchは worktree を実体化しない(130バイトのポインタのまま・git lfs checkoutが必須)。マルチLLMレビュー3機が独立指摘→実測で確認。元案のまま実行すると23MBのデータが失われるところだった - 選定プロセス:
sentakuL1→L1.5(案拡張でD案誕生)→L2(重み付きマトリクス68点)→L3弁証論(GLM=案A/MiniMax=案B/Gemini=案Cの代理人攻撃)。MiniMaxは自案の敗北を自認して脱落。弁論で「案Cは偽差分を再生成時の真の差分に置き換えるだけ」というD案の新優位点が判明し、評価軸に「再生成ノイズの恒久断絶」を追加→D案83点 - 恒久ルール: 過去コミットの一部がLFSポインタのため
git lfs uninstall・LFSオブジェクト削除・.git/lfs/objects手動削除は実行禁止(該当期間のコミットが130バイトのテキストになり復元不能)。正確な表現は「新規のLFS追加を止め、過去履歴のためにクライアントとリモートストレージは維持する」 - 実行記録: 決定(Step -1〜7)は2026-08-13に確定・2026-09-10に完走。所在: obsidian-ssot
01_DECISIONS/atelier-kyo-manager/2026-08-13_LFS偽差分1000件の全容解明とD案採用-弁証論.md(前編: 同2026-07-12_git-status誤検知950件・完走記録: 同2026-09-10_LFS偽差分1000件D案実行完走)
</details>