Skip to content

eval: make soft-start snapshot comparison baseline-aware #106

Description

@lipluscodex

目的

snapshot comparison v1 の凍結失敗を保持したまま、persisted feedback evidence を持つ local database に適用できる baseline-aware successor v2 を新規 result-free protocolとして固定する。このissueはprotocol freezeまでを扱い、registered development / holdoutを生成しない。観測はfreeze merge後の別issue / PRで一度だけ実行する。

前提

  • eval: compare soft-start feedback on a fresh snapshot clone #104 / PR eval: compare soft-start feedback on snapshot clones #105 のv1 developmentは7 hard gate中6 pass、policy-boundariesのみ不合格でholdout未実行、local cutover不支持として凍結した。
  • v1対象edgeは初期 evidence count 1 を持ち、q3/s1はfresh used_2でquorumへ到達した。soft-start固有gateはpassした。
  • #105はresult-free commitとobserved commitを同一PRでsquash mergeしたため、main上ではmanifest初回追加commitとobserved output追加commitが同一commitへ畳まれた。v1の「初回追加commitではoutput不在」というtest assertionはpost-squash historyから再証明できない。
  • v1 protocol / gate / result / audit bytesと解釈を変更、再実行、再集計しない。

v1から切り替える軸

  • v2はnew namespace、fresh transaction-consistent snapshot、new registered outputsを使い、v1 snapshot/resultを入力にしない。
  • 各case/armのbaselineでcredited edgeのweight、reinforced count、evidence count、confirmation countを登録する。
  • q3/s1の期待first-mutation eventは max(1, quorum - initial_evidence_count)。initial countがquorum以上ならfresh used_1、未満なら残りquorum到達時に発火する。以後のfresh evidence発火も保存する。
  • baseline stateとscheduleから期待checkpointを一意に導出できない、event budget内にquorum到達とquorum後発火を観測できない、v1 observed development edgeを再利用する、case capacityが不足する場合はfreeze前preflightで停止する。
  • baseline contract不一致はsoft-startの不支持へ混ぜず、protocol-integrity failure / 判定不能とする。
  • phase provenanceをsquashで失わないため、#106はresult-free artifactだけをmergeし、observed outputは後続issueの別PRで追加する。

固定armと値

  1. control
  2. used_q3_s1
  3. confirmed_r05_s1
  4. soft_start_r025_r05_s1

soft-start ratio 0.25、confirmation decay 0.5、sibling normalization 1.0を観測前に固定する。

Result-free / privacy境界

  • source DBはread-only URI + query-only + SQLite backup APIでfresh private snapshotへ一度だけ複製し、source前後hash一致とsnapshot integrityを要求する。
  • source DB、live config、v1 private snapshotを変更しない。snapshot本体、node本文、absolute private path、credentialをpublic artifactへ含めない。
  • fixture、case selection、initial-state derivation rule、schedule、metric、gate、schema、exclusive writer、verifier、registered output pathをresult生成前に固定する。
  • placeholder round-tripとnegative probeはtemporary outputだけを使い、registered outputへprobeを書かない。
  • PR merge時点でdevelopment / holdout outputは不在。result-free audit、manifest first-addition commit、testsが不在を再証明する。

v1 post-squash verifier correction

  • v1のfrozen protocol / manifest / fixture / schedule / gate / result-free audit / observed result bytesを変更しない。
  • post-squash mainで成立不能になった「manifest first-addition commitでregistered output不在」のtest assertionだけを、検証可能な境界へ修正する。
  • v1 result-free auditがfreeze時の不在を記録したfrozen evidenceであること、current mainではdevelopment observed verifierが再計算一致しholdoutが不在であること、同一PR squashではphase absenceをGit first-addition commitから再証明できないことをdocs/testに明記する。
  • v2以後はfreeze / observationを別issue・別PRへ分離して同じ欠落を再発させない。

Hard gate

  1. snapshot / protocol / case / privacy / placeholder replay integrity。
  2. baseline-aware q3 boundaryの導出とpreflight。
  3. confirmed-only boundary。
  4. soft-start schedule。
  5. learning latency / final quality。
  6. corrected provisional bound。
  7. lexical / zero-hop / direct / reverse / unrelated safety。
  8. mutation locality / source isolation / deterministic replay。

完了条件

  • baseline-aware v2のresult-free artifacts、runner/verifier、tests、docsをcommit / pushしCI green。
  • registered development / holdout resultは存在しない。
  • v1 frozen bytes不変、post-squash verifier correction後にfull suite green。
  • full core、optional MCP、eval smoke、frozen verification、CIがgreen。
  • IssueをcloseするPRはfreezeだけ。観測・cutover・live config/database変更を含まない。

対象ファイル

  • 新規v2 evaluation module / tool / tests / fixtures / manifest
  • v1 post-squash verification assertionと説明
  • docs/ / README.md / docs/Decision-Structure.md

Related

Metadata

Metadata

Assignees

Labels

enhancement新機能・改善要望ready本文が実装開始できる形まで収束している状態。ただし更新は継続可能review-pending実装完了後、review または次段階の判断待ち

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions