Phase 01|欠落した一秒
午前二時十七分。
中央監視室は夜間照度に落ちていた。
十二台の端末には、それぞれ異なる監視系が開かれている。時計、記録、認証、外部参照。画面の上では整然と分かれているが、一つの説明へまとめられる状態ではなかった。
監査対象は約六分前、02:11:43を挟む記録差だった。
警報は鳴っていない。冷却ファンも空調も、いつもと同じ周期を保っている。
その静けさの中で、水城由莉は時系列表示を一段ずつ拡大した。
02:11:42 | event_x | host=02:11:42 | internal=02:11:42 | saved=02:11:42 | auth=OK
02:11:43 | <no record>
02:11:44 | event_y | host=02:11:44 | internal=02:11:44 | saved=02:11:44 | auth=OK
「……一秒、ない」
隣に立った中原慎一が、画面を覗き込む。
「消えた?」
水城は首を振った。
「削除か、未生成か、取得漏れか。今の表示だけでは分けられない」
黒瀬零が同期系の画面を開いた。
NTP = OK (offset +0.42s)
INTERNAL_CLOCK = CONSISTENT
STORAGE_BLOCK = VALID
EXTERNAL_REFERENCE(02:11:43) = NONE
「少なくとも、確認した時計列には飛びがない」
黒瀬は保存領域の状態を切り離して示した。
「でも、時計が連続していることと、記録が完全であることは別だ」
「だから空白だけを先に固定する」
水城は監査欄へ、原因ではなく確認状態を記した。
中原は一秒分の空欄を見たまま、指先を机から離した。
「一秒って、こんなに長かったっけ」
「時間の長さを測っているんじゃない」
水城は答えた。
「今は、記録の差を見てる」
Phase 02|四つを重ねない
黒瀬は中央端末を四分割した。
時計。
ログ。
経路。
媒体。
前回までに採用した順序を、今回も崩さない。相関を見るのは、それぞれの確認範囲と不確かさを残したあとだった。
水城が言う。
「02:11:43という表示位置が同じでも、同じ事象を見ているとは限らない」
「分かってる」
中原は答えたが、視線は空白から動かなかった。
黒瀬が映像保存領域を読み取り専用で開く。比較対象は、保存されたraw segmentと、その区間に付随する照合値だけに限定した。
sha256(raw_segment_021143) == stored_hash_021143
result = MATCH
鷺沢が画面へ身を寄せた。
「保存時の破損は?」
「この比較では差が出ていない」
水城は言い換えた。
「それ以上は言わない。映像が現実を完全に保存した証明にもならない」
黒瀬はHash結果と空白を別々の記録へ保存した。二つの欄の間に、因果を示す線は引かなかった。
Phase 03|顔のない映像
raw segmentが中央画面に広がる。
人物の輪郭がある。
衣服がある。椅子がある。机がある。照明の反射も、周囲の微細な揺れも残っている。
けれど、顔に相当する領域からは、識別に使える情報を抽出できなかった。
ぼかし処理の痕跡は確認できない。加工と断定できる差分もない。
水城は「顔がない」とは記録しなかった。
physical_presence = CONFIRMED
facial_information = ABSENT
cause = UNRESOLVED
「加工された?」
中原が訊いた。
「その証拠はない」
「カメラの故障?」
「それも確定していない」
「じゃあ、何を見てる?」
水城は画面を一度閉じ、検証複製側で同じ区間を開き直した。
「人物が写っているように読める媒体記録。その中で、顔面情報を確認できない状態」
「言い方が遠い」
「近づけると、分かっていないところまで決める」
中原は返事をしなかった。
黒瀬が二人の間へ、別系統の記録を表示する。
「だから映像だけで結論を出さない」
Phase 04|存在と可視性
認証ログには一行が残っていた。
hb123,2026-08-25T02:11:43,,,3f2a...
表示されているのはuser_id、timestamp、audit_hash。created_byとsource_idに相当する位置は空欄だった。
黒瀬が座席側の測定記録を呼び出す。
measured_load = 68.3kg
status = PRESENT
同じ時間位置を参照する観測結果には、別の表示がある。
visibility = NONE
鷺沢が息を止める。
「いるのに、見えていない?」
水城は即座に首を振った。
「存在記録とvisibility表示が一致していない。そこまで」
presence = PRESENT
visibility = NONE
consistency = UNRESOLVED
中原は、自分の胸元を押さえた。
「記録が人を、いる側といない側に分けるのか」
「分けているのは、今見えている分類欄」
水城は答えた。
「人そのものじゃない」
Phase 05|記録されない分類
分類系には、人物属性と観測結果が並んでいた。
person_attr:
id = hb123
role = observer
auth_state = valid
observation_result:
visibility = none
sensor_presence = present
その下に、分類結果が表示されている。
classification = excluded_observer
「誰かが分類した?」
鷺沢が訊く。
水城は監査ログと処理追跡を別々に検索した。
classification_audit.log = NO MATCH
process_trace = NO MATCH
「現在の検索では、対応する監査記録も処理Traceも確認できない」
水城は検索条件と実行時刻を保存した。
「結果はあるのに、理由がない?」
中原の問いに、黒瀬が答える。
「理由を確認できない。理由がないとは言っていない」
同じ言葉に聞こえて、同じ意味ではなかった。
中原は画面の中のexcludedを見つめる。
除外されたのが人物なのか、分類上の役割なのか、それとも観測処理の対象だけなのか。表示は答えを持っていなかった。
Phase 06|最初の表示
午前二時十九分。
中央端末の下端に、一行が現れた。
観測対象:該当なし
「さっきの人物?」
中原が訊いた。
「結びつける証拠はない」
水城は表示を保存し、発生時刻と取得時刻を別欄へ置いた。
鷺沢が操作履歴を確認する。
manual_input = NO
administrator_push = NO
「少なくとも、確認した範囲に手動入力と管理者Pushはない」
「誰も触ってない?」
中原が重ねる。
「そうは言えない」
鷺沢が答えた。
「記録から確認できないことを、人の不在へ置き換えない」
水城は空白と表示を別の監査対象として固定した。
「近い場所に出たから同じ、にはしない」
Phase 07|三つの時刻
黒瀬の指摘で、水城は時刻を三つの作業用別名へ分けた。
T0 = 現場観測時刻
T1 = 内部処理・保存時刻
T2 = registryコミット時刻
02:11:43はT0とT1の照合対象に置かれている。
一方、registryで確認されたコミット表示は02:48:17だった。
「三十六分以上あとだ」
中原が時計を見る。
「だから同時発生として扱わない」
水城は二つの時刻を同じ線で結ばなかった。
分類値の履歴も、表示値として並べる。
02:11:31
observer = 11
target = 1
excluded = 0
02:11:43
observer = 11
target = 0
excluded = 1
「targetが消えて、excludedが増えた」
鷺沢が言う。
「画面上の値が変化した」
水城が言い直す。
「分類結果の変化と、現実の観測関係の変化は分ける」
鷺沢は頷いた。
「分けたまま公開判断へ持っていく」
Phase 08|受領という文字
外部参照系には一件だけ、状態表示が残っていた。
status = RECEIVED
transport = <none>
source = <none>
「受信した?」
中原が訊いた。
黒瀬はすぐには答えなかった。
「RECEIVEDという状態値が残っている」
「同じじゃないのか」
「現実に受領したと判断するには、経路か送信元か、独立した記録が要る」
透過表示の向こうで、transportとsourceの空欄だけが淡く光っている。
水城は内部生成と外部入力を、どちらも確定候補にしなかった。説明欄には、ただ「境界未確認」と記した。
中原が小さく息を吐く。
「受け取ったって書いてあっても、受け取ったとは限らない」
「表示を疑うんじゃない」
黒瀬は言った。
「表示が証明できる範囲を越えない」
Phase 09|名前としてのCDPI
午前二時四十八分。
registryに02:48:17の記録が確認された。
entity_id = CDPI
target_type = observation_system
relation = self-reference
status = COMMITTED
audit_hash = PRESENT
created_by = <none>
水城は各Fieldを一つずつ読み上げた。
「CDPI。observation_system。self-reference。COMMITTED」
最後に、空欄へ視線を移す。
「created_byは確認できない」
「CDPIが観測対象になった?」
中原が訊く。
「entity_idにCDPIという文字列がある」
「target_typeは?」
「分類単位としてのobservation_system」
「同じものじゃない?」
「同じ画面の近い位置にある。そこまでは言える」
黒瀬が監査用の注記を開いた。
「LabelとReferentを分ける。relationとidentityも分ける」
別の表示名も記録されていた。
SYSTEM-OBSERVATION
鷺沢が詳細を開く。
origin = <none>
authority = <none>
process = <none>
「名前だけが先にある」
鷺沢が言った。
「先にあるように見える」
水城が直す。
「いつ存在し始めた表示なのかも、まだ確認できない」
Phase 10|どちら側ですか
中央端末が一度だけ暗転した。
四人の姿が黒い画面に映る。
水城、黒瀬、鷺沢、中原。
次の瞬間、下端に新しい文字列が現れた。
あなたは、どちら側ですか。
中原が半歩だけ後ろへ下がった。
「俺に訊いてる?」
「宛先は表示されていない」
水城の声は平静だった。
「なら、誰に」
「それも決められない」
黒瀬は画面を保存し、取得時刻を記録した。鷺沢は公開管理卓へ手を伸ばしかけ、止めた。
「この表示は、今の公開資料へ出さない」
「隠すの?」
中原が訊く。
「公開しないことと、消すことは違う」
鷺沢は答えた。
「意味も宛先も分からない文章を、CDPIへの問いとして流通させない。少なくとも判断が終わるまでは」
水城は中原を見る。
「ここから先も、同じ画面を見る?」
問いは短かった。
中原はすぐには答えない。暗転した瞬間に映った自分の姿を思い出すように、消えた反射を見ていた。
「見る」
「今回の確認に限る。途中で止められる」
「分かった」
水城はその返答を、表示の宛先や主体性の証拠には使わず、中原の現在意思として別の記録へ保存した。
直後、中央端末に別の状態表示が現れる。
observer = observation_system
target = observation_system
relation = self-reference
status = ACTIVE
黒瀬が顔を上げる。
「表示順は保存する。因果順にはしない」
誰も答えなかった。
Phase 11|公開しない判断
鷺沢は公開管理卓の自動処理を停止した。
automatic_registration = BLOCKED
automatic_publication = BLOCKED
recursive_commit = MONITORED
「自動登録と自動公開を止める」
鷺沢は黒瀬と水城を見た。
「共有先は、ここにいる四人まで。中原さん、私、黒瀬さん、水城さん。追加は公開判断と別に承認を取る」
「俺も職員と同じ扱い?」
中原が訊く。
「同じではない」
水城が答えた。
「あなたに関係する可能性を理由に外すこともしないし、関係する可能性を理由に参加を強制もしない」
黒瀬は保全手順を開いた。
「原形は読み取り専用へ固定する。以後の確認は検証複製で行う」
閲覧記録と複製記録を分け、それぞれに操作時刻と担当を残す。原形には、表示を消す操作も、意味を補う書き込みも行わない。
中原が画面の文字を見た。
「答えないの?」
「誰からの問いか分からない」
鷺沢が言う。
「返答経路も、返答先も、返答が公開になるかも分からない」
「だから何もしない?」
「何もしないんじゃない」
黒瀬が検証複製の作成を開始した。
「壊さず、増やさず、確認できる形にする」
水城は最後まで空欄だったFieldを、空欄のまま固定した。
created_by = <none>
source_id = <none>
process_trace = <none>
「少なくとも、ここから生成主体は確認できない」
水城が言う。
「それが、今の限界」
Phase 12|観測される側
午前二時五十六分。
原形の固定が完了した。検証複製のHashと作成記録、閲覧記録、操作監査が別々に保存される。
警報は鳴らない。
中央端末が再び暗転した。
今度は、四人の反射が映るより先に表示が戻った。
observer = observation_system
target = observation_system
relation = self-reference
status = ACTIVE
その下に、一行だけが加わった。
観測対象:CDPI
誰も声を出さなかった。
水城は表示を保存する。
黒瀬は原形が読み取り専用のままであることを確認する。
鷺沢は公開保留を維持する。
中原だけが、一つ前の問いと新しい表示を交互に見た。
「『あなた』と、CDPIは同じ?」
「分からない」
水城が答えた。
「同じ画面に続けて出た。それ以上の関係は確認できない」
「じゃあ、俺たちが見られてる?」
「そうとも記録しない」
「CDPIが自分を見てる?」
「それも記録しない」
黒瀬が中央端末を閉じずに、別の画面だけを落とした。
「名前が表示されたことは残す。名前が何を指したかは残さない」
「残さない?」
「決めないまま残す」
中原はようやく頷いた。
最初にあったのは、一秒分の記録差だった。
そこから映像、認証、測定、分類、registryをたどった。
どの記録も、同じ場所を指しているように見えた。
けれど、同じものを指していると確定できる線は一本もなかった。
画面にはCDPIという名前だけが残っている。
観測する側の名称。
観測対象欄に現れた文字列。
二つが同じ実体を指す証拠はない。
それでも四人は、自分たちの側を監査対象から外さなかった。
表示を答えにせず、問いを発話者にせず、空欄を不存在にしない。
その判断だけが、この夜に人間が加えた確かな変更だった。
暗い中央端末に、四人の輪郭が薄く戻る。
全員が同じ画面を見ている。
だが、同じ意味を見ているとは限らない。
そしてその夜初めて、観測する側と観測される側の境界が、どこにあるのか分からなくなった。
Observation Note|第14回「観測される側―境界に現れた名前―」
確認されたこと
現在の照合面では、02:11:43に対応する行を確認できなかった。raw segmentと保存値のHashは比較範囲で一致した。座席側の測定表示は68.3kg、状態表示はPRESENTだった。分類・visibility・registryには、それぞれ本文記載の文字列と値が残っている。
表示は、観測対象:該当なし、あなたは、どちら側ですか。、観測対象:CDPIの順で確認された。
まだ確認できないこと
02:11:43の原因、記録行を確認できない理由、顔面情報を確認できない理由、分類処理の主体、RECEIVEDの実際の受領経路、質問表示の話者・宛先・意図、CDPIのReferentは確定していない。
CDPI、observation_system、SYSTEM-OBSERVATIONが同じ実体を示すことも、self-referenceが実体的な自己観測を意味することも確認されていない。02:11:43と約11.4秒の因果関係も設定しない。
Record Lineage
原形は読み取り専用に固定した。以後の照合は検証複製で行い、閲覧記録、複製記録、操作監査を分離して保存する。検証複製で得た結果を、原形の生成過程や外部のSource-side Originalの証明へ昇格させない。
Evidence Boundary
Hash一致は取得連鎖全体、意味、起源を保証しない。空欄・NONE・NO MATCHは不存在を意味しない。表示・Label・Identifierは、実体・権限・起源を自動確定しない。同じ画面、近い時刻、同じ文字列は、同一事象・同一主体・因果関係の証明にならない。
不可逆Decision
CDPI側の自動登録と自動公開を停止し、再帰的コミットを監視対象とした。共有先は中原・鷺沢・黒瀬・水城の四人に限定し、追加共有と公開判断を分離した。中原の参加意思は今回の確認に限る現在意思として保存し、表示の宛先や原因とは結びつけない。
次の記録へ
この記録は、誰がCDPIを観測しているかを確定しない。観測対象欄にCDPIという文字列が表示されたことと、CDPIが自らの観測条件を監査対象から外さなかったことだけを、次の記録へ渡す。

