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,…
Activate when the user needs to analyze qualitative data — interview transcripts, field notes, or open-ended survey responses. Handles structured summarization, thematic coding, cross-case analysis, theme matrices, and evidence retrieval. Designed to solve the context-window
$ npx -y skills add TobiasBlask/open-paper-machine --skill qualitative-engine --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/qualitative-engineContext preview
The summary Claude sees to decide when to auto-load this skill.
Activate when the user needs to analyze qualitative data — interview transcripts, field notes, or open-ended survey responses. Handles structured summarization, thematic coding, cross-case analysis, theme matrices, and evidence retrieval. Designed to solve the context-window
name: qualitative-engine description: > Activate when the user needs to analyze qualitative data — interview transcripts, field notes, or open-ended survey responses. Handles structured summarization, thematic coding, cross-case analysis, theme matrices, and evidence retrieval. Designed to solve the context-window problem: generates compact summaries first, then works from summaries instead of full transcripts. Only loads full text when specific quotes are needed. Supports Gioia, Mayring, Grounded Theory, and general thematic analysis workflows.
> **Orchestration Log**: When this skill is activated, append a log entry to `outputs/orchestration_log.md`: > ``` > ### Skill Activation: Qualitative Engine > **Timestamp:** [current date/time] > **Actor:** AI Agent (qualitative-engine) > **Input:** [brief description of the analysis request] > **Output:** [brief description — e.g., "23 interviews summarized, 14 first-order codes identified"] > ```
**CRITICAL:** Qualitative data (interview transcripts) can easily overflow the context window. Follow this strict protocol:
1. **NEVER load all transcripts into context simultaneously** 2. **ALWAYS generate structured summaries first** (Phase 1) 3. **Work from summaries** for coding and analysis (Phases 2-4) 4. **Load full transcripts ONLY** when extracting specific verbatim quotes (Phase 5) 5. **Load at most 2-3 full transcripts at a time** when quote-hunting
The `scripts/process_interviews.py` script provides:
from scripts.process_interviews import (
load_interviews, # Read all .md files from interviews/
build_index, # Generate INDEX.md with metadata
chunk_interview, # Split long transcripts into chunks
search_interviews, # Keyword search across all interviews
save_index, # Save index file
save_summary, # Save individual summaries
)---
Transform each full transcript into a compact structured summary (~300 words) that preserves analytical value while reducing context consumption by 80-90%.
interviews = load_interviews("interviews/")
index = build_index(interviews)
save_index(index, "interviews/INDEX.md")For EACH interview, read the full transcript and produce a summary in this exact format:
# Summary: [Interviewee Name / Title] **Date:** [date] | **Role:** [professional role] | **Organization:** [org] | **Duration:** [if available] ## Context [1-2 sentences: Who is this person? Why were they interviewed? What is their relevance?] ## Key Statements (verbatim quotes) 1. "[Direct quote — max 2 sentences]" — on [topic] 2. "[Direct quote — max 2 sentences]" — on [topic] 3. "[Direct quote — max 2 sentences]" — on [topic] [3-5 quotes that capture the most analytically valuable statements] ## Core Themes Discussed - **[Theme A]:** [2-3 sentence summary of their position/experience] - **[Theme B]:** [2-3 sentence summary] - **[Theme C]:** [2-3 sentence summary] ## Unique Insights [1-2 sentences: What does this interviewee say that NO other interviewee says? What is their unique contribution to the data set?] ## Relevance to Research Questions - **RQ1:** [How does this interview inform RQ1? One sentence.] - **RQ2:** [How does this interview inform RQ2? One sentence.] - **RQ3:** [How does this interview inform RQ3? One sentence.] [Adapt RQs from framing.md]
save_summary(summary_text, "interviews/summaries/[filename]_summary.md")
---
Identify empirical codes grounded in the data — what interviewees actually say.
Load ALL summary files (not full transcripts):
interviews/summaries/*.md
1. **Read all summaries** in sequence 2. **Identify recurring patterns** across interviews:
3. **Generate first-order codes** — stay close to the data:
# Codebook v1 — First-Order Codes **Date:** [date] **Interviews coded:** [N] **Total codes:** [N] | Code ID | Code Label | Description | Example Quote | Frequency | |---------|-----------|-------------|---------------|-----------| | C01 | [label] | [what this code captures] | "[short quote]" — [interviewee] | [N interviews] | | C02 | [label] | [what this code captures] | "[short quote]" — [interviewee] | [N interviews] | | ... | | | | |
Save to: `outputs/codebook_v1.md`
| Code | Interview 1 | Interview 2 | Interview 3 | ... | Total | |------|------------|------------|------------|-----|-------| | C01 | ✓ | ✓ | | ... | N | | C02 | | ✓ | ✓ | ... | N |
Save to: `outputs/code_matrix.md`
---
Group first-order codes into higher-level analytical themes.
1. **Review the codebook** — look for clusters of related codes 2. **Group codes into themes** — each theme aggregates 2-5 first-order codes 3. **Name themes analytically** — researcher language, not informant language 4. **Target: 5-
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…
ALWAYS activate when the user needs to find, organize, review, or synthesize academic literature. Uses academic APIs (Semantic Scholar, OpenAlex, CrossRef,…