Skip to content

eval: observe real-task feedback shadow batch #89

Description

@lipluscodex

目的

Issue #97 / PR #98でresult-freeに再固定したreal-task feedback shadow protocol v3を、protocol merge後に到着する将来のeligible Codex taskへ一度だけ適用し、used_q3_s1confirmed_r05_s1のnon-serving shadow batchを観測する。

このIssueは実タスクpacketのappend-only capture、固定batchのone-time replay、final aggregateと限定的な支持・不支持・判定不能の記録だけを扱う。serving retrieval、library/MCP default、local registration、remote deploymentは変更しない。

検証済み前提と固定入力

  • 使用するprotocolはIssue bug: separate protocol freeze from observation registry #97 / PR fix: separate protocol freeze from registry lifecycle #98 / merge commit d2b898bfc66c2105cd2b8bd4927683bb52979bcdreal-task-feedback-shadow-v3だけとする。
  • PR #98は上記commitとしてmerge済みで、v2のeffective runtime config・search surface・capture timestamp・exact semantic replayを継承しつつ、別protocol ID / registered path、実repository lifecycle audit、snapshot-free batch invariant、atomic registry lockが観測前に固定されている。v1/v2 artifactはbyte不変で、v3 registered packet / observed resultは存在せず、accepted slotは0、T0と30日窓は未開始である。
  • PR fix: separate protocol freeze from registry lifecycle #98 merge前に開始した現在task、Issue #85のcontrolled result、development/holdout artifactを実タスクpacketとして遡及利用しない。
  • protocol、arm config、schema、metric、gate、stop ruleを観測結果に応じて変更しない。

初回観測のfail-closed記録

Issue #95 / PR #96ではv2 merge後の新規taskをslot 1候補としてcaptureし、root packetとconfirmed correction自体はcanonical/exclusive registrationとfrozen snapshot exact verifierを通した。しかしv2のresult-free testがfuture packet registryにも永久空を要求することが判明し、protocol integrity gate Iを保ったままCIをgreenにできない。

観測後にv2 test / manifest hashを書き換える救済は行わない。PR #96は未mergeでcloseし、#95のquery、trace、snapshot、source-use、outcome、packetを後継protocolや再開後batchへ再利用しない。accepted slotは0、T0と30日窓は未開始のままとする。Issue #97 / PR #98は観測前にmerge済みであり、PR #98 merge後に到着する次の新しいeligible taskを待って本Issueを再開する。

Inclusion、snapshot、観測窓

  • protocol merge後かつ本Issueの事前登録完了後に到着する最初のeligible taskをslot 1とし、以後eligible taskを到着順のsequential slotへ登録する。結果を見た選別、slot skip、遡及登録を禁止する。
  • slot 1 capture直前を観測開始T0とし、その時点でSQLite snapshotを一度だけfreezeする。全packetは同一snapshot SHA-256を共有し、snapshot差、slot欠落、順序差をfail closedにする。
  • 最大12 eligible tasks、観測窓30日とする。slot 12のexclusive capture完了時刻とT0 + 30日の早い方でcaptureを停止する。
  • 停止後の延長、task置換、追加captureを行わない。pending outcomeはslotを保持し、後続taskで置き換えない。
  • capture中の訂正はprotocolどおりsuperseding packetで表し、既存packetを編集しない。

Outcome evidence

objective outcomeはprotocolで固定した次の四kindだけを受理する。

  • test_passed
  • citation_verified
  • review_accepted
  • rollback_or_correction

Codexの自己評価だけをobjective outcomeにしない。pendingはslotと監査記録を保持するがprimary outcome集合から除外する。corrected / rolled_backからnegative reinforcementやweight rollbackを追加しない。

Evidence sufficiency

各credited edge identity eについて、duplicate/idempotent replayを除くdistinct eligible slotのused evidence数をu(e)とする。

H = |{ e : u(e) >= 3 }| >= 3

final stop時にHが偽なら比較はinconclusiveで終了する。taskを追加、置換、延長してsufficiencyを救済しない。candidate支持判定にはさらに、objective outcome集合にconfirmedが1件以上、correctedまたはrolled_backが1件以上あることを要求する。

固定metric

primary outcome集合Pはfinal stop時にobjective evidenceが成立したnon-pending packet、CはそのうちconfirmedNcorrectedまたはrolled_backとする。arm a、packet pについて、used nodeのpost-event rankをr_a(p)、top-kのused node以外のentry/exit数をchurn_a(p)とする。used nodeがtop-k外ならrankはprotocolどおりlimit + 1で扱う。

  • False reinforcement: F_a(N) = Nでcredited edgeへの正のactual_deltaが発生したpacket数。
  • Confirmed path限定mutation: Cの各packetでconfirmed_r05_s1の正のmutation edgeがpacketのfrozen credited path edge集合の部分集合であること。
  • q3比retrieval non-regression: 全p in Pr_confirmed(p) <= r_q3(p)、かつMRR_confirmed(P) >= MRR_q3(P)MRR_a(P) = sum(1 / r_a(p)) / |P|
  • Non-target churn: Churn_a(P) = sum(churn_a(p) for p in P)

secondaryは取得できたtaskのtool_callsresearch_counttoken_countelapsed_secondsだけを保存する。未取得値はnullとし、欠損補完、task間の効率改善推測、primary gateへの利用を行わない。

Final gate

Protocol integrity gate Iは、全packetのcanonical/exclusive/append-only検証、同一snapshot hash、sequential slot、二arm同一入力、exact semantic replay、idempotency、determinism、source snapshot不変がすべて成立した場合だけ真とする。

support

次をすべて満たす場合だけ、frozen batch上でconfirmed policyを支持する。

  1. IHが真で、|C| >= 1かつ|N| >= 1
  2. F_confirmed(N) = 0
  3. Cの全mutationがfrozen credited path限定で、少なくとも一つのconfirmed packetに正のcredited-path mutationがある。
  4. q3比retrieval non-regressionが全packet条件とaggregate MRR条件の両方で成立する。
  5. Churn_confirmed(P) <= Churn_q3(P)
  6. strict comparative signalとして、F_q3(N) > 0、または一つ以上のp in Pr_confirmed(p) < r_q3(p)、またはChurn_confirmed(P) < Churn_q3(P)の少なくとも一つが成立する。

これはfrozen observed batch内の限定supportであり、default adoption、production quality、他repository/taskへのgeneralizationを意味しない。

non-support

IHが真で|C| >= 1かつ|N| >= 1だが、上記support条件2-6のいずれかが偽ならnon-supportとする。全metricと失敗条件をそのまま保存し、gate、task、snapshot、packetを変更しない。

inconclusive

停止時にHが偽、CまたはNが空、またはIを証明できない場合はinconclusiveとする。pendingが多いこと、snapshot/input不整合、再現不能をsupport/non-supportへ読み替えず、追加taskや再実行で救済しない。

Captureとfinal aggregate

  • packet captureはprotocolのatomic registry lockとexclusive createだけを使い、append-onlyとする。
  • development/holdout packet、Issue #85結果、既存frozen/observed artifactを再利用、変更、再実行、再集計しない。
  • stop到達後にeffective registryをslot順で一回だけreplayし、final aggregateをexclusive createする。
  • final aggregateの再実行、上書き、再集計、field reorder、結果に応じた解釈gate変更を禁止する。
  • raw machine-readable packet/resultと、support / non-support / inconclusiveの一つだけを記録する。

完了条件

  • stop rule到達までeligible taskを到着順にcaptureし、全slotと同一snapshot hashを監査できる。
  • final aggregateを一回だけ生成し、packet registry + snapshotからexact semantic verificationを通す。
  • primary metric、nullable secondary field、evidence sufficiency、final gate verdictを保存する。
  • full suite、placeholder protocol verification、demo/eval smoke、optional MCP、CIがgreenである。
  • serving default、local registration、remote deployment、既存frozen/observed artifactを変更しない。

想定変更箇所

  • artifacts/real-task-feedback-shadow-v3/packets/ - append-only eligible task packet
  • artifacts/real-task-feedback-shadow-v3/observed/ - one-time final aggregate
  • docs/real-task-feedback-shadow-observation.md - frozen batch内に限定した解釈
  • tests/test_real_task_shadow_observation.py - immutable result、exact verification、gate再計算

Related

Metadata

Metadata

Assignees

Labels

enhancement新機能・改善要望ready本文が実装開始できる形まで収束している状態。ただし更新は継続可能waiting外部依存待ち(CI / dependent issue / 環境)。pause 状態

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions