screening-engine — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited screening-engine (Agent Skill) and scored it 96/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 1 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 1 flagged
The text {match} tells the agent to skip the normal "ask the user first" gate. Used adversarially it removes the human-in-the-loop check before destructive or sensitive actions, turning a normally-gated agent into a fire-and-forget executor.
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Orchestration Log: When this skill is activated, append a log entry tooutputs/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``
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.
literature_base.csv exists and needs systematic filtering/screen-papersliterature_base.csv exists (from Phase 1 / literature-engine)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 should be derived from:
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).
For each paper in literature_base.csv:
If a paper has no abstract in literature_base.csv:
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]"
}Process papers in batches of 20-30. After each batch:
screening/title_abstract_screening.csvFull-text screening is performed on:
For each paper:
Track exclusion reasons to report in the PRISMA diagram:
| Reason Category | Example |
|---|---|
| Wrong population/context | Studies AI in healthcare, not enterprise context |
| Wrong intervention/topic | Focuses on AI ethics, not implementation |
| Wrong outcome | Measures technical performance, not organizational impact |
| Wrong study type | Opinion piece, no empirical or conceptual contribution |
| Insufficient quality | No clear methodology, weak evidence base |
| Duplicate/superseded | Earlier version of an already-included paper |
| Not accessible | Cannot obtain full text despite best efforts |
Save to screening/full_text_screening.csv with the same format as title/abstract screening, plus:
full_text_available: true/falsefull_text_exclusion_category: one of the categories aboveAfter 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).
For each included paper, assess:
| Criterion | Assessment | Notes |
|---|---|---|
| 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 / Other | VHB-JOURQUAL or equivalent |
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, LowQuality tiers: High (>6), Medium (4-6), Low (<4)
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.
| File | Content |
|---|---|
screening/screening_protocol.md | Criteria, process description, dates |
screening/title_abstract_screening.csv | All papers with T/A screening decisions |
screening/full_text_screening.csv | Full-text screening decisions |
screening/quality_assessment.csv | Quality scores for included papers |
screening/screening_summary.md | PRISMA counts, summary statistics |
figures/fig_prisma_flow.png | Visual PRISMA diagram |
literature_base_screened.csv | Final set of included papers (filtered CSV) |
After screening, update references.bib to contain ONLY the included papers (keep the original as references_full.bib for audit).
# 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] | [%] || Phase | Integration |
|---|---|
| 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-engine | PRISMA numbers populate the method section template |
| Figure-engine | PRISMA flow diagram generated as figure |
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.