Prerequisites and optional setup for Academic Research Skills. If you only need Markdown output and the default Claude pipeline (the inherited session model), you can skip most of this — see "Minimum viable setup" below.
ANTHROPIC_API_KEY.claude in this repo (or any project that has ARS in .claude/skills/).That is enough for Markdown output + DOCX conversion instructions. Everything else in this document is optional.
Recommended: Native installer (no Node.js required, auto-updates):
# macOS / Linux
curl -fsSL https://claude.ai/install.sh | bash
# Windows (PowerShell)
irm https://claude.ai/install.ps1 | iex
npm install -g @anthropic-ai/claude-code
Get an Anthropic API key at https://console.anthropic.com/.
# Claude Code will prompt for your API key on first run
claude
Or set it as an environment variable:
export ANTHROPIC_API_KEY=sk-ant-xxxxx
Direct .docx generation uses Pandoc. If Pandoc is unavailable, the formatter falls back to Markdown + DOCX conversion instructions.
# macOS
brew install pandoc
# Linux (Debian/Ubuntu)
sudo apt-get install pandoc
# Windows — download from https://pandoc.org/installing.html
PDF output requires tectonic and specific fonts. This is optional — Markdown output and DOCX conversion instructions work without any of this.
# macOS
brew install tectonic
# Linux (Debian/Ubuntu)
curl --proto '=https' --tlsv1.2 -fsSL https://drop-sh.fullyjustified.net | sh
# Windows — download from https://tectonic-typesetting.github.io/en-US/install.html
Required fonts (for APA 7.0 CJK output):
ttf-mscorefonts-installerIf you only need Markdown output or DOCX conversion instructions, skip this entirely. Direct
.docxgeneration requires Pandoc, and PDF generation requirestectonic.
literature_corpus[] adapters (v3.6.4+, optional)If you maintain a curated literature corpus (Zotero, Obsidian, a folder of PDFs, etc.), you can pre-load it into a Material Passport so Phase 1 ARS agents read your library before searching external databases. This is opt-in and presence-based — when no corpus is supplied, ARS runs the external-DB-only flow unchanged.
Three reference Python adapters ship with v3.6.4 at scripts/adapters/:
# 1. Install adapter dependencies (PyYAML + jsonschema, already in requirements-dev.txt)
pip install -r requirements-dev.txt
# 2. Run a reference adapter (pick one that matches your corpus source).
# Both --passport and --rejection-log are required.
python scripts/adapters/folder_scan.py --input /path/to/pdfs --passport passport.yaml --rejection-log rejection_log.yaml
python scripts/adapters/zotero.py --input my-zotero-export.json --passport passport.yaml --rejection-log rejection_log.yaml
python scripts/adapters/obsidian.py --input ~/Obsidian/Lit\ Notes --passport passport.yaml --rejection-log rejection_log.yaml
# 3. Pass the resulting passport.yaml into your ARS session
# (concrete invocation depends on which skill you're running — see scripts/adapters/README.md)
Each adapter emits two files: passport.yaml (Schema 9 with literature_corpus[] populated) and rejection_log.yaml (always emitted, empty when no rejections — closed enum of categorical reasons). Users with non-reference corpus sources are expected to write their own adapters following academic-pipeline/references/adapters/overview.md.
v3.6.5 wires bibliography_agent (deep-research, Phase 1) and literature_strategist_agent (academic-paper, Phase 1) as the consumers — both run the corpus-first / search-fills-gap flow when a non-empty corpus is present and parses cleanly. See academic-pipeline/references/literature_corpus_consumers.md for the consumer protocol.
ARS exposes a few opt-in flags. All default to OFF; setting them changes behaviour for the current session only.
| Flag | Since | What it does | Reference |
|---|---|---|---|
ARS_CROSS_MODEL |
v3.0 | Enable cross-model verification (see next section) | §"Cross-model verification" |
ARS_SOCRATIC_READING_PROBE=1 |
v3.5.1 | Activate the Socratic reading-check probe layer in socratic_mentor_agent. Goal-oriented intent only; fires at most once per session when user has cited a specific paper; decline logged without penalty. |
deep-research/agents/socratic_mentor_agent.md |
ARS_PASSPORT_RESET=1 |
v3.6.3 | Promote every FULL checkpoint to a context-reset boundary. Required to emit boundary entries; not required to invoke resume_from_passport=<hash> in a fresh session. With the flag ON in systematic-review mode, reset is mandatory at every FULL checkpoint. |
academic-pipeline/references/passport_as_reset_boundary.md |
ARS_CROSS_MODEL_SAMPLE_INTERVAL |
v3.5.0 | Sampling interval for cross-model integrity checks (advisory) | shared/cross_model_verification.md |
ARS_VERIFICATION_CACHE_PATH |
v3.11 | Override the citation-verification cache location (see below). Not an on/off flag — the cache is on by default; this only relocates it. | scripts/verification_cache.py |
ARS_MODEL_TIERING |
Unreleased (#517) | Opt-in model tiering: economy (frontier session — execution-type agents step down one tier, floor Opus-class) or quality-boost (below-frontier session — judgment-type agents jump up to the frontier tier at the checkpoint surfaces: Stage 2.5/4.5 gates, the opt-in Stage 4→5 claim–ref audit, and final review). Unset = session model everywhere; unknown values warn once and behave as unset. |
shared/model_tiering.md |
The deterministic citation-existence gate (#182) cross-checks each reference against Semantic Scholar, OpenAlex, Crossref, and arXiv. To avoid re-querying the same paper across drafts, results are cached in a local SQLite store.
~/.cache/ars/verification.db on first use; entries expire after 90 days. The arXiv resolver needs no API key.ARS_VERIFICATION_CACHE_PATH=/your/path.db (e.g. to share one cache across projects, or to keep it on a faster disk)./ars-cache-invalidate <citation_key> — removes every cached row for that key (all four resolvers, all query forms); idempotent no-op if nothing is cached.The cache is single-process (SQLite WAL); concurrent multi-user access to one cache file is out of scope.
ARS works with the inherited Claude session model alone. For higher confidence, you can optionally enable a second AI model to independently verify integrity checks and challenge the devil's advocate.
# Step 1: Set your API key (choose one or both)
export OPENAI_API_KEY="sk-your-key-here" # For GPT-5.5 / GPT-5.5 Pro
export GOOGLE_AI_API_KEY="AIza-your-key-here" # For Gemini 3.1 Pro
# Step 2: Choose your cross-verification model
export ARS_CROSS_MODEL="gpt-5.5" # Recommended pair (gpt-5.5-pro = strongest reasoning, ~6x cost)
# or: export ARS_CROSS_MODEL="gemini-3.1-pro-preview" # Strong at factual verification
# or: export ARS_CROSS_MODEL="gpt-5.6-sol" # Frontier, provisional pending ARS validation (same rates as gpt-5.5)
# Optional: reasoning effort for OpenAI verifier calls (unset = provider default)
# export ARS_CROSS_MODEL_REASONING_EFFORT="medium"
# Step 3: Run Claude Code as normal — cross-verification activates automatically
claude
| Feature | Without cross-model | With cross-model |
|---|---|---|
| Integrity verification | Single-model 100% check | + risk-stratified verification by 2nd model: 100% of high-impact references (final gate adds 100% of new/changed-claim references) + a sampled remainder |
| Devil's Advocate | Single-model DA | + Cross-model generates independent critique, novel findings added |
| Peer Review | 5 reviewers (same model) | Same 5 reviewers + cross-model DA critique/calibration support |
| Irreversible checkpoints | Single-model decision | + Blind cross-model decision at design freeze + final editorial decision; divergence escalated to you, never averaged |
Full pipeline adds ~$0.60-1.10 in cross-model API costs (order-of-magnitude; measured at GPT-5.4 Pro pricing). See shared/cross_model_verification.md for the current model lineup and detailed breakdown.
Without ARS_CROSS_MODEL set, everything works exactly as before. The cross-model features are invisible and add zero overhead.
Claude discovers skills at <install-root>/<skill-name>/SKILL.md. This repo contains four separate skills, each with its own SKILL.md:
deep-researchacademic-paperacademic-paper-revieweracademic-pipelineDo not install the whole repository as one nested skill folder under .claude/skills/academic-research-skills/; that buries the four SKILL.md files one level too deep for discovery. See Anthropic's Claude Code Skills documentation.
If you use Claude Code CLI, VS Code extension, or JetBrains extension, install ARS as a plugin:
/plugin marketplace add Imbad0202/academic-research-skills
/plugin install academic-research-skills
The four skills (deep-research, academic-paper, academic-paper-reviewer, academic-pipeline) are auto-discovered from the plugin's skills/ directory.
Strongly recommended: open auto-update. Open the /plugin UI, find academic-research-skills, and toggle auto-update on. ARS releases roughly every 1–2 weeks; auto-update keeps you in sync without manual refreshes. To refresh manually: /plugin update academic-research-skills. (/plugin marketplace update academic-research-skills only refreshes the marketplace source list, not the installed plugin itself.)
Plugin platform scope:
- ✅ Claude Code CLI / VS Code extension / JetBrains extension — full support
- ❌ claude.ai web / Claude for Work / Anthropic API direct calls — plugins not supported; use Method 1 / 2 / 3 below
- ➡️ Codex CLI — install the sibling distribution Imbad0202/academic-research-skills-codex (same workflow content, Codex-native packaging)
Use this when you want ARS available inside an existing Claude Code project.
Clone the repo to a stable local path, then copy each skill folder into your project's .claude/skills/ directory:
git clone https://github.com/Imbad0202/academic-research-skills.git ~/academic-research-skills
cd /path/to/your/project
mkdir -p .claude/skills
cp -R ~/academic-research-skills/deep-research .claude/skills/deep-research
cp -R ~/academic-research-skills/academic-paper .claude/skills/academic-paper
cp -R ~/academic-research-skills/academic-paper-reviewer .claude/skills/academic-paper-reviewer
cp -R ~/academic-research-skills/academic-pipeline .claude/skills/academic-pipeline
Expected path shape:
/path/to/your/project/.claude/skills/deep-research/SKILL.md
/path/to/your/project/.claude/skills/academic-paper/SKILL.md
/path/to/your/project/.claude/skills/academic-paper-reviewer/SKILL.md
/path/to/your/project/.claude/skills/academic-pipeline/SKILL.md
Then copy the .claude/CLAUDE.md content into your project's .claude/CLAUDE.md (merge with existing if you have one).
Global Claude Code installation: To make these skills available across your Claude Code projects, install the four folders to
~/.claude/skills/instead:```bash git clone https://github.com/Imbad0202/academic-research-skills.git ~/academic-research-skills
mkdir -p ~/.claude/skills cp -R ~/academic-research-skills/deep-research ~/.claude/skills/deep-research cp -R ~/academic-research-skills/academic-paper ~/.claude/skills/academic-paper cp -R ~/academic-research-skills/academic-paper-reviewer ~/.claude/skills/academic-paper-reviewer cp -R ~/academic-research-skills/academic-pipeline ~/.claude/skills/academic-pipeline ```
Use this when you want to work directly inside the ARS repository.
git clone https://github.com/Imbad0202/academic-research-skills.git
cd academic-research-skills
claude
Use this when you want the four ARS skills available in Claude Cowork, Claude Desktop's agentic workspace.
Cowork does not read
~/.claude/skills/. That directory belongs to Claude Code (the CLI / IDE), and Cowork does not scan it. Cowork loads skills you upload through Settings → Capabilities → Skills, each as its own zip. Symlinking or copying the skill folders into~/.claude/skills/will not make them appear in Cowork, no matter how many times you restart.
Clone the repo, then zip each of the four skill folders individually so that each zip has its own SKILL.md at the top level (not nested under an extra folder). The -x "*.DS_Store" flag keeps macOS metadata out of the archive.
git clone https://github.com/Imbad0202/academic-research-skills.git
cd academic-research-skills
for s in deep-research academic-paper academic-paper-reviewer academic-pipeline; do
(cd "$s" && zip -r "../$s.zip" . -x "*.DS_Store")
done
This produces four zips in the repo root: deep-research.zip, academic-paper.zip, academic-paper-reviewer.zip, academic-pipeline.zip. Each zip's top level looks like:
SKILL.md
agents/
examples/
references/
templates/
Verified on Claude Desktop (June 2026): deep-research.zip built this way installs cleanly, the full skill description is preserved (no 200-character truncation), and /deep-research appears in the Cowork command palette.
Type / in a Cowork Task to open the command palette and select a skill, or describe your intent in plain language (e.g. "do a deep literature review on X") and Cowork routes by the skill's description.
Uploaded this way, each skill runs on its own as a standalone instruction set. This is a different experience from Claude Code. In Claude Code the four skills work as a coordinated team: academic-pipeline chains them (research → write → review → revise) and each skill drives its own group of sub-agents. Cowork's uploaded-skill runtime does not provide that sub-agent orchestration, so the individual skills respond, but the full end-to-end pipeline does not run the way it does in Claude Code. For the full orchestrated experience, install ARS in Claude Code via Method 0 (plugin) or Method 1 (project skills) above.
ARS is a Claude Code-native suite. The four skills are 12-13-agent teams that depend on multi-agent orchestration, executable scripts under scripts/, and Material Passport file handoffs. claude.ai's web interface delivers a different runtime than Claude Code, and the two access paths it offers reach this repository in different ways:
description cap surface as upload-time errors; see Anthropic's Custom Skills packaging documentation and How to create custom Skills.claude.ai Projects deliver content as static knowledge for Claude to retrieve and cite — see Anthropic's What are Projects?. This is NOT a Skill install. Skill auto-loading does not happen. Trigger phrases do not route. Claude can read the repo content for reading and citation, and answer questions about it, but does not execute the skills as agentic workflows.
Use this when you want claude.ai to have access to the repo content — including the agent definitions, references, and example outputs — for reading and citation, without needing agentic skill execution. For agentic execution, use Method 3 (Cowork) on the desktop, or Methods 1-2 in Claude Code.
Imbad0202/academic-research-skills.| Select | Directory / file | Why |
|---|---|---|
| ✅ | deep-research/ |
Core skill content for reading |
| ✅ | academic-paper/ |
Core skill content for reading |
| ✅ | academic-paper-reviewer/ |
Core skill content for reading |
| ✅ | academic-pipeline/ |
Core skill content for reading |
| ✅ | shared/ |
Cross-model verification, handoff schemas, shared protocols |
| ✅ | scripts/ |
literature_corpus[] adapters (folder_scan, zotero, obsidian) + schema validators; required for Material Passport corpus mode and CI-style validation |
| ✅ | MODE_REGISTRY.md |
Mode definitions |
| Optional | .claude/ |
Project-level routing rules. Skip if you set Project Instructions in step 5 below (recommended path); include only if you prefer to keep routing rules visible as Project files. |
| Optional | examples/ |
Useful for reference examples; skip if you want a smaller Project knowledge set |
| Optional | .github/, READMEs, LICENSE, etc. |
Repository metadata; not needed for core reading context |
.claude/CLAUDE.md for better routing.Anthropic's current Project file limits state that Project file count is not artificially capped at 200; files have a 30 MB per-file limit and total usable content is still subject to context-window limits at runtime. Keep the Project focused so Claude retrieves the relevant files reliably.
Method 4a is claude.ai's standard Custom Skill install path: zip each skill folder, upload through Settings → Capabilities → Skills, and Claude treats it as an installed Skill with auto-loading and routing. claude.ai's Custom Skills do support multi-file skill packages including scripts/ (see Anthropic's How to create custom Skills on supporting files and code execution), so Method 4a is mechanically capable of hosting skills with executable assets. The reasons not to recommend it for this specific suite are different and compound:
description field to 200 characters per the Custom Skills documentation, while the Agent Skills specification and Claude Code Skills documentation allow up to 1,024 characters. The four ARS descriptions currently sit in the 440-842 range, front-loading routing keywords that Claude Code and Cowork use to discriminate between research, writing, review, and orchestration. Trimming them to fit Method 4a would weaken routing on Claude Code and Cowork — the platforms ARS was built for — in exchange for an unverified partial fit on claude.ai.Recommended paths instead:
If you still want to try Method 4a despite the limitations above, zip each skill folder so the archive's top-level entry is <skill-name>/SKILL.md (not <skill-name>/<skill-name>/SKILL.md — that nesting buries the discovery file one level too deep). The zip -r commands below produce that shape correctly:
git clone https://github.com/Imbad0202/academic-research-skills.git
cd academic-research-skills
zip -r deep-research.zip deep-research
zip -r academic-paper.zip academic-paper
zip -r academic-paper-reviewer.zip academic-paper-reviewer
zip -r academic-pipeline.zip academic-pipeline
Then in claude.ai:
deep-research.zip.academic-paper.zip.academic-paper-reviewer.zip.academic-pipeline.zip.The upload UI will reject each zip with a description-too-long error because every ARS description exceeds claude.ai's 200-character cap. The descriptions are intentionally not trimmed; see the rationale above.
claude.ai vs Claude Code:
ARS_CROSS_MODEL) requires Claude Code with API keys..docx generation requires Pandoc, and LaTeX/PDF output requires Claude Code with tectonic; claude.ai can still produce Markdown and DOCX conversion instructions.Claude Science imports the four ARS skills straight from GitHub:
https://github.com/Imbad0202/academic-research-skills and click Preview.academic-paper, academic-paper-reviewer, academic-pipeline, deep-research) appear — click Import 4 skills.Notes:
.claude-plugin/marketplace.json. Earlier tags exposed skills only through the symlinked skills/ directory, which GitHub-API importers cannot traverse (they report "no skills/ dirs with SKILL.md").SKILL.md and its protocols (research / writing / review), which Claude Science's agent reads when relevant./ars-* slash commands, hooks (including the write-scope guard), cross-model verification scripts, and Task-tool subagent orchestration. Claude Science runs its own specialist-agent system and a built-in citation-checking reviewer; treat a Claude Science run as "ARS methodology + Claude Science's own machinery", not a 1:1 pipeline port.