sr-screener
SR-Screener v1.0.0 — Protocol-Driven Screening Decisions
Screening is where a systematic review quietly loses studies: criteria drift, tired reviewers, records that fall between two batches. This skill makes each screening decision explicit and traceable. The criteria are fixed before any record is read, every record gets two independent decisions, disagreements go to a third reviewer, nothing is ever decided by default, and every number in the PRISMA flow can be traced to a file. The AI reviewers support the review team; people sign off on the final screening.
The skill sits between deep-research (question, protocol, search) and academic-paper
(writing the review). Dual review at scale uses the Workflow tool (or one Agent call per batch);
small sets work in a single session. The deterministic steps are Python scripts in this skill's
scripts/ folder (Python 3.9+, standard library only; openpyxl is optional and gives an Excel
log instead of CSV files).
Routing discipline (v3.9.2): plugin and skills-copy installs do not load this repository's
.claude/CLAUDE.md, so its routing core is repeated below, identical toshared/references/routing_core.md(#892). If routing has not settled when this skill loads, apply the core before dispatching any agent.
Step 0 — Escape hatch check (before any classification): If the user's first message begins with [direct-mode] (case-insensitive byte-0 token, optionally preceded by whitespace/newlines that are stripped on parse), record this fact, strip the prefix and surrounding whitespace from the message, and skip directly to Step 1 explicit-intent handling on the stripped content. The literal [direct-mode] is NOT passed through to the dispatched agent. If the stripped message itself has no clear skill named, Step 1 falls through to Step 3 clarification (the escape hatch bypasses cross-phase clarification (Step 2), not all routing). When the token is honored and the named agent or skill needs inputs the message does not supply, read that agent's or skill's file and ask for what it requires, in its terms. Without the byte-0 token, naming an agent is not explicit intent: such a message goes through Steps 1-3 like any other, so cross-phase materials still get Step 2 clarification.