Skip to content

Phase F F10: Negative-result archive completeness checker - #766

Merged
cschanhniem merged 1 commit into
mainfrom
loop80-phase-f10
Jul 9, 2026
Merged

cschanhniem merged 1 commit into
mainfrom
loop80-phase-f10

Conversation

@cschanhniem

Copy link
Copy Markdown
Collaborator

Change

Adds a negative-result archive completeness checker CLI that reads a JSON archive of negative-result entries and validates each entry against completeness criteria.

What it checks

  1. Required field presence — all 8 required fields from negative_result_entry.schema.json
  2. No duplicate candidate_ids — flags structural duplicates across entries
  3. Content field presence — each entry must have at least one of {assay_result, score_safety, reviewer_notes, reason_detail}
  4. Date format validity — must be YYYY-MM-DD and a real calendar date
  5. intake_report_id format — optional field must match INT-YYYY-NNN

Evidence

  • 35 new tests, all passing (2919 total)
  • make check-negative-archive-completeness target
  • Example file with 4 toy entries
  • JSON Schema for completeness report output

Safety impact

None. Checks structural formatting only. Does not release data, change thresholds, or make biological claims.

Human review needed

No

CLI that reads a JSON archive of negative-result entries and checks each
entry against completeness criteria: required field presence, no duplicate
candidate_ids, at least one content field, valid date format, and well-formed
intake_report_id. Outputs structured JSON + Markdown completeness report.

Adds:
- scripts/check_negative_archive_completeness.py (F10)
- schemas/negative_result_archive_completeness.schema.json
- examples/negative_result_archive_example.json
- tests/evidence/test_negative_archive_completeness.py (35 tests)
- Makefile target: check-negative-archive-completeness
- Updated METRICS_CURRENT.md (v0.5.80, 2919 tests)
- Updated ROADMAP.md (Loop 80 entry)
- Updated test_count_regression.py (baseline 2919)
@cschanhniem
cschanhniem merged commit 53835f5 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