feat: add independent retrieval channels - #20
Merged
Conversation
BM25 lexical laneとanchored edge-only relation laneを独立trace IDで返し、trace provenanceによるfeedback帰属を追加する。D1 split、4-case hard gate、audit、manifest、testsを結果観測前に固定する。
freeze後のdevelopment一回評価を記録する。12 gate中10件が通過したが固定rank controlとpath shape gateが不合格のため、currentを維持してholdoutを未開封とする。
lipluscodex
commented
Aug 2, 2026
lipluscodex
left a comment
Member
Author
There was a problem hiding this comment.
Lin: 親エージェントの構造レビューを完了しました。
今回の判断
ブロッカーなし。dual-lane APIは加算的・実験的な機能として承認します。ただしdevelopmentは10/12 gateのためvalidated扱いにせず、既存search()をdefaultに維持します。
今回確認した事項
- Issue #19の要求、PR diff、freeze commit、result commit、CIを独立照合
- freeze commit
0404e9b607f0e2722bf5fe6546de859b3fa7a200にはdevelopment / holdout resultが存在しない - result commit
f5dac016263306d9249bd1ead980d019a2379863では固定済みcore、runner、manifest、fixture、gold、provenance、contamination auditが不変 - 開発結果を独立再生成し、可変trace / feedback IDを正規化後に保存済みJSONと一致
- development gate不合格時のholdout実行はexit 1で拒否され、holdout resultも未生成
- 70 tests pass、CI success、worktree clean、diff check clean
- lexicalはBM25順位のみ、pathなし、独立trace ID
- relationはentryをseed選択だけに使い、edge-only positive activationをraw activation順で返す
- combined hits / final score / single winnerを返さない
- lexical successはedge不変、relation successは保存済みcredited pathだけを強化
- cross-lane node / trace誤用をfeedback記録前に拒否
- 既存
search()の挙動とdefaultを変更しない
結果
- 10/12 hard gates通過
- intended-lane MRR 0.875、Hit@1 0.75
- relation MRR: BM25 0.5 → relation lane 1.0
- union coverage 1.0、agreement rate 0.5
- lexical / relation parity、trace分離、feedback帰属は成立
後続課題
- direct targetの固定queryはisolated BM25自身がrank 2で、rank-1 control gateを満たさなかった。query/corpus側の限界として、より大きい別version fixtureで再評価する。
- relation pathは実際に取得・強化できたが、frozen matcherがendpoint/typeだけのgoldとweight/factualityを含むobserved stepをdict完全一致したためgate falseになった。今回のfreezeは変更・再実行せず、matcherの投影規則を別versionで修正する。
- dual traceの各保存は個別transactionであり、二trace全体のall-or-nothingは今後の堅牢化候補。
受容する制約
各split 2 node / 1 edgeで一般性能を判断できません。今回は構造検証として、dual-lane APIの追加、10/12 gate、holdout未開封、validated表記なし、default変更なしを受容します。
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #19
BM25 lexical laneとanchored edge-only relation laneを独立trace IDで返し、trace provenanceに基づくfeedback帰属を追加しました。
凍結後のdevelopmentは10/12 gate通過でしたが固定gate不合格のため、既存defaultを維持してholdoutは未開封です。