Skip to content
Content
Skill

/screening-engine

Activate when the user needs to systematically screen papers for a Systematic Literature Review (SLR). Implements the PRISMA-compliant screening pipeline: define inclusion/exclusion criteria, title/abstract screening, full-text screening, quality assessment, and PRISMA flow

From plugin
open-academic-paper-machine
1817 skills4 agents21 commands
Install
$ npx -y skills add TobiasBlask/open-paper-machine --skill screening-engine --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/screening-engine

Context preview

The summary Claude sees to decide when to auto-load this skill.

Activate when the user needs to systematically screen papers for a Systematic Literature Review (SLR). Implements the PRISMA-compliant screening pipeline: define inclusion/exclusion criteria, title/abstract screening, full-text screening, quality assessment, and PRISMA flow

SKILL.md

screening-engine.SKILL.md
name: screening-engine
description: >
  Activate when the user needs to systematically screen papers for a Systematic
  Literature Review (SLR). Implements the PRISMA-compliant screening pipeline:
  define inclusion/exclusion criteria, title/abstract screening, full-text screening,
  quality assessment, and PRISMA flow diagram generation. Takes the literature_base.csv
  from Phase 1 (Reconnaissance) and produces a filtered, documented, auditable
  set of included studies.

> **Orchestration Log**: When this skill is activated, append a log entry to `outputs/orchestration_log.md`: > ``` > ### Skill Activation: Screening Engine > **Timestamp:** [current date/time] > **Actor:** AI Agent (screening-engine) > **Input:** [N] papers from literature_base.csv, [N] inclusion criteria, [N] exclusion criteria > **Output:** [N] papers included after screening, PRISMA diagram generated, screening_log.md saved > ```

Screening Engine

Core Principle

A systematic literature review without documented screening is not systematic. This engine transforms the raw search results from Phase 1 (Reconnaissance) into a defensible, reproducible set of included studies. Every inclusion and exclusion decision is documented with a reason, producing the audit trail that reviewers and editors expect.

The screening process follows PRISMA 2020 (Page et al., 2021) and adapts the guidelines of vom Brocke et al. (2009, 2015) for IS research.

When to Activate

  • User is conducting a Systematic Literature Review (SLR)
  • User says "screen papers", "filter papers", "apply inclusion criteria"
  • User says "PRISMA", "screening process", "title/abstract screening"
  • After Phase 1 (Reconnaissance) when method is SLR
  • When `literature_base.csv` exists and needs systematic filtering
  • User runs `/screen-papers`

Prerequisites

  • `literature_base.csv` exists (from Phase 1 / literature-engine)
  • Research questions are defined (from Phase 2 / framing.md)
  • Target method is SLR (confirmed in Phase 2 or by user)

---

Step 1: DEFINE Inclusion/Exclusion Criteria

Criteria Template

Before screening begins, establish and document clear criteria:

## Screening Protocol

### Inclusion Criteria (IC)

| ID  | Criterion | Rationale | Operationalization |
|-----|-----------|-----------|-------------------|
| IC1 | Peer-reviewed journal article or conference paper (ICIS, ECIS, HICSS, AMCIS, or equivalent) | Quality assurance | Check venue against VHB-JOURQUAL, AIS proceedings, or established CS venues |
| IC2 | Focuses on [topic] in [context] | Scope alignment | Title/abstract must explicitly address [specific keywords] |
| IC3 | Published between [year] and [year] | Recency/coverage | Check publication date |
| IC4 | Available in English or German | Accessibility | Check language field |
| IC5 | Empirical or conceptual contribution | Substance | Must present findings, framework, or theory — not just opinion |

### Exclusion Criteria (EC)

| ID  | Criterion | Rationale | Operationalization |
|-----|-----------|-----------|-------------------|
| EC1 | Purely technical paper with no organizational/social dimension | Out of scope | No mention of users, organizations, processes, or adoption |
| EC2 | Editorial, book review, workshop abstract, poster, or abstract-only | Insufficient depth | Less than 4 pages or no methodology section |
| EC3 | Duplicate or earlier version of an included paper | Avoid double-counting | Same authors + overlapping content → keep most recent/complete |
| EC4 | Not accessible (no abstract, no full text, no DOI) | Cannot assess | Exhausted all retrieval options |

Criteria Derivation

Criteria should be derived from: 1. **Research questions** — IC2 must map directly to what the RQs ask 2. **Scope boundaries** — What explicitly falls outside the study 3. **Quality thresholds** — Minimum venue quality, minimum methodological rigor 4. **Practical constraints** — Language, accessibility, date range

Present the criteria table to the user for approval before proceeding. This is a **quality gate** — criteria should not change after screening begins (or changes must be documented as protocol amendments).

---

Step 2: TITLE/ABSTRACT SCREENING

Process

For each paper in `literature_base.csv`:

1. **Read title and abstract** (abstract from CSV or fetched via API) 2. **Apply each criterion** in sequence (IC1 → IC5, then EC1 → EC4) 3. **Decision:** INCLUDE, EXCLUDE, or UNCERTAIN 4. **Record reason** for exclusion (cite the specific criterion ID)

Decision Rules

  • **INCLUDE if:** Title and abstract suggest the paper meets ALL inclusion criteria AND violates NO exclusion criteria
  • **EXCLUDE if:** Title and abstract clearly violate at least one criterion
  • **UNCERTAIN if:** Cannot determine from title/abstract alone → move to full-text screening
  • **When in doubt, include** — it's better to over-include at this stage and exclude during full-text review

Handling Missing Abstracts

If a paper has no abstract in `literature_base.csv`: 1. Attempt to fetch via Semantic Scholar API (by DOI or title) 2. Attempt to fetch via OpenAlex API 3. If still no abstract: mark as UNCERTAIN → include for full-text screening 4. If no full text available either: mark as EXCLUDE with reason EC4

Output Format

For each paper, record:

{
  "id": "[CSV row or bib_key]",
  "title": "[paper title]",
  "authors": "[first author et al.]",
  "year": [year],
  "venue": "[venue]",
  "screening_decision": "INCLUDE" | "EXCLUDE" | "UNCERTAIN",
  "exclusion_reason": "EC2" | null,
  "exclusion_detail": "Workshop abstract, 2 pages, no methodology" | null,
  "screener_note": "[optional note]"
}

Batch Processing

Process papers in batches of 20-30. After each batch:

  • Report progress: "Screened [N]/[total]. Included: [n], Excluded: [n], Uncertain: [n]"
  • Save intermediate results to `screening/title_abstract_screening.csv`
  • Continue unless the user intervenes

---

Step 3: FULL-TEXT SCREEN

Read more
Ships withopen-academic-paper-machine

A Claude Code plugin that autonomously writes academic papers — from literature search to production-ready LaTeX/PDF. Scope note.

Get the whole plugin