Skip to content

Loop 77: Phase F F7 — calibration link from negative-result entries to intake reports - #763

Merged
cschanhniem merged 1 commit into
mainfrom
feat/loop-77-negative-result-intake-link
Jul 9, 2026
Merged

cschanhniem merged 1 commit into
mainfrom
feat/loop-77-negative-result-intake-link

Conversation

@cschanhniem

Copy link
Copy Markdown
Collaborator

Change

Phase F F7 implementation: calibration link from negative-result entries to intake reports.

What

  • Schema: Added intake_report_id optional field to negative_result_entry.schema.json
  • Script: scripts/link_negative_result_to_intake.py — reads a negative-result archive JSON + calibration intake report JSON, links entries by candidate_id, and produces a structured link report (matched/unmatched counts, linkage rate, orphan detection, per-candidate predictions + lab summary, intake_report_id validation, cohort metrics)
  • Tests: 25 tests in tests/evidence/test_link_negative_result_to_intake.py

Why

Closes the learning loop (F7). Negative-result entries can now be traced back to their calibration intake data, making it possible to see what predictions and lab results produced each failure.

Evidence

  • 25 new tests all pass
  • Existing 2797 tests still pass
  • make agent-check passes
  • 2822 total tests collected

Safety impact

None. This is an informational linking tool. It does not change scoring, selection, or release workflows.

Proof level

N/A — infrastructure/CI improvement.

Limitations

  • Linkage is by candidate_id only. Unmatched entries are reported but not invalidated.
  • Orphan intake candidates may be active, pending, or withdrawn.
  • The intake_report_id field is advisory and does not affect linkage logic.
  • Cohort metrics and control failures are forwarded from the intake report, not independently validated.

Human review needed

No

…ntake reports

Closes the learning loop by tracing each negative-result entry back to its
prediction-vs-actual data in the calibration intake report.

- schema: add intake_report_id to negative_result_entry.schema.json
- script: link_negative_result_to_intake.py — CLI that reads archive + intake
  report, links by candidate_id, reports matched/unmatched entries, orphan
  detection, lab summary, intake_report_id validation
- tests: 25 tests covering linkage, validation, CLI, error paths
- docs: METRICS_CURRENT.md, ROADMAP.md updated
- baseline: 2822 tests
@cschanhniem
cschanhniem merged commit a0d0d22 into main Jul 9, 2026
1 check failed
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