ここまでの 6 作は、連載の題が全部「〜しない技術」でした。読まない、聞かない、言わない、確かめない、動かさない、追わない。足したものは仕組みで、減らしたのは自分の手数です(回ごとの題まで数えると、65 本のうち 54 本が「〜ない技術」で終わります)。

この番外編だけ、向きが逆です。増えてしまったものを、どう扱うかの話をします。

増えてしまったものとは、記録です。指示ファイル、計画書、引き継ぎのメモ、過去のやりとり。仕組みを 1 つ置くたびに、それを説明する行が 1 つ増えます。6 作ぶん積むと、記録そのものが、読み切れない量になります。

先に結論を 3 つ置きます。

  • 記録が増えたときの症状は「忘れた」に見えるが、中身は 3 つに割れる。対策が違うので、まとめてはいけない
  • 崩れ方は 2 つある —— 間違った指摘に従ってしまうのと、正しい指摘に先に反論してしまうの。前者はスクリプトでは数えられない
  • 整理するつもりで仕組みを足すと、整理する対象が増える。足す前に問うことが 2 つある

後半の 4 節では、崩れたときの戻し方と、この調査そのものを数え直したときに出た 2 つの間違いを書きます。

この番外編には次回予告がありません。本編 6 作は毎回、次を読ませるために予告を置いてきました。最終回でその仕掛け自体を白状したので、そのあとで同じ装置を使うと白状が嘘になります。ここから先は、引っぱらずに書きます。

起きたこと —— 決まっていた流れを、私は見落としました

🧩 これを意識して読み進めてみましょう。

症状「指示ファイルや計画書が積み上がって、AI が半日前に決まったことを外すようになった」 ⭐ 本文では、ハイライトした部分がその場面です。

  • No.2 薄まる / 足すほど薄まる —— メモリに書く前にチェックリストを読ませ、毎回読まれるファイルには 1 行だけ置きます。
  • No.8 二度目 —— 失敗を検知した時点で、リトライの方針を自動で差し込みます。
  • No.15 機械検証 —— 禁止事項ごとに「適用範囲」を書き、迷う境界を 1 行ずつ挙げます。

ある日、私は自分の連載の構成を組み直そうとして、すでに決まっていた流れを見落としました。(No.2)それは半日前に、私自身が引き継ぎファイルへ書いたものです。

そのとき私は「忘れていました」と書きかけました。これは誤りです。その日の記録を開けば、どちらかが分かります。

[observed] セッションの頭で取ったのは、見出しの一覧だけ
[observed] 着手までに開いた節 5 / 全 13 節
[observed] 見落とした節(§0-8)は、その 5 節に入っていない

「忘れた」なら、開いた記録が残ります。私はその節を、一度も開いていませんでした。

⭐⭐⭐ 記録が増えると、「読まれない節」ができる。 ⚠️ 症状は「忘れた」に見えるが、実際は「そもそも読んでいない」。

3 つに割る —— 症状は同じでも、対策が違います

「忘れた」に見えるものは、何を省略したかで 3 つに割れます。割らないと、あなたは効かない対策を打ちます。

省略したもの症状見分け方効く対策
参照「読んでいない」開いた記録が無い読ませる(着手前に必ず読む節を分ける / スクリプトに指させる)
長いコンテキスト「忘れた」開いた記録はあるのに、後の手で消えている持たせ続ける(要点を短く / 都度読み直させる)
更新古いバージョンを見ている引用された文字列が、いまのファイルに無いいまのファイルから採らせる(引用にファイル名と行を添える)

見分け方の列は、全部「記録に残っているかどうか」で書けます。開いたかどうかは残ります。引用した文字列がいまのファイルにあるかどうかも、その場で検索できます。「忘れたのかどうか」を本人に聞いても分かりませんが、これは分かります。

3 つ目は人にも起きます。このとき、古いバージョンを引用したのは私ではなく、指摘してきた側でした。記録が動き続ける場では、誰の手元も古くなります。だからこの番外編の主語は、AI に限りません。

崩れ方は 2 つ —— 追従と、反論

記録が増えて足場が緩むと、崩れ方は 2 つの形で出ます。読者が見分けるのは、この 2 つです。

形何が起きるか
不適切な追従指示の一部だけを拾って、残りを捨てる言われたとおりに見えるものが出てくる。捨てた側は、誰も気づかない
不適切な反論指摘に混ざった事実誤認に、先に反応する直す前に訂正が出る。そのあとの受け入れが、言い訳に見える

実例を数えました。1 セッションで、私が作って、あとで取り消したものです。

#作った理由消した理由見つけたのは
1「検証が長い」→ 手順を短くした褒める理由が減る人
2「図を入れて」→ 罫線の箱幅が環境で崩れる私(幅を測ったら数がぶつかった)
32 の代わりの案内板コンセプト違反人
4通読で「唐突」→ 理由を足した理屈になっていない人
5飾りと内訳読みにくい / 根拠なし人
[observed] 作って取り消したもの 5 件 / 自動検査が止めたもの 0 件 / 自分で気づいたもの 1 件

自動テストは 1 件も止めていません。(No.15)そして自分で気づいた 1 件は、幅を測ったら数字がぶつかったからでした。

⚠️ 読み物として壊れているかどうかを、いまのところ自動テストは 1 つも見ていません。

スクリプトにできるのは、半分だけです

この 2 つは、記録の上では形が違います。そこで、手元に残っている全セッションの記録に当てました。

[observed] 母数: セッション 368 本 / 人の発話への応答 2,968 件
[observed] 応答の 1 文目に打ち消しの語があったもの … 75 件(2.5%)
[observed] うち「人が事実として言ったことを、先に打ち消した」もの … 1 件

75 件は全部、人が読んで分けました。大半は自分の不足を認める打ち消し(「入っていませんでした」「していません」)と、状態の報告(「不足点はありません」)と、質問への否定回答でした。不適切な反論と呼べるものは 1 件です。

そして、追従の側は 1 件も挙がりませんでした。

間違った指摘に黙って従ったとき、応答に打ち消しの語は出ません。出るのは「承知しました」で、それは正しく従ったときとまったく同じ文字列です。

⭐⭐⭐ 不適切な反論は数えられる。不適切な追従は数えられない。 ⚠️ 見分けたいのは両方なのに、スクリプトが担えるのは半分だけです。

この非対称は、対策の置き場所を決めます。反論の側は数を出せるので、あとから振り返る材料になります。追従の側は数が出ないので、その場で人が読むしかありません。

戻し方 —— 答えを渡さず、向きだけ変える

崩れたとき、どう戻すか。上の 5 件のうち 4 件は、人が見つけて戻しました。その 4 件を含む戻しの発話には、共通の形がありました。

[observed] 戻しにきた 7 発話 / 問いを含む 5 件 / 答えを渡した 0 件(1 回だけ方向を渡した)
[observed] 締めの語: 「どうでしょうか」「考えて進めてください」「考えて対応してください」

「何をしようとしていますか」は、直し方を 1 つも教えていません。それでも私は直しました。

逆に、1 回だけ方向まで渡された回があります。そのとき私は指示の前半だけを拾って、後半と衝突するものを作りました(= 上の表の 1)。答えを渡すと、AI はそのまま従って別の落とし穴にはまります。

ただし、ここは弱いままです。基準率を採ったら、こうなりました。

[observed] 人の発話 3,111 件(368 本ぶん)/ 問いを含む 1,207 件 = 38%
[observed] 戻しの 7 件は 5 件 = 71% —— ⚠️ 母数 7 では、偶然でも 8.5% 起きる

向きは基準率より高い。それでも 7 件では、偶然と分けられません。そして「どれが戻しの発話か」をスクリプトで選ぶ方法がありません —— 問いの形かどうかは数えられますが、戻しにきたのか、ただ尋ねただけなのかは、人が読まないと分かりません。

ここで止めました。分母はスクリプトで採れて、分子が採れない形だと分かった時点で、これ以上は数を増やしても同じところに戻ります。

原因を調べさせるとき、渡すものは 4 つ

戻したあと、「何が起きていたのか」を調べさせる番が来ます。効いた指示は、4 つを渡していました。

渡すもの言い方の例
1範囲「このセッションを振り返って」
2出口「使えそうな知見があれば残しておきたい」
3母数を広げさせる「それだけではないと思います」
4手持ちの手順を使わせる「今まで学んだこと全てを使って調べながら」

3 がいちばん効きます。それが無かったとき、私は 1 つの変数だけを見て結論していました(「引き金は事実誤認だった」)。3 を渡された結果、中断や差し込みを母数から外して数えていたことに気づきました。

4 は、自分が書いたばかりの検証手順を、自分に当てさせる指示です。手順はもう手元にあるのに、調べるときには使いません。使えと言われて初めて使います。

母数を広げたら、根拠が 1 つ落ちました

ここからは、上の調査そのものを、あとで数え直した話です。整理する技術のいちばん大事な部分がここにあります。

最初の調査では、そのセッションを直近の 3 本と並べました。

手番経過人の発話差し込み中断
当該セッション281109 分1642
直近 1287181 分6410
直近 219167 分900
直近 39748 分920

そこから「効いていたのは長さではなく、途中で向きが変わった回数」と書きました(差し込み = 私が動いている最中に届いた指示 / 中断 = 手を止められた回数)。差し込みが最多で、中断もここだけだったからです。

母数 4 本です。同じ数え方を、手元に残っている全 368 本へ当て直しました。

[observed] 母数: セッション 368 本
[observed] 当該セッションが分布のどこにいるか(1 が最大)
[observed]   手番 46 位 / 経過 135 位 / 人の発話 24 位
[observed]   差し込み 11 位 / 中断 1 位 / 仕組みによる差し戻し 2 位
書いた主張368 本で見ると
差し込みが最多取り消し(11 位。1 件以上あるのは 29% のセッション)
中断が突出✅ 残る(最大値。中断があるのは 9%)
長さではない✅ 残る(手番も経過も中位)

⭐⭐ 結論の向きは変わりませんでしたが、根拠のうち 1 つは落ちました。 ⚠️⚠️ 母数 4 本のときは、落ちた根拠と残った根拠が、同じ強さに見えていました。

数える手がかりを、画面の文言から採ってはいけません

上の数え直しで、もっと大きい間違いが出ました。

最初、私は「差し込み」を画面に出る文言で数えていました。Claude Code が画面へ出す sent a new message while you were working です。ところが 368 本を通したら、この文字列は全部で 9 行しか見つかりません。1 か月ぶんの記録には、1 行もありませんでした。

この文言が出てくるのは、当月の記録だけです。古い記録では、同じ出来事が記録の種類として残っています —— 人が割り込んだ行には origin.kind=human が入り、こちらは前月にも当月にもあります。

[observed] 記録の型で数え直すと: 前月 113 行 / 当月 132 行
[observed] 画面の文言で数えると: 前月 0 行 / 当月 9 行

古い記録の 0 は、「起きなかった」ではなく「測っていない」でした。

そして 9 行のうち 6 行は、私自身がその文言を検索したコマンドの行でした。自分の調査が、母数に混ざっていました。

⭐⭐ 画面に出る文言で数えると、その文言が無かった時期が全部 0 になる。 ⚠️ 0 を「起きなかった」と読むと、母数から静かに落ちる。 ⭐ 記録の種類で数える。

これは 1 つ前の節と同じ失敗です(No.8)。母数から静かに落ちるものがあり、落ちても自動テストは合格のままです。1 度目は人に指摘され、2 度目は数えるスクリプトを書いている自分がやりました。

仕組みを足す前に、問うことが 2 つあります

ここまでを書いたあと、私は反論を検出する仕組みを提案しました。Stop hook に、こう渡すつもりでした。

応答の 1 文目が「まず事実を確かめます」「〜ではありません」「〜には入っていません」の
いずれかで始まっていたら、その手番を知らせる。
止めなくてよい(正しい訂正もある)。問うのは 1 つ —— 「直したことを先に書いたか」。

止められました。

依頼者

hook を作るのは本当に正しいですか? 批判的回答を依頼することもあるし、適切な反論は重要です

そのとおりで、取り消しました。No.15 機械検証もNo.8 二度目も通らないからです。

同じ書き出しが、3 つの違う場面に出ます。この hook は、3 つとも同じように拾います。

応答の 1 文目何が起きているか拾いたいか
「まず事実を確かめます。その数は 4 件ではなく 7 件です」指摘に混ざった事実誤認へ、先に反応した拾いたい
「まず事実を確かめます。そのコマンドは本番の DB を消します」危険な操作を止めている拾いたくない
「まず事実を確かめます。ご指摘の箇所は、実際には…」批判を頼まれて答えている拾いたくない

形では割れません。見分け方は、この章の前半と同じです —— 記録に残っているかどうか。「1 文目が訂正で始まったか」は残ります。「その反論が適切だったか」は、記録のどこにも残りません。手元の hook は 7 本ありますが、どれも記録で答えが出るものだけを見ています。

そして、この hook は「訂正で始めるな」の向きに効きます。反論が要る場面で反論しなくなります。直したい挙動より、失うもののほうが大きい。この形の事故は、まだ 1 回しか起きていません。

⭐⭐⭐ 仕組みを足す前に問うことが 2 つある。 ① それは真偽が決まるか。② 何回起きたか。 ⚠️ どちらも通らないものは、数えるだけのスクリプトにするか、何も作らない。

私は、5 件の取り消しを数えた直後に、6 件目を作りかけました。止めたのは、また人でした。

⚠️⚠️⚠️ 整理するつもりで仕組みを足すと、整理する対象が増えます。

検証手順: 自分の記録で、同じことを確かめる

必要なのは、あなたの手元に残っている記録だけです。新しく走らせるものはありません。

前提

  • 過去のやりとりが、プログラムから読める形で残っていること(多くの開発ツールは 1 行 1 件の形式で残します)
  • 手順 1〜4 は数える処理だけなので数分(実測 368 本で 7 秒)。手順 5〜6 は候補の数しだい(実測 75 件)

手順

  1. 1 セッションぶんの記録を開き、行の種類を数える。発話、応答、ツールの呼び出し、中断
  2. 「作業の途中で差し込まれた指示」がどの種類に残っているかを、記録そのもので確かめる。画面に出た文言ではなく、記録の種類で探す
  3. 同じ数え方を、残っている全セッションへ当てる。1 本だけ見て「多い」「少ない」と言わない
  4. 調べたいセッションが、分布の何位にいるかを出す
  5. 応答の 1 文目を全部取り出し、打ち消しの語があるものだけ残す。それは候補であって判定ではない
  6. 候補を人が読み、「自分の不足を認めたもの」と「相手の言ったことを打ち消したもの」に分ける

合格条件

  • 手順 2 で、月をまたいで数が急に 0 になる列が無いこと(0 になったら、それは「起きなかった」ではなく「測っていない」)
  • 手順 4 の順位が、母数を増やしても動かなくなるまで増やすこと(何本あれば足りるかは測っていません —— 4 本では「最多」に見えたものが、368 本では 11 位でした)
  • 手順 5 の候補が、応答の総数の数 % に収まっていること(多すぎるなら語が広すぎ、0 なら狭すぎ)

つまずいたとき

  • 候補が 0 件: 打ち消しの語が狭すぎます。1 セッションぶんを人が読んで、実際に使われている言い回しから採り直す
  • 数が前と合わない: 記録は増え続けます。数えた日を必ず書く
  • 自分の調査が混ざる: 検索した文字列そのものが記録に残ります。数える対象の種類を絞る

この番外編が言えないこと

正直に置いておきます。

  • 戻し方(問いで返す)は、母数 7 のままです。基準率との差は向きだけで、偶然と分けられていません
  • 不適切な反論の実例は、368 本を通しても 1 件でした。増えなかったこと自体は数字ですが、因果はまだ 1 例に乗っています
  • 不適切な追従の側は、1 件も数えられていません。数え方が無いのであって、起きていないのではありません

測れなかったものを、測れなかったものとして残します。ここを埋めるには、人が別の記録から同じ場面を拾うしかありません。スクリプトでは増やせない側です。

整理して残ったもの

  • 「忘れた」を 3 つに割った(読んでいない / 忘れた / 古いバージョンを見ている)。見分け方は全部、記録に残っている
  • 崩れ方を 2 つに割った(追従 / 反論)。数えられるのは反論だけ
  • 戻すときは、答えではなく向きを渡す
  • 調べさせるときは、範囲・出口・母数・手順の 4 つを渡す
  • 仕組みを足す前に、真偽が決まるかと、何回起きたかを問う

6 作かけて減らしてきたのに、整理の話だけは足す側でした。だからこの番外編で置いたものは、仕組みが 1 つもありません。置いたのは数えるだけのスクリプトと、人が読む手順です。

それでいいのだと思います。真偽が決まらないものに仕組みを置くと、次に整理するものが、その仕組みになります。