audit-engine
Activate when the user wants to audit a paper's empirical or technical claims against a linked code repository — checking whether experiments, datasets,…
ALWAYS activate when the user needs to find, organize, review, or synthesize academic literature. Uses academic APIs (Semantic Scholar, OpenAlex, CrossRef, arXiv) via scripts/academic_search.py. Handles search strategy, snowballing, screening, concept matrices, narrative
$ npx -y skills add TobiasBlask/open-paper-machine --skill literature-engine --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/literature-engineContext preview
The summary Claude sees to decide when to auto-load this skill.
ALWAYS activate when the user needs to find, organize, review, or synthesize academic literature. Uses academic APIs (Semantic Scholar, OpenAlex, CrossRef, arXiv) via scripts/academic_search.py. Handles search strategy, snowballing, screening, concept matrices, narrative
name: literature-engine description: > ALWAYS activate when the user needs to find, organize, review, or synthesize academic literature. Uses academic APIs (Semantic Scholar, OpenAlex, CrossRef, arXiv) via scripts/academic_search.py. Handles search strategy, snowballing, screening, concept matrices, narrative synthesis, and literature monitoring (detecting new publications since last search). NEVER use web scraping for paper discovery — APIs first, web search only for verification.
> **Orchestration Log**: When this skill is activated, append a log entry to `outputs/orchestration_log.md`: > ``` > ### Skill Activation: Literature Engine > **Timestamp:** [current date/time] > **Actor:** AI Agent (literature-engine) > **Input:** [brief description of the search/synthesis request] > **Output:** [brief description of results — e.g., "47 papers found across 4 databases, deduplicated to 38"] > ```
1. **Academic APIs** via `scripts/academic_search.py` — ALWAYS first
2. **Web search** — ONLY for: VHB-JOURQUAL rankings, specific CFPs, conference info 3. **Firecrawl** — LAST RESORT for sources without APIs (AIS eLibrary, specific repositories)
For any research topic, construct 4-6 search queries:
| Query Type | Purpose | Example (GenAI/Agents paper) | |-----------|---------|------------------------------| | Core English | Main topic | "generative AI enterprise implementation" | | Synonym English | Alternative terms | "large language models organizational adoption" | | Narrow English | Specific aspect | "autonomous AI agents business process" | | Adjacent English | Related field | "AI transformation strategy organizational change" | | German | German publications | "generative KI Unternehmen Implementierung" | | Theoretical | Theory-specific | "sociotechnical systems artificial intelligence" |
from scripts.academic_search import search_all, search_semantic_scholar, search_openalex, snowball, deduplicate_papers, papers_to_csv, papers_to_bibtex_file
# Round 1: Broad multi-API search
papers = search_all("generative AI enterprise implementation",
max_results_per_source=20, year_from=2020)
papers += search_all("autonomous AI agents organizational",
max_results_per_source=20, year_from=2020)
papers += search_all("LLM adoption business strategy",
max_results_per_source=15, year_from=2022)
# Round 2: German sources via OpenAlex
papers += search_openalex("generative KI Implementierung Unternehmen",
max_results=15, year_from=2020)
# Deduplicate
papers = deduplicate_papers(papers)
print(f"After dedup: {len(papers)} unique papers")# Sort by citations, snowball top 5
top = sorted(papers, key=lambda p: -(p.get("citation_count") or 0))[:5]
for p in top:
if p.get("doi"):
result = snowball(p["doi"], direction="both", limit=15)
papers.extend(result.get("forward", []))
papers.extend(result.get("backward", []))
# Also snowball seminal papers you know are relevant
seminal_dois = [
# Add known seminal papers here, e.g.:
# "10.2307/25148667", # DeLone & McLean IS Success
]
for doi in seminal_dois:
result = snowball(doi, direction="forward", limit=20)
papers.extend(result.get("forward", []))
papers = deduplicate_papers(papers)# Save for further analysis papers_to_csv(papers, "literature_base.csv") papers_to_bibtex_file(papers, "references.bib")
Not a full SLR — just filter the most relevant papers:
Use `scripts/screening.py` for systematic reviews:
from scripts.screening import screen_title_abstract, save_screening_results, generate_prisma_counts
results = screen_title_abstract(
papers=papers,
include_keywords=["generative AI", "LLM", "AI agent", "implementation", "adoption", "organization"],
exclude_keywords=["medical imaging", "drug discovery", "protein folding"],
min_year=2020,
require_abstract=True
)
save_screening_results(results, "screening/")
print(generate_prisma_counts(results))## Systematic Literature Review Protocol ### Research Questions - RQ1: [Primary question] - RQ2: [Secondary question] ### Search Strategy - Databases: Semantic Scholar, OpenAlex, CrossRef, arXiv [+ manual: AIS eLibrary, Google Scholar] - Search terms: [list all queries] - Date range: [YYYY] to [YYYY] - Language: English [+ German if applicable] ### Inclusion Criteria - IC1: [criterion] - IC2: [criterion] - IC3: [criterion] ### Exclusion Criteria - EC1: [criterion] - EC2: [criterion] ### Quality Assessment - [criteria: VHB B+, peer-reviewed, minimum citation threshold for older papers] ### Data Extraction Categories - [list what to extract from each paper] ### Synthesis Method - [Webster & Watson concept matrix / thematic synthesis / meta-analysis / vote counting]
The single most important tool for turning a pile of papers into a structured literature review (Webster & Watson, 2002).
| Source | [Concept A] | [Concept B] | [Concept C] | [Concept D] | Method | Context | |--------|------------|------------|------------|------------|----
A Claude Code plugin that autonomously writes academic papers — from literature search to production-ready LaTeX/PDF. Scope note.
Activate when the user wants to audit a paper's empirical or technical claims against a linked code repository — checking whether experiments, datasets,…
Activate when the user needs to manage multi-author collaboration on a paper. Tracks author contributions using the CRediT taxonomy, manages responsibility…
Activate when the user needs to generate, refine, or evaluate academic figures, diagrams, or statistical plots. Uses PaperBanana to transform text descriptions…
Activate when the user needs to evaluate whether a research idea is worth pursuing, brainstorm new research directions, or stress-test a paper concept before…
Activate when the user wants to export a completed paper draft to production-ready LaTeX (.tex) and PDF. Converts draft.md + references.bib + figures/ into a…
Activate when the user needs to select, justify, describe, or execute a research methodology. Provides method selection guidance, complete method section…