Skip to content

historical freeze verification boundary

lipluscodex edited this page Aug 20, 2026 · 1 revision

Historical freeze verification boundary

Question

frozen evaluation の source hash を維持しながら、同じ repository path の正当な後続変更をどのように許可するか。

Current resolution

historical source hash は current working tree ではなく、frozen manifest が登録した source commit の exact bytes に対して検証する。

  • verifier は登録 commit と path の存在、現在HEADとのancestor関係、登録hashとの一致を fail closed で確認する。
  • current working tree の同名pathは後続のrepository stateであり、historical evidenceとして照合しない。
  • frozen manifest、fixture、packet、snapshot、observed result、登録hash、観測回数、metric、gate、解釈は変更しない。
  • successor verifier を追加するだけで旧 current-tree assertion を残さず、test discovery 全体を同じ historical boundary へ揃える。

Edges

Background

soft-start feedback candidate の実装では README、config provenance、MCP server などの正当な後続変更が必要になった。しかし既存の複数 frozen tests は、manifest が登録した path を current working tree から直接読み、そのSHA-256をhistorical source hashとして照合していた。この形では過去artifactが一切変わっていなくても、repositoryが進化しただけで凍結検証が失敗する。

登録commitを読むsuccessor verifierを新規追加するだけでは、test discoveryが旧assertionを引き続き実行するため解消しない。過去証拠の不変性と現在sourceの不変性は別軸であり、historical verificationの参照先を登録commitへ移す必要がある。

Constraints

  • CI test除外、manifest hash更新、observed artifact書換え、hashlib monkeypatchで回避しない。
  • 登録commitが存在しない、pathが欠落する、bytesが登録hashと異なる場合は失敗する。
  • LF/CRLF alternateを許す既存contractはそのliteralを維持し、本文差、mixed newline、bare CR、その他のbyte差へ拡張しない。
  • verifier correctionはcurrent working treeの後続変更を許可するだけであり、過去結果の再実行、再集計、再解釈を許可しない。
  • 同じcurrent-tree hash patternを持つfrozen verifierを全件監査し、一部だけを例外化しない。

Conclusion

freezeは過去の登録commit bytesを固定する契約であり、repositoryの同名pathを永久に固定する契約ではない。historical sourceとcurrent sourceを時間軸で分離し、過去証拠の改変だけをfail closedにする。

Related

  • Issue #101 - current-tree coupled frozen verificationの修正。
  • Issue #100 - blockerを観測したsoft-start candidate。

Clone this wiki locally