Skip to main content
ClaudeWave
Slash Command4.3k repo starsupdated 7d ago

research-init

This slash command initializes a research project by creating a Zotero-integrated literature review workflow. It accepts a research topic and optional scope parameters, then systematically audits or creates project-scoped source collections, generates research question cards, and produces a research proposal only after verifying sufficient evidence availability. Use this command when starting a new research project or conducting a thorough literature review that requires structured source management and evidence-based proposal development.

Install in Claude Code
Copy
mkdir -p ~/.claude/commands && curl -fsSL https://raw.githubusercontent.com/Galaxy-Dawn/claude-scholar/HEAD/commands/research-init.md -o ~/.claude/commands/research-init.md
Then start a new Claude Code session; the slash command loads automatically.

research-init.md

# /research-init - Zotero-Integrated Research Startup Workflow

Launch a project-scoped literature startup workflow for the research topic "$topic", with scope "$scope" and output type "$output_type".

Default behavior is evidence-first: if Zotero is unavailable, if full-paper evidence is insufficient, or if the selected Research Question Card is not ready, produce an intake/audit result instead of forcing a polished proposal.

## Usage

### Basic Usage

```bash
/research-init "transformer interpretability"
```

### Specify Scope

```bash
/research-init "few-shot learning" focused
```

### Specify All Parameters

```bash
/research-init "neural architecture search" broad both
```

## Workflow

Execute the following steps in order:

### Step 0: Intake and Capability Gate

Before creating collections or writing files:

1. Confirm the practical purpose: new project intake, literature review, proposal draft, or source audit.
2. Check whether Zotero MCP is configured and writable.
3. If Zotero MCP is unavailable, read-only, or the user asks for dry-run mode:
   - do **not** create collections,
   - do **not** import papers,
   - produce `research-question-card.md` and a source candidate/audit section,
   - either skip `references.bib` or create a stub that clearly says canonical BibTeX is unavailable unless reliable BibTeX can be generated from existing sources,
   - stop before `literature-review.md` or `research-proposal.md` unless the user explicitly provides sufficient local evidence.
4. If the topic, target venue/audience, or project boundary is ambiguous enough to change the search strategy, ask a short clarifying question before acting.

### Step 1: Create Zotero Research Collection

1. Call the Zotero MCP tool `zotero_create_collection` to create the main collection, named `Research-{Topic}-{YYYY-MM}` (extract a short PascalCase keyword from the topic, use the current year and month)
2. Create sub-collections under the main collection:
   - `Core Papers`
   - `Methods`
   - `Applications`
   - `Baselines`
   - `To-Read`
3. Record the `collection_key` for each sub-collection (needed for import in Step 2)

### Step 2: Literature Search and Import

1. Use WebSearch to find papers related to "$topic"
   - Search strategy: use the topic directly, plus variant combinations of key terms
   - Target sources: arXiv, DOI-backed publisher landing pages, conference proceedings with full-paper pages, direct PDF pages
   - Time range: focused mode searches the last 3 years, broad mode searches the last 5 years
   - Target paper count: 20-50 papers for focused scope, 50-100 for broad scope
2. **Source quality filter before extraction**:
   - Prefer candidates that expose at least one of: DOI, arXiv ID, direct PDF URL, or clear citation metadata for a full paper
   - **Explicitly avoid abstract-only pages as primary sources** when a better source exists for the same paper (for example conference abstract listings, event schedule pages, teaser pages, or pages that only contain a short abstract with no DOI/arXiv/PDF)
   - For the same title, source preference should be:
     1. DOI-backed publisher page
     2. arXiv abs/pdf page
     3. direct PDF URL
     4. full-paper proceedings landing page
     5. abstract-only page (last resort only)
   - If the discovered page is clearly abstract-only and no DOI/arXiv/PDF can be extracted, do **not** prioritize it for import; keep searching for a better source first
   - Abstract-only pages should **not** be counted toward the target paper quota unless all better identifier-bearing/full-paper sources for that title have been exhausted
3. Extract candidate DOI / arXiv ID / landing-page URL from filtered search results
4. **Classify before import**: For each paper, determine which sub-collection it belongs to (Core Papers, Methods, Applications, Baselines, or To-Read) based on its title, abstract, and venue
5. **Pre-import deduplication (two-step)**:
   - Call the Zotero MCP tool `zotero_search_items` with the DOI string when available to find potential matches
   - Call `zotero_get_item_metadata` on results to confirm the DOI field matches exactly
   - If confirmed match → skip import, log ("Already exists: {DOI} → {item_key}")
   - For papers without DOI → search by title using token overlap ratio (lowercase both titles, remove punctuation, compute intersection of words / union of words). Ratio > 0.8 = duplicate
6. **Abstract-only page guardrail (mandatory)**:
   - Before calling `zotero_add_items_by_identifier`, check whether the chosen URL is likely an abstract-only page
   - Strong signals include: URL/path contains `abstract`, page title/heading is an abstract listing, page body lacks PDF/full-text links, and no DOI/arXiv identifier is visible
   - If it is abstract-only **and** no DOI/arXiv/PDF can be recovered, prefer one of:
     - keep searching for a better source for the same title, or
     - skip this candidate for now
   - Do **not** eagerly import abstract-only pages into analytical sub-collections just to satisfy paper count
   - If an abstract-only page is imported as a last-resort placeholder, it must be treated as `To-Read` only, never as a confirmed paper source for `Core Papers`, `Methods`, `Applications`, or `Baselines`
   - When you skip such a candidate during Step 2, print this exact user-facing line in the terminal output:
     - `Skipped abstract-only page; searching better source`
7. **Smart import with collection assignment**: Call `zotero_add_items_by_identifier` with the target sub-collection's `collection_key`, `attach_pdf=true`, and `fallback_mode="webpage"`
   - Route priority is fixed: DOI / doi.org URL → arXiv ID or arXiv URL → direct PDF URL → generic landing-page URL
   - The tool will prefer proper paper/preprint items and only fall back to `webpage` when no reliable DOI/arXiv identifier is found
   - For difficult publisher pages and cookie-gated PDFs, the import path may additionally use the local Zotero connector/browser
code-reviewerSubagent

Expert code review specialist. Proactively reviews code for quality, security, and maintainability. Use immediately after writing or modifying code. MUST BE USED for all code changes.

kaggle-minerSubagent

Use this agent when the user provides a Kaggle competition URL or asks to learn from Kaggle winning solutions. Examples:

literature-reviewerSubagent

Use this agent when the user asks to "conduct literature review", "search for papers", "analyze research papers", "identify research gaps", "review related work", or mentions starting a research project. This agent integrates with Zotero for automated paper collection, organization, and full-text analysis. Examples:

paper-minerSubagent

Use this agent when the user provides a research paper (PDF/DOCX/arXiv link) or asks to learn writing patterns from papers, extract venue-specific writing signals, study paper structure, or mine rebuttal strategies. The agent writes extracted knowledge into the active installed paper-miner writing memory for ml-paper-writing. It does not maintain project-specific writing memory.

rebuttal-writerSubagent

Use this agent when the user asks to "write rebuttal", "respond to reviewers", "analyze review comments", or needs help with academic paper review response. This agent specializes in systematic rebuttal writing with professional tone and structured responses.

tdd-guideSubagent

Test-driven development guide for writing tests first, implementing the smallest passing change, and keeping verification tight. Use when the user explicitly wants TDD or when a task should be driven by failing tests before code.

analyze-resultsSlash Command

Run a blocker-first post-experiment workflow: validate evidence, produce strict statistical analysis when possible, and generate a decision-oriented results report only when the analysis bundle is sufficient. Uses results-analysis + results-report as a gated two-stage workflow.

commitSlash Command

Commit changes following Conventional Commits format (local only, no push).