CI: wire the Librarian eval harness in as a merge gate (explicit 100% + optional recall@k)
メンテナーはふだん 1 日以内に返信
@tanishbhandari11t がすでに取り組んでいます。
2026年8月30日 から。
評価
調査の方向性
scripts/evaluate_librarian.py と application/tests/librarian/fixtures/golden_dataset.json から始め、次に make test とリポジトリの CI が現在どのようにチェックを実行しているかを調べます。コミット済みの golden dataset に対して harness を実行し、明示的なスライスが 100% 未満の場合に失敗するオフライン CI チェックを追加します。オプションの recall@k チェックは後の作業であり、ライブ embeddings、データが投入されたキャッシュ DB、API キーが必要です。
索引モデルが issue の本文から書いたものです。
説明
Follow-up from @northdpole's reviews on #925 and #937 (Module C - The Librarian).
The gap: the eval harness (scripts/evaluate_librarian.py) already fails loudly on an explicit-slice regression - it exits non-zero if the "explicit" slice drops below 100% on the golden dataset. The problem is nothing in CI actually runs it. make test only runs the unit tests, so today that 100% gate exists on paper but isn't enforced. A change could quietly break the explicit slice and still merge green.
What we'd like to do: wire the harness into CI so it guards merges automatically.
- Add a small subprocess test (or a
Makefiletarget) that runsevaluate_librarian.pyagainst the committed golden dataset (application/tests/librarian/fixtures/golden_dataset.json). If the explicit slice isn't at 100%, the check fails and blocks the merge. This runs fully offline - no API key needed. - Later, extend the same setup to cover the C.1 retriever's recall@k. That part needs live embeddings (a populated cache DB + an embedding API key), so it can either be an optional CI job or a documented manual pre-merge check.
The offline explicit gate is the priority since it's deterministic and needs no credentials.
Scope: Module C. Not blocking W1–W3 - this just makes sure the harness is doing its job before the heavier ML slices (W4+) land.
- 主要言語
- Python
- スター
- 210
- フォーク
- 167
- 平均マージ
- 4日 12時間
- マージ済み PR(30日)
- 28
環境構築
このプロジェクトの開発コンテナを、あなたの GitHub アカウントでブラウザ上に起動します。
- Dockerfile または Docker Compose ファイルあり
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
OWASP/OpenCRE のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
OWASP/OpenCRE#1215 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
Map Analysis continues polling after a background job fails対応中かも @amantebriwal4321 が 4 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
OWASP/OpenCRE#1211 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 1/5 1時間未満 初心者へのやさしさ 66/100
メンテナーはふだん 1 日以内に返信
-
MCP tools return "Internal MCP tool error." when OpenCRE is unreachable or times out対応中かも @ShaanGS が 23 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
OWASP/OpenCRE#1163 · コメント 5 件 ·
メンテナーはふだん 1 日以内に返信
-
find_node_by_name endpoint does not enforce MAX_ITEMS_PER_PAGE, allowing unbounded pagination queries`対応中かも @Jeffy123-zhu が 26 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
OWASP/OpenCRE#1149 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
似ている issue
-
Unknown stop ID in slow zone data crashes post formatting and skips the rest of that day's postsオープンbackend bug tm-new-volunteer
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
transitmatters/mbta-slow-zone-bot#81 · コメント 1 件 ·
-
area:schema documentation
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
メンテナーはふだん 1 日以内に返信
-
risk:high type:ci
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 64/100
spacetelescope/rdmt-spire#49 ·
メンテナーはふだん 1 日以内に返信