Why (verified evidence)
Post-merge verification (D4-verify-merged-2026-09-16T02) of #3442 (merge 9a16cbf4f93a9366cdc2a0ab30fa2d01c977abbc) against #2819 found corpus-evidence and promotion-prepare slices landed with 87 passing tests, but the self-triggering pilot move is absent from the squash diff.
tools/harvest_verifier_corpus.py, tools/verifier_corpus_evidence.py, and tools/prepare_model_promotion.py substantially updated; reusable-agents-verifier.yml publishes replayable decisions.
- Issue task 1 requires
maint-77-model-registry-freshness.yml to dispatch maint-78-model-evaluation-pilot.yml when a new catalog candidate passes freshness — no workflow changes to maint-77 or maint-78 in the diff.
- Docs still describe maint-78 as
workflow_dispatch-only; acceptance criterion "new catalogued model results in auto-dispatched pilot" is therefore NOT MET.
Tasks
Acceptance Criteria
- Named test:
pytest tests/workflows/test_model_eval_pilot_workflow.py -k auto_dispatch exits 0 proving maint-77 chains to maint-78 on new candidate.
- Deliberate-break → revert: remove dispatch step from maint-77 → named test FAILS → restore → passes.
Non-Goals
Surfaced by D4-verify-merged-2026-09-16T02; verified against squash diff Workflows-3442.diff, local gate 87/87 pass, and issue #2819. Related: #2819, merged PR #3442.
Why (verified evidence)
Post-merge verification (D4-verify-merged-2026-09-16T02) of #3442 (merge
9a16cbf4f93a9366cdc2a0ab30fa2d01c977abbc) against #2819 found corpus-evidence and promotion-prepare slices landed with 87 passing tests, but the self-triggering pilot move is absent from the squash diff.tools/harvest_verifier_corpus.py,tools/verifier_corpus_evidence.py, andtools/prepare_model_promotion.pysubstantially updated;reusable-agents-verifier.ymlpublishes replayable decisions.maint-77-model-registry-freshness.ymlto dispatchmaint-78-model-evaluation-pilot.ymlwhen a new catalog candidate passes freshness — no workflow changes to maint-77 or maint-78 in the diff.workflow_dispatch-only; acceptance criterion "new catalogued model results in auto-dispatched pilot" is therefore NOT MET.Tasks
.github/workflows/maint-77-model-registry-freshness.ymlto dispatch.github/workflows/maint-78-model-evaluation-pilot.ymlwhen freshness screening finds a new catalog candidate.config/model_eval_candidates.jsonfrom catalog discovery (incumbent + same-provider successors) per [Design] Self-feeding verifier-model promotion: auto-trigger pilot + live-harvested corpus + tiered auto-promote/rollback #2819 design.tests/workflows/test_model_eval_pilot_workflow.pyproving catalog-change triggers pilot dispatch without manualworkflow_dispatch.Acceptance Criteria
pytest tests/workflows/test_model_eval_pilot_workflow.py -k auto_dispatchexits 0 proving maint-77 chains to maint-78 on new candidate.Non-Goals
config/model_selection_policy.jsongates or remove human approval for risky swaps.Surfaced by D4-verify-merged-2026-09-16T02; verified against squash diff
Workflows-3442.diff, local gate 87/87 pass, and issue #2819. Related: #2819, merged PR #3442.