第25話:表示の裏(ロウ・ログ)
保管庫のロックは、音がしなかった。
扉が閉まった瞬間、ただ“外の湿り”が切れて、乾いた空気だけが残る。紙と金属の匂いが均一になり、息を吐いた音さえ、自分の耳に戻ってくる。
ミナト・アヤメは一メートルの世界で、台の前に立っていた。
足元の円は、冷えた石畳に溶け込んで見えない。見えないから余計に嫌だ。見えない拘束は、いつでも“当然”に見えるから。
【Zone restriction: 1m】
【Observer role: active】
【Permission: READ (restricted)】
【EXEC: denied】
【WRITE: denied】
【Log streaming: enabled】
「窓は、予定通り開く」
影のない声が言った。M-01。
M-02は少し離れて立ち、青い光の密度を変えないまま、こちらの呼吸だけを数えている気配がする。
エドが紙束を抱え直し、台の上へ視線を落とした。
リオは保管担当の印章札を指で撫で、落ち着かない指先を抑えている。
レイは扉の外側――というより、“外”の概念が薄いこの場所で、気配だけを立てていた。
「開始時刻は」
エドが問う。
「05:10」
M-01が答える。
数字が出ると、恐怖が少しだけ小さくなる。数字は握れる。握れるものは、手順に落とせる。
その瞬間、黒い板に淡い光が走った。
窓が開く合図みたいに、光が一度だけ呼吸をする。
【Review window: OPEN】
【Token: READ-WIN / duration 180s】
【Witness required: MASK-M01 / VAULT-RIO】
【Subject: MINATO-AYAME (READ only)】
三分。
短い。短いほど、濃い。
濃い時間は、嘘が漏れる時間でもある。
「条件は?」
アヤメが短く言うと、リオが頷いた。
「立会いは揃ってる。ロック中でも閲覧はできる。出力はできない。……だから、目で焼き付けろ」
「焼き付ける。ログ取る」
アヤメは手帳を開いた。触れない代わりに、紙へ刺す。紙は遅い。でも、消しにくい。
エドが板に指を向ける。指先が触れる直前で止まる。
触れたら、手順が変わる。だから触れない。
代わりに、M-01が操作する。
「対象:EV-2037。表示範囲:チェーン・オブ・カストディ、封印適用ログ、更新履歴、閲覧要求キュー。内容は非表示」
「非表示はいい」
アヤメは言った。
中身がどうでもいいわけじゃない。だが今は、“触った形”の方が強い。
板の表示が切り替わる。
乾いた光の行が並び、時間が縦に落ちてくる。
【EV-2037】
【Receipt issued: 18:42:09】
【Seal reserved: 18:40:52】
【Seal applied: 18:41:03】
【Stored: B-07】
【Access: none】
「……ある」
アヤメの喉が鳴った。封印の逆転。
封印の適用が、受領より先に存在している。消されていない。まだ“生きている”。
「“Access: none”の定義を出せ」
エドがすぐに刺す。
「保管スロットへの直接アクセスを指す」
M-01の答えは淡々としていた。
「表示やキューの閲覧は?」
「別扱い」
「別扱いなら、別扱いのログを出せ。閲覧要求キューを」
M-01が操作する。行が増える。
【Queue】
【Request: MASK-M02 / 18:43:12 / scope: EV-2037 display】
【Status: pending】
【Auto-expire: 19:13:12】
【Result: none】
「……消えてない」
アヤメは息を吐いた。
キューは存在していた。期限切れで終わり、“結果なし”。
だが問題は別だ。封印が先に貼られた理由が、まだ“形”になっていない。
「封印適用が先に走った原因ログ」
アヤメが言うと、リオが頷いた。
「そこが穴だ。そこを見ろ」
M-01が淡々と告げる。
「原因ログは内部。表示範囲外」
「範囲は拡張申請済み」
エドが紙を持ち上げた。リオの署名がある。
“外側で壊される前提”で通した手順の紙だ。
リオが言い切る。
「更新履歴の深い層、出せる」
保管庫の乾いた空気に、現場の湿りが少し戻る。
M-01が一拍置き、板の表示がさらに沈んだ。
沈むほど、見えるのは“人の言葉”じゃなく“機械の言葉”になる。冷たい言葉。だが冷たい言葉は、言い訳をしない。
【Custody operations】
【18:40:59 Pre-seal staging: ENABLED】
【Operator role: audit-support】
【Unit: MASK-M02】
【Scope: EV-2037】
【Reason: congestion handling】
背筋が冷たくなった。
M-02。封印の先行適用――プレシール・ステージング。
受領前に封印を“準備状態”で適用できる手順。そんな手順があるなら、矛盾は作れる。矛盾は疑いになる。疑いは隔離になる。
エドが即座に言った。
「プレシールの許可規定を出せ」
「混雑時の例外手順だ」
M-01が答える。例外。便利な例外は、悪用される。
アヤメは息を整え、感情ではなく順序で言った。
「例外手順なら、記録の“二重”が必要。例外は必ず追加立会いがいる。――M-02が単独で実施できるのはおかしい」
リオが眉を寄せる。
「単独でできるのか」
「ログはそう言ってる」
アヤメは板を見たまま手帳に写す。
時刻。用語。実行ロール。ユニットID。
書くほど、喉の乾きが薄れる。形が増えると、噂が痩せる。
M-02が、そこで初めて声を出した。
「プレシールは保管庫の負荷を下げるための手順だ。問題はない」
エドが冷たく返す。
「問題は、“観測対象に相関が付与された直後の証拠”に対して、証人が同一ユニットであること」
「証人が同一ユニットだと、手順の正当性が揺らぐ。――利益相反だ」
リオの低い声が重く落ちた。
港の人間の口から出る“利益相反”は、妙に現実味がある。現実味は規定に通る。
M-01が板を進める。
例の“隠れた更新”が出た。
【Patch operations】
【05:02:14 Rule change: proximity threshold 1m -> 2m】
【Applied by: —】
【Channel: silent】
【Display scope: custody log】
同じ時刻。
同じ“—”。
そしてチャネル:サイレント。
アヤメの耳の奥で、笑わない声が鳴りかけて、すぐに消えた。
ここは箱だ。箱の中で笑えば響く。響けば証拠になる。だから相手は、笑いさえ残さない。
エドが、言葉を削って刃にする。
「“Applied by: —”は規定違反だ。実行者が不明な更新は、監査手順に存在してはいけない」
「存在している」
アヤメが言った。存在しているなら、それは監査の外から来た手順。外は、センセイの匂いだ。
リオが唇を噛む。
「サイレントって何だ。表示だけ変えるってことか」
「表示範囲も同時に触られてる」
アヤメは手帳のページを指先で押さえた。
05:02:14――表示範囲の更新。近接条件の更新。
同時刻の一致は偶然じゃない。狙っている。
M-02が淡々と言う。
「サイレントは、閲覧者の混乱を避けるための措置だ」
「混乱を避けるのは現場の手順だ」
エドの声が立つ。
「監査は混乱を記録する。混乱を消すな」
その瞬間、板の光が一瞬だけ揺れた。
消えかける。表示が白くなる。
“見せない”が来る。
アヤメの視界が赤に寄る。
【Admin-tier trace: strong】
【Action: conceal attempt】
【Target: patch operations display】
【Counter: witness lock】
立会いロック。
リオの影があるから、今は消し切れない。人間の影が、ここで効く。
「リオ、言って」
アヤメが短く言うと、リオが頷き、声を張った。港の頭領ほどじゃないが、現場の強さが混ざる声。
「表示が揺れた。今の揺れは記録しろ。――消したら証拠隠滅だ」
保管庫の乾いた空気が、一瞬だけ割れた気がした。
割れた隙間から、見えない怒りが漏れる。怒りは形を崩す。崩れた形は、証拠になる。
板の表示が耐え、行が残る。
残った行の端に、さらに小さな字が浮いた。
【Channel details: MAGINET backbone】
【Auth: elevated】
【Operator: unknown】
マギネット。世界の下にある基盤。
そこから来た更新。監査のロールじゃない。保管庫の手順じゃない。もっと下、もっと広い場所から差し込まれている。
アヤメの喉が熱くなった。熱いのに、手は冷たい。
冷たい手で手帳に書く。書けば、熱が言葉になる。言葉になれば、殴れる。
「……これが、センセイの手順」
M-02の光が、わずかに硬くなった。
硬さは図星の匂い。だが名指しはしない。名指しした瞬間、こちらが悪者になる。
だから、手順で切る。
エドが一歩前に出る。
「結論。
一、EV-2037に対し、M-02はプレシールを単独実施し、証人にもなっている。
二、05:02:14のサイレント更新は、マギネット基盤チャネルから行われ、実行者が不明。
三、近接条件の改変により“廊下事案”の相関増加は不当。
この三点により、観測対象の隔離と制限強化の合理性は失われた。――制限を戻せ」
戻せ。
強い言葉は、規定の刃の上に乗せないと滑る。
エドの言葉は、刃の上に乗っていた。
M-01が淡々と応答する。
「制限の変更は審査が必要」
「審査の開始時刻を記録しろ」
「記録する」
「担当ロールを」
「記録する」
「期限を」
「――暫定で、戻せ」
リオが割り込んだ。
現場の人間が“期限”を求めると、規定は逃げにくい。逃げにくいから、相手は暫定を出す。
板の端に、淡い表示が出た。
【Zone restriction update: pending】
【Effective: immediate】
【1m -> 2m】
【Duration: until audit completes】
二メートル。
たった一メートル広がるだけで、世界が倍になる。
倍になれば、できる手順も増える。声の届き方も変わる。
アヤメは息を吐いた。
勝った、とは言えない。
でも、折れかけた刃を、いったん鞘に戻した。そんな手触り。
M-02が静かに言った。
「観測対象の相関はまだ残る。油断するな」
「油断しない」
アヤメは即答した。
油断しないのは、相手のためじゃない。自分が生きるためだ。
窓の残り時間が減っていく。
【Review window remaining: 41s】
エドが最後の一手を打つ。
「ロウ・ログの“要約値”を出せ。表示が改変されても、要約値が一致すれば整合が取れる。――ハッシュだ」
ハッシュ。
表示が壊されるなら、表示の下の骨を掴む。
M-01が一拍置く。短い一拍。規定に通る合図。
【Raw log digest: EV-2037】
【Digest: 7F-A2-11-09-3C】
【Witness: MASK-M01 / VAULT-RIO】
「書け」
エドが低く言い、アヤメは手帳にそのまま写した。
指が震えない。震えないのは、怖さが形になったからだ。
窓が閉じる。
【Review window: CLOSED】
均一な光が少しだけ薄くなる。
三分の濃い時間が終わり、乾いた空気だけが残る。
だが、残ったのは空気だけじゃない。
紙に残った時刻。
リオの署名。
プレシールのログ。
サイレント更新のチャネル。
そして、ロウ・ログの要約値。
消されても、消えにくい骨。
扉の向こうで、レイが短く言った。
「……外、動く」
外。港。
窓の内側で得た骨を、外で盾にする時間が来る。
盾にしなければ、噂がまた燃える。噂が燃えれば、センセイの授業が続く。
アヤメは二メートルになった世界で、ほんの少しだけ足を動かした。
足が動くだけで、涙が出そうになる。狭い世界は、心まで狭くする。広がると、心が呼吸を思い出す。
そして――視界の端に、最後の小さな行が浮いた。
誰にも見えない、アヤメだけの行。
【Notice: language layer update scheduled】
【Effect: UI-readable errors may degrade】
【Time: next sunrise】
【Reason: “stability”】
安定性。
また、優しい言葉。
優しい言葉で、武器を奪う手順。
アヤメは手帳を抱きしめ、喉の奥で呟いた。
「……ログ取ろ。読めなくなる前に、ロウ・ログの骨格を、改ざんできない形で残す」
乾いた保管庫のどこかで、笑わない声が、ほんの少しだけ愉快そうに揺れた気がした。
「……いいですね。じゃあ、次は“読む前提”を壊しましょう」
振り返っても、誰もいない。
でもアヤメは、怯え方を少しだけ変えられる気がした。
読めなくなるなら、紙に残す。
表示が壊れるなら、要約値で縛る。
窓の外側が壊れるなら、壊れた瞬間を掴む。
二メートルの世界で、アヤメは一歩、前に出た。
ここまでお読みいただきありがとうございます。
続きが気になりましたら、ブックマークや★評価をいただけると、とても励みになります。




