Skip to content

feat: document phase3.yaml AUROC and add synthesis-gate regression test - #63

Merged
cschanhniem merged 2 commits into
mainfrom
feat/pre-wetlab-polish-5
Jun 28, 2026
Merged

cschanhniem merged 2 commits into
mainfrom
feat/pre-wetlab-polish-5

Conversation

@cschanhniem

Copy link
Copy Markdown
Collaborator

Summary

  • METHODS.md § 8: Documents phase3.yaml retrospective benchmark results (AUROC=0.7936, 95% CI 0.6963-0.8827; AUPRC=0.8333). Clarifies that phase3.yaml is the operationally relevant synthesis gate (pipeline.yaml AUROC=0.8164 is the full-ensemble reference). Both exceed the AUROC > 0.70 gate.
  • Makefile: Adds make validate-scoring-phase3 target to compute AUROC/AUPRC using phase3.yaml weights, making it reproducible from a single command.
  • test_phase3_benchmark_passes_gate: Integration test using the real 44-AMP benchmark set that asserts phase3 AUROC ≥ 0.75, guarding against scoring regressions on the synthesis gate.

Why this matters

The code reviewer flagged (CRITICAL) in PR #60 that the documented AUROC of 0.8164 was for pipeline.yaml but the synthesis selection gate uses phase3.yaml with different weights and a stricter safety gate. This PR fixes that documentation gap and pins it with a regression test.

Test plan

  • make validate-scoring-phase3 runs and produces AUROC=0.7936, AUPRC=0.8333
  • make validate-scoring still produces AUROC=0.8164 (pipeline.yaml unaffected)
  • test_phase3_benchmark_passes_gate PASSES (1185 tests green)
  • METHODS.md clearly distinguishes pipeline.yaml (design reference) from phase3.yaml (synthesis gate)

🤖 Generated with Claude Code

- METHODS.md § 8: add phase3.yaml retrospective benchmark results
  (AUROC=0.7936, 95% CI 0.6963-0.8827; AUPRC=0.8333; all STRONG ≥0.70)
  and note that phase3 is the operationally relevant synthesis gate
- Add make validate-scoring-phase3 target for phase3-specific benchmark
- Add test_phase3_benchmark_passes_gate: asserts AUROC ≥ 0.75 using
  phase3.yaml weights (guards against regression in synthesis gate)
- 1185 tests passing
- Remove dead assert (>0.70 was shadowed by >=0.75 regression sentinel);
  keep gate check >0.70 as primary, sentinel >=0.75 with accurate message
- Add upper-bound sentinel <0.83 so test fails if pipeline.yaml is silently
  loaded instead of phase3.yaml (pipeline AUROC=0.8164 would breach it)
- METHODS.md: note that CI spanning gate boundary is expected at n=88 and
  synthesis decisions use point estimates (standard practice)
@cschanhniem
cschanhniem merged commit 356b37f into main Jun 28, 2026
2 checks passed
@cschanhniem
cschanhniem deleted the feat/pre-wetlab-polish-5 branch June 28, 2026 10:44
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.

1 participant