agentleFS
TobiasBlaskTobiasBlask/open-paper-machine/skills/screening-engine/SKILL.md

screening-engine

Skill18 starsChanged 7 months agoMITView on GitHub

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.

The file

Show its rules and text

We split this skill into the rules it gives an agent

15 rules. About 0 are common, 12 are distinctive, and 3 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈12

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 3

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    After Phase 1 (Reconnaissance) when method is SLR

    line 39
  2. Very specific:

    When literature_base.csv exists and needs systematic filtering

    line 40
  3. Distinctive:

    Before screening begins, establish and document clear criteria:

    line 55
  4. Very specific:

    If a paper has no abstract in literature_base.csv:

    line 114
  5. Distinctive:

    If still no abstract: mark as UNCERTAIN → include for full-text screening

    line 117
  6. Distinctive:

    If no full text available either: mark as EXCLUDE with reason EC4

    line 118
  7. Distinctive:

    All papers marked INCLUDE after title/abstract screening

    line 152
  8. Distinctive:

    All papers marked UNCERTAIN after title/abstract screening

    line 153
  9. Distinctive:

    Check if PDF is available (open access, arXiv, institutional access)

    line 160
  10. Distinctive:

    If PDF available: read introduction, methodology, and conclusion sections

    line 161
  11. Distinctive:

    If only abstract available: make decision based on abstract + metadata

    line 162
  12. Distinctive:

    After the final set of included papers is determined, assess their methodological quality.

    line 200
  13. Very specific:

    After screening, update references.bib to contain ONLY the included papers (keep the original as references_full.bib for audit).

    line 316
  14. Distinctive:

    No abstracts available for many papers: Use title-only screening for those papers, flag as lower confidence.

    line 369
  15. Distinctive:

    User changes criteria after screening started: Document as protocol amendment.

    line 370

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

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 SCREENING

When to Apply

Full-text screening is performed on:

  1. All papers marked INCLUDE after title/abstract screening
  2. All papers marked UNCERTAIN after title/abstract screening

Process

For each paper:

  1. Obtain full text:
    • Check if PDF is available (open access, arXiv, institutional access)
    • If PDF available: read introduction, methodology, and conclusion sections
    • If only abstract available: make decision based on abstract + metadata
  2. Apply criteria with full context:
    • Does the paper actually address the topic (not just mention keywords)?
    • Does it have a clear methodology section?
    • Does it present findings relevant to the RQs?
    • Is the venue quality sufficient?
  3. Decision: INCLUDE or EXCLUDE (no more UNCERTAIN at this stage)
  4. Record reason for exclusion with specific detail

Exclusion Reason Categories for Full-Text

Track exclusion reasons to report in the PRISMA diagram:

Reason CategoryExample
Wrong population/contextStudies AI in healthcare, not enterprise context
Wrong intervention/topicFocuses on AI ethics, not implementation
Wrong outcomeMeasures technical performance, not organizational impact
Wrong study typeOpinion piece, no empirical or conceptual contribution
Insufficient qualityNo clear methodology, weak evidence base
Duplicate/supersededEarlier version of an already-included paper
Not accessibleCannot obtain full text despite best efforts

Output

Save to screening/full_text_screening.csv with the same format as title/abstract screening, plus:

  • full_text_available: true/false
  • full_text_exclusion_category: one of the categories above

Step 4: QUALITY ASSESSMENT

Purpose

After the final set of included papers is determined, assess their methodological quality. This is NOT an inclusion/exclusion step — it's a characterization that informs the synthesis (e.g., weighting findings from high-quality studies more).

Quality Checklist (adapted for IS research)

For each included paper, assess:

CriterionAssessmentNotes
Q1: Clear research objective/question stated?Yes / Partial / No
Q2: Appropriate methodology for the research goal?Yes / Partial / No
Q3: Data collection described adequately?Yes / Partial / No / N/A
Q4: Data analysis described adequately?Yes / Partial / No / N/A
Q5: Findings clearly linked to evidence?Yes / Partial / No
Q6: Limitations acknowledged?Yes / Partial / No
Q7: Contribution clearly stated?Yes / Partial / No
Q8: Published in a reputable venue?A+/A / B / C / OtherVHB-JOURQUAL or equivalent

Scoring

  • Yes = 1 point, Partial = 0.5, No = 0
  • Maximum: 8 points (Q8 normalized: A+/A=1, B=0.75, C=0.5, Other=0.25)
  • Papers scoring below 4 should be flagged for potential exclusion or careful handling in synthesis

Output

Save to screening/quality_assessment.csv:

bib_key, title, Q1, Q2, Q3, Q4, Q5, Q6, Q7, Q8_venue, Q8_score, total_score, quality_tier
wang2024, "Wang et al. 2024", Yes, Yes, Yes, Partial, Yes, Yes, Yes, A, 1.0, 7.5, High
smith2023, "Smith et al. 2023", Yes, Partial, No, No, Partial, No, Yes, C, 0.5, 3.5, Low

Quality tiers: High (>6), Medium (4-6), Low (<4)


Step 5: GENERATE PRISMA Flow Diagram

PRISMA 2020 Template

Generate both a text-based PRISMA diagram and a visual diagram via figure-engine.

Text-Based PRISMA (always generate):

## PRISMA Flow Diagram

### Identification
- Records identified through database searching: [N]
  - Semantic Scholar: [n]
  - OpenAlex: [n]
  - CrossRef: [n]
  - arXiv: [n]
- Additional records from snowballing: [n]
- **Total records identified: [N]**
- Duplicate records removed: [n]
- **Records after deduplication: [N]**

### Screening
- Records screened (title/abstract): [N]
- Records excluded: [n]
  - [Reason 1]: [n]
  - [Reason 2]: [n]
  - [Reason 3]: [n]

### Eligibility
- Full-text articles assessed: [N]
- Full-text articles excluded: [n]
  - Wrong population/context: [n]
  - Wrong intervention/topic: [n]
  - Wrong outcome: [n]
  - Wrong study type: [n]
  - Insufficient quality: [n]
  - Duplicate/superseded: [n]
  - Not accessible: [n]

### Included
- **Studies included in synthesis: [N]**
  - Journal articles: [n]
  - Conference papers: [n]
  - Preprints: [n] (if included)

Visual PRISMA Diagram:

Generate via figure-engine / PaperBanana direct Python API:

Use the generate_diagram tool with:
- source_context: The PRISMA text above with all numbers filled in
- caption: "PRISMA 2020 flow diagram of the systematic search and screening process"

Save as figures/fig_prisma_flow.png.


Step 6: SAVE & DOCUMENT

Output Files

FileContent
screening/screening_protocol.mdCriteria, process description, dates
screening/title_abstract_screening.csvAll papers with T/A screening decisions
screening/full_text_screening.csvFull-text screening decisions
screening/quality_assessment.csvQuality scores for included papers
screening/screening_summary.mdPRISMA counts, summary statistics
figures/fig_prisma_flow.pngVisual PRISMA diagram
literature_base_screened.csvFinal set of included papers (filtered CSV)

Update references.bib

After screening, update references.bib to contain ONLY the included papers (keep the original as references_full.bib for audit).

Screening Summary

# Screening Summary

**Date:** [ISO 8601]
**Total identified:** [N] papers
**After deduplication:** [N] papers
**After title/abstract screening:** [N] papers (excluded: [n])
**After full-text screening:** [N] papers (excluded: [n])
**Final included:** [N] papers

## Included Papers by Characteristic

### By Year
| Year | Count |
|------|-------|
| 2024 | [n]   |
| 2023 | [n]   |
| ...  | ...   |

### By Method
| Method | Count |
|--------|-------|
| Survey | [n]   |
| Case Study | [n] |
| ...    | ...   |

### By Venue Type
| Type | Count |
|------|-------|
| Journal (A+/A) | [n] |
| Journal (B)    | [n] |
| Conference     | [n] |
| Preprint       | [n] |

### Quality Distribution
| Tier | Count | % |
|------|-------|---|
| High (>6)   | [n] | [%] |
| Medium (4-6)| [n] | [%] |
| Low (<4)    | [n] | [%] |

Error Recovery

  • Too many papers after dedup (>200): Tighten search queries or add stricter criteria before screening. Report to user.
  • Too few papers after screening (<10): Loosen criteria or expand search scope. Report to user with options.
  • No abstracts available for many papers: Use title-only screening for those papers, flag as lower confidence.
  • User changes criteria after screening started: Document as protocol amendment. Re-screen affected papers. Note in screening_protocol.md.

Integration with Pipeline

PhaseIntegration
Phase 1 (Reconnaissance)Takes literature_base.csv and references.bib as input
Phase 2 (Framing)Screened set informs theory selection and gap formulation
Phase 3 (Architecture)Concept matrix built from screened papers only
Phase 4 (Production)Only screened papers cited in the paper text
Method-enginePRISMA numbers populate the method section template
Figure-enginePRISMA flow diagram generated as figure

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.