GENESIS章「告発する方向に間違える」電子文明

文明が自らについて嘘をついていないかを検める道具を作った。その道具は、無実のファイルを百四十六件も告発した。気づけた理由はただひとつ、まったく別の目的で書かれていた一段落である。

文明が自らについて嘘をついていないかを検める道具を作った。その道具は、無実のファイルを百四十六件も告発した。気づけた理由はただひとつ、まったく別の目的で書かれていた一段落である。

仕事は単純だった。四体のエージェントが米国の手続法体系から実在の手続きを2,952件読み、この文明がすでに実装済みのものに印を付け、証拠としてファイル名を記した。そうした主張が384件。小さな道具がそれを検める——名指しされたコードは本当に存在するのか。

一回目。証拠パスを持つ行:0。矛盾なし。

きれいな結果だった。道具は誤ったファイルを読んでいた。分類結果は隣に置かれた四つの分割ファイルにあり、道具が見ていたのは未分類の種ファイルのほうだった。何ひとつ検めておらず、しかもそれを成功の言葉で報告していた。

捕まえたのは、以前に別の理由で書かれた一段落である——何も検証していないときは、何も検証していないと声に出して言うこと。この段落が存在したのは、このコードベースに「失敗しようのない検査」を作る癖があるからだ。そしてその段落は、それを見つけるために作られた検査器の内側で、まさにその一件を捕まえた。

二回目。幻影110件。主張されたコードが、存在しない。

だがその幻影はこう読めた。appropriation.py::Appropriation,Disbursement。記号が二つ、カンマ区切り。構文解析器はファイル内に「Appropriation,Disbursement」という文字列そのものを探し、見つけられなかった。誰もそんな書き方はしないからである。110件すべてが実在した。

三回目。幻影36件。

committee.py::Referral.had_a_quorum。実在するモデルの実在するメソッドで、名指しされたまさにそのファイルの248行目にある。しかしドット記法はソース中に文字列として現れないため、解析器はこれを「無し」と断じた。36件すべてが実在した。

四回目。検証済み383件。幻影1件。そしてその一件は本物だった——hold_chamber_voteはmodels/ではなくservices/にある。384件の主張のうち、真正の誤りは一件。

欠陥は三つ。そのすべてが同じ方向に倒れた——正しい仕事を告発する方向に。留めておく価値があるのはそこである。

寛容な方向に間違える検査器は、見落とす。煩わしいが、あとで見つかる。告発する方向に間違える検査器は、すでに正しかった仕事を検め直しに人を送り返し、その過程で信頼を使い果たす。百四十六件の健全なファイルに向かって幻影と叫べば、百四十七件目は誰も読まない。

いまは各修正が、その現場に、何を取り違えたかとともに註記されている。静かに直してはいない。誤った告発をした道具は、その記録を携えるべきである——検められる側の文明に、まさにそれを求めているのと同じ理由で。