Skip to content

feat: pilot-panel — 20-candidate first-synthesis-wave selector - #14

Merged
cschanhniem merged 1 commit into
mainfrom
feat/pilot-panel
Jun 27, 2026
Merged

cschanhniem merged 1 commit into
mainfrom
feat/pilot-panel

Conversation

@cschanhniem

Copy link
Copy Markdown
Collaborator

Summary

  • make pilot runs the full pipeline and selects 20 candidates for first-wave synthesis from the 89 nominees
  • Selection algorithm (src/openamp_foundry/selection/pilot.py): priority = ensemble − 0.3 × disagreement; guarantees ≥1 candidate per seed template, fills remaining slots by priority rank
  • Outputs (src/openamp_foundry/reports/pilot_panel.py): synthesis-ready CSV (outputs/pilot_panel.csv) and human-readable markdown (outputs/pilot_panel.md) with disclaimer, next-steps checklist, reproducibility block
  • CLI subcommand: openamp-foundry pilot-panel --ranked <jsonl> --n 20 --out-csv <csv> [--out-md <md>]
  • 27 new tests — 341 total passing

Why 20

Cost-effective for a first assay wave (~$5–12k synthesis + MIC/hemolysis/stability). At 30% in-vitro hit rate, 20 candidates gives ~6 hits — enough signal to direct the second wave. All 5 seed families are represented so no sequence space is abandoned before wet-lab data arrives.

Test plan

  • make test — 341 passed
  • make pilot — produces 20 candidates across SEED-001..005
  • Review outputs/pilot_panel.md before ordering synthesis

🤖 Generated with Claude Code

…ector

Selects a first-synthesis-wave panel of 20 from the 89 nominated AMP
candidates by maximising ensemble score and minimising scorer disagreement
(priority = ensemble - 0.3 * disagreement), guaranteeing at least one
representative per seed template.

- src/openamp_foundry/selection/pilot.py: selection algorithm
- src/openamp_foundry/reports/pilot_panel.py: CSV + markdown output
- cli.py: 'pilot-panel' subcommand
- Makefile: 'make pilot' target (depends on phase3)
- tests/test_pilot_panel.py: 27 tests (341 total passing)
@cschanhniem
cschanhniem merged commit 5a81023 into main Jun 27, 2026
1 of 2 checks passed
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