[projection-agent] Publish NFugu JudgeEval codex fuse follow-up - #7
Conversation
|
Audit result: blocked for merge. PR #7 fixes stale result reuse and adds useful CodexDouble/CodexFuse coverage, and the local tests/smokes pass. However the CodexFuse summary/report semantics are still misleading when the conservative selector keeps C0. Blocking issue
Likely source
Expected fix
Audit validation already run
I did not merge the PR because the generated eval summary can currently claim CodexFuse selected C1/F1 when the actual final selected answer was C0. |
There was a problem hiding this comment.
Pull request overview
This PR updates the NFugu JudgeEval v0 harness to support CodexDouble/CodexFuse follow-up semantics, including signature-aware caching to prevent stale result reuse and clearer candidate-level reporting when the “condition winner” is actually a specific candidate (C0/C1/F1).
Changes:
- Added
--conditionsselection logic withcodex_double/codex_fusesupport and enforcedsinglebaseline ordering. - Introduced run signatures (
run_signature) and compatibility filtering for result reuse/upserts and summary/report generation. - Added CodexDouble/CodexFuse generation + conservative selection flow, plus updated tests and docs.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
tests/test_nfugu_judge_eval.py |
Adds unit tests covering condition selection ordering, provider defaults, run signature reuse, upsert filtering, and CodexDouble/CodexFuse reporting semantics. |
scripts/run_nfugu_judge_eval.py |
Implements condition selection, run signatures, compatible cache reuse, CodexDouble/CodexFuse generation & judging, and updated summary/report outputs. |
docs/project-spec-index.md |
Updates the index entry to reflect CodexFuse sanity-check availability while NFugu remains paused. |
docs/nfugu-judge-eval-v0.md |
Documents CodexFuse/CodexDouble semantics, caching/run-signature behavior, and example invocation commands. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| "candidates": [ | ||
| { | ||
| "candidate_id": "C0", | ||
| "provider": single_row.get("models", {}).get(args.single_provider, args.single_provider), |
| "candidates": [ | ||
| { | ||
| "candidate_id": "C0", | ||
| "provider": single_row.get("models", {}).get(args.single_provider, args.single_provider), |
What changed
codex_doublereporting semantics while keeping condition-level summaries clear.Why
This is a separate follow-up slice for the dirty
D:\memsuOSworktree after the earlier docs-only and JudgeEval v0 PRs. Worker review found stale-cache semantics and misleadingcodex_doublereporting risks, so the changes were refined before publication.Validation
python -m unittest tests.test_nfugu_judge_evalpassed 15 tests.python -B scripts\run_nfugu_judge_eval.py --conditions single,codex_fuse --provider-preset mock --limit 2 --out-dir .memsuos\evals\codex-fuse-judgeeval-v0-mock-closeoutpassed.python -B scripts\run_nfugu_judge_eval.py --conditions single,codex_double --provider-preset mock --limit 2 --out-dir .memsuos\evals\codex-double-judgeeval-v0-mock-closeoutpassed.git diff --checkpassed with LF-to-CRLF warnings only.Audit
D:\atprojection-agent\staged\2026-07-02-1625-memsuos-codex-fuse-judgeeval.md019f21f9-0f8a-75e1-a82c-a45a0c4f0612codex/projection-agent-memsuos-codex-fuse-judgeeval; no default-branch merge has been performed.