Screening Manager (title/abstract screening)
Goal: produce an auditable screening log that can be traced back to the protocol.
Inputs
Required:
- •
output/PROTOCOL.md
Optional candidate pools (choose one if available):
- •
papers/papers_raw.jsonl - •
papers/papers_dedup.jsonl - •
papers/core_set.csv
Outputs
- •
papers/screening_log.csv
Output schema (recommended)
Columns (minimum viable):
- •
paper_id - •
title - •
year - •
url - •
decision(include|exclude) - •
reason(short, protocol-grounded) - •
reviewer(HUMAN|CODEX) - •
decided_at(ISO date/time) - •
notes(optional)
Workflow
- •
Read
output/PROTOCOL.mdand extract:- •inclusion criteria
- •exclusion criteria
- •time window
- •any mandatory outcomes/metrics
- •
Choose a candidate list
- •If a
papers/*.jsonlorpapers/core_set.csvexists, use it as the row source. - •Otherwise, ask the user for the candidate list format and load it into the workspace first.
- •If a
- •
Screen each candidate deterministically
- •Decide
includeonly when the title/abstract clearly satisfies inclusion and does not trigger exclusion. - •If information is insufficient, decide
excludeand state the missing requirement explicitly inreason.
- •Decide
- •
Write
papers/screening_log.csv- •One row per candidate.
- •Reasons must map to protocol clauses (avoid generic “not relevant”).
- •
Quick QA
- •Check every row has
decision+reason. - •Spot-check that
includerows satisfy the protocol.
- •Check every row has
Definition of Done
- •
papers/screening_log.csvexists and covers all candidates. - • Every row has a decision + protocol-grounded reason.
Troubleshooting
Issue: you do not have a candidate pool file
Fix:
- •Import/export the candidate list into one of:
papers/papers_raw.jsonl,papers/papers_dedup.jsonl, orpapers/core_set.csv, then rerun screening.
Issue: too many borderline cases
Fix:
- •Tighten
output/PROTOCOL.mdwith more operational inclusion/exclusion rules (then re-screen for consistency).