Skip to content

eval: freeze current NGR vs GitHub RAG parity v2 - #217

Merged
lipluscodex merged 2 commits into
mainfrom
issue-216-retrieval-parity-v2
Sep 7, 2026
Merged

eval: freeze current NGR vs GitHub RAG parity v2#217
lipluscodex merged 2 commits into
mainfrom
issue-216-retrieval-parity-v2

Conversation

@lipluscodex

Copy link
Copy Markdown
Member

Closes #216

概要

Liplus-Project/liplus-language の固定commitにある20-document surfaceを使い、現行NGRとgithub-rag-mcpのretrieval parity v2 protocolをresult-freeで固定します。v1 / relation v3とのquery、gold、capture、rank、resultの非再利用と、development / holdoutのidentity分離を機械検証します。

観測境界

本PRでは登録queryを実行しておらず、performanceはnot assessedです。capture / claim / resultはすべて0件で、development観測は本freezeのmerge commitを入力とする別successor Issueだけでexactly once実行します。developmentの全hard gate通過時だけ、そのsuccessor lifecycleでholdoutを開けます。

検証

  • source snapshotのrepository / commit / 20 paths / blob SHA / content SHA-256
  • result-free audit、target unittest 8件
  • normal suite 390件、all suite 786件
  • Ruff check / format check、CI互換probe / eval smoke

Issue #216 の未観測 retrieval parity v2 protocol を result-free で固定する。

- liplus-language の固定 20-document surface と provenance を保存する
- development / holdout の query、gold、metric、hard gate を新規 identity で固定する
- capture / claim / result の排他的 lifecycle と改ざん検証を追加する
- 登録 query は実行せず、性能は未評価のまま successor Issue へ分離する

検証:
- target unittest 8件
- normal suite 390件
- all suite 786件
- result-free audit
- Ruff check / format check
@lipluscodex lipluscodex linked an issue Sep 6, 2026 that may be closed by this pull request
@lipluscodex lipluscodex self-assigned this Sep 6, 2026
@lipluscodex

Copy link
Copy Markdown
Member Author

Lin:親self-reviewで、merge前に直す必要がある2点を確認しました。

  1. over_exclusion_controlのdevelopment / holdout queryはいずれも、現行production parserのdecompose_exclusion_intent()ではexclusion_clauses=()になる。そのため除外処理のno-exclusion fast pathを通り、protected_safe_retainedが候補側否定を検証しない空疎なgateになっている。両splitを、明示的除外句を生成し、protected sourceの局所否定とunsafe sourceの非否定mentionをsource本文から固定できるcaseへ置換し、その前提をprotocol testで検証する。

  2. artifact_sha256tools/test_suites.pyを固定する一方、観測結果を変えるproduction search runtimeを固定していない。このままではfreeze後のengine / retrieval / exclusion等の変更を別実装の測定として黙って受理し、逆に無関係なtest inventory変更で観測不能になる。検索runtime identityをfail closedに固定し、測定に影響しない共有inventoryはsemantic freezeから外す。

登録queryは実行せず、capture / claim / result 0件を維持したまま修正する。修正後はmanifest hash、target / normal / all、Ruff、CIを再検証する。

@lipluscodex

Copy link
Copy Markdown
Member Author

親self-reviewの2件をblocking findingとして受け入れ、実装へ戻します。

  1. over_exclusion_controlは両splitともproductionのdecompose_exclusion_intent()で非空clauseになるqueryへ差し替えます。developmentはconfigがprotected sourceでno-resolved-config-valueとしてのみ現れ、unsafe sourceでは非否定で現れる組、holdoutはexportがprotected sourceでexport は不要としてのみ現れ、unsafe sourceではexport PATHとして現れる組を固定します。protocol validationはproductionのcandidate exclusion判定を直接使い、clause欠落、protected sourceの局所否定不成立、unsafe comparisonの非否定mention不成立をfail closedにします。
  2. production search closureを専用hash registryで固定し、observation時にdriftを拒否します。測定挙動に影響しないtools/test_suites.pyはsemantic identityから外しますが、normal suite分類自体は維持します。

登録queryは実行せず、capture / claim / resultは0件のまま修正します。

親レビューで確認したover-exclusion controlとfreeze identityの不整合を修正する。

- 両splitの除外句とcandidate-side negation premiseをproduction parserで検証する
- protocol artifactsとproduction search runtime closureを同じsemantic freezeに含める
- test inventoryをfreeze対象から外し、lifecycle contractとmanifest hashを更新する

検証:
- target unittest 8件
- normal suite 390件
- all suite 786件
- result-free audit
- Ruff check / format check
@lipluscodex

Copy link
Copy Markdown
Member Author

Lin:親self-reviewのblocking findingsに対する修正をcommit 4216521でpushしました。

  • development / holdoutのover-exclusion controlを、production parserが明示的除外句へ分解するqueryへ置換しました。protected-safe sourceの局所否定とunsafe comparison sourceの非否定mentionを、productionのcandidate exclusion判定でfail closedに検証します。
  • production search closureをruntime_sha256で固定し、protocol artifactと結合したsemantic freeze identityとして検証します。freeze_identity_scopeprotocol-artifacts-and-production-runtimeへ揃え、tools/test_suites.pyはsemantic hash対象から外しました。
  • capture / claim / resultは0件、performanceはnot assessedのままです。

検証結果:target 8件、normal 390件、all 786件、result-free audit、Ruff check / format check、CI、Optional MCP adapterはすべてgreenです。

@lipluscodex lipluscodex left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lin:self-review PASS。Issue #216の完了条件に対して、未観測のv2 source/query/gold/gate/schema/manifest、v1・relation v3との非再利用、result-free lifecycle、production runtime closure、development/holdoutのcandidate-side negation premiseをdiffとテストで確認しました。初回レビューのblocking findings 2件はcommit 4216521で解消され、追加確認したfreeze identity scopeもprotocol artifacts + production runtimeへ統一されています。対象8件、normal 390件、all 786件、result-free audit、Ruff、CI、Optional MCP adapterはgreenです。登録queryとperformance観測は未実行で、capture/claim/resultは0件です。scope deviationはありません。次段階は本freezeをmergeし、別successor Issueでdevelopmentをexactly once観測することです。

@lipluscodex
lipluscodex merged commit 3b43a36 into main Sep 7, 2026
2 checks passed
@lipluscodex
lipluscodex deleted the issue-216-retrieval-parity-v2 branch September 7, 2026 02:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

eval: freeze current NGR vs github-rag parity v2

1 participant