
Researchclaw
- 23 installs
- 20 repo stars
- Updated April 7, 2026
- othmanadi/researchclaw-skill
Helps with ai & agent building tasks during AI-assisted development.
About
researchclaw is a Claude Code skill for ai & agent building. It helps solo builders move faster with AI-assisted coding.
- researchclaw
- AI & Agent Building
- AI-coding skill
Researchclaw by the numbers
- 23 all-time installs (skills.sh)
- Ranked #9,994 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
- Data as of Aug 4, 2026 (Skillselion catalog sync)
npx skills add https://github.com/othmanadi/researchclaw-skill --skill researchclawAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 23 |
|---|---|
| repo stars | ★ 20 |
| Last updated | April 7, 2026 |
| Repository | othmanadi/researchclaw-skill ↗ |
What it does
Helps with ai & agent building tasks during AI-assisted development.
Files
ResearchClaw Skill — Autonomous Research Pipeline
This skill wraps AutoResearchClaw, a 23-stage pipeline that takes a research topic and produces a conference-grade LaTeX paper with real citations, sandbox-executed experiments, multi-agent peer review, and citation verification.
Honesty policy: This skill does not fabricate capabilities. Every command maps to real upstream functionality. If something fails, the skill reports the actual error and suggests concrete fixes — it never pretends the problem does not exist.
Commands
| Command | Purpose |
|---|---|
/researchclaw | Show help and available subcommands |
/researchclaw:setup | Check and install all prerequisites (Python, Docker, LaTeX, pip packages) |
/researchclaw:config | Interactive config wizard — generates a working config.yaml |
/researchclaw:run | Start a research pipeline run |
/researchclaw:status | Check the status of a running or completed pipeline |
/researchclaw:resume | Resume a pipeline from the last successful stage |
/researchclaw:diagnose | Auto-detect and explain common failures |
/researchclaw:validate | Validate config, dependencies, and connectivity before running |
---
/researchclaw — Help
When invoked without a subcommand, display this command list and a one-line status summary:
1. Check if researchclaw CLI is installed: which researchclaw 2. Check if config.yaml exists in the current directory 3. Print the command table above 4. Suggest the most logical next step based on what is missing
---
/researchclaw:setup — Prerequisites Installation
MANDATORY: Ask the user before installing anything. Present what is missing and get explicit approval.
Run the prerequisite check script:
bash "${CLAUDE_SKILL_DIR}/scripts/check-prereqs.sh"The script checks each dependency and outputs a JSON report. Based on the report:
1. Python 3.11+: Check python3 --version. If missing or too old, suggest pyenv install 3.11 or system package manager. 2. pip / uv: Check pip3 --version or uv --version. Suggest uv if not present (faster). 3. Docker: Check docker info. If Docker daemon is not running, tell the user honestly — this skill cannot start Docker for you on most systems. 4. LaTeX: Check pdflatex --version. If missing, suggest sudo apt-get install texlive-full (Linux) or brew install --cask mactex (macOS). Be honest: this is a large download (2-4 GB). 5. AutoResearchClaw: Check pip3 show researchclaw. If not installed:
pip3 install researchclawOr from source:
git clone https://github.com/aiming-lab/AutoResearchClaw.git
cd AutoResearchClaw
pip3 install -e ".[all]"After installation, re-run the check script to verify everything passes.
What this skill CANNOT do:
- Start the Docker daemon (requires system-level access)
- Install LaTeX without sudo on Linux
- Fix network/firewall issues blocking API access
- Provide LLM API keys — the user must supply their own
---
/researchclaw:config — Interactive Configuration Wizard
Generate a working config.yaml by asking the user a series of questions. Use AskUserQuestion for each batch.
Batch 1 — Essential settings (MUST ask):
1. Research topic: What do you want to research? (free text) 2. LLM provider: Which LLM API? Options: openai, anthropic, azure, deepseek, local 3. API key: Provide your API key, or the environment variable name that holds it (e.g., OPENAI_API_KEY) 4. Model: Which model? Suggest defaults per provider:
- openai:
gpt-4o - anthropic:
claude-sonnet-4-20250514 - deepseek:
deepseek-chat
Batch 2 — Experiment settings (ask with smart defaults):
5. Experiment mode: simulated (no code execution, fastest), sandbox (local execution), or ssh_remote (GPU server). Default: simulated 6. Auto-approve gates: Skip human approval at stages 5, 9, 20? Default: true for first run 7. Output directory: Where to save artifacts. Default: artifacts/
Batch 3 — Optional advanced settings (offer but don't require):
8. Paper template: neurips, icml, iclr, or generic. Default: neurips 9. Max iterations: For iterative pipeline mode. Default: 3 10. Literature sources: arxiv, semantic_scholar, or both. Default: both
After collecting answers, generate config.yaml using the template in assets/config-template.yaml. Write it to the current directory and show the user the generated file.
Validation: After generating, run:
researchclaw validate --config config.yamlIf validation fails, explain what went wrong and offer to fix it.
---
/researchclaw:run — Execute the Pipeline
Pre-flight checks (always run before starting):
1. Run /researchclaw:validate logic silently 2. If any check fails, report it and ask the user whether to proceed or fix first
Start the pipeline:
researchclaw run --topic "$ARGUMENTS" --config config.yaml --auto-approve 2>&1 | tee researchclaw-run.logIf $ARGUMENTS is empty, read the topic from config.yaml.
During execution:
- The pipeline runs 23 stages. Each stage produces output in
artifacts/<run-id>/stage-N/ - Monitor progress by checking which stage directories exist
- If the pipeline fails, capture the error output and run
/researchclaw:diagnoselogic automatically
After completion:
- Report which stages succeeded and which failed
- Show the path to the generated paper (typically
artifacts/<run-id>/stage-17/paper_draft.mdor the final PDF) - Show total execution time
---
/researchclaw:status — Pipeline Status
Check the current state of a pipeline run:
ls -la artifacts/ 2>/dev/null | tail -5For the most recent run:
1. Find the latest artifacts/rc-* directory 2. Count completed stages: ls -d artifacts/rc-*/stage-* 2>/dev/null | wc -l 3. Check for pipeline_summary.json — if it exists, the run is complete 4. If no summary exists, check which stage was last modified to estimate current progress 5. Report: Stage X/23 complete. Current stage: [stage name]. Status: [running/failed/complete]
Stage name mapping (for human-readable output):
| Stage | Name |
|---|---|
| 1 | Topic Initialization |
| 2 | Problem Decomposition |
| 3 | Literature Search |
| 4 | Literature Analysis |
| 5 | Research Direction (Gate) |
| 6 | Hypothesis Generation |
| 7 | Experiment Design |
| 8 | Experiment Plan Review |
| 9 | Experiment Approval (Gate) |
| 10 | Code Generation |
| 11 | Code Review |
| 12 | Experiment Execution |
| 13 | Result Collection |
| 14 | Result Analysis |
| 15 | Paper Outline |
| 16 | Section Writing |
| 17 | Paper Draft |
| 18 | Peer Review |
| 19 | Revision |
| 20 | Final Review (Gate) |
| 21 | Citation Verification |
| 22 | Visualization |
| 23 | Final Export |
---
/researchclaw:resume — Resume a Failed Run
Resume from the last successful stage:
1. Find the latest run directory: ls -td artifacts/rc-* | head -1 2. Find the last completed stage: check pipeline_summary.json or find the highest-numbered stage-* directory with output files 3. Determine the next stage name from the stage mapping above 4. Run:
researchclaw run --config config.yaml --from-stage STAGE_NAME --output <run-dir> --auto-approve 2>&1 | tee researchclaw-resume.logKnown issue (upstream): The --from-stage flag may not work correctly in all versions. If resume fails, inform the user honestly and suggest:
- Starting a fresh run
- Manually copying successful stage outputs to a new run directory
---
/researchclaw:diagnose — Auto-Diagnose Failures
Read the most recent log and error output to identify the problem:
tail -100 researchclaw-run.log 2>/dev/null || tail -100 researchclaw-resume.log 2>/dev/nullCommon failure patterns and fixes:
| Error Pattern | Cause | Fix |
|---|---|---|
HTTP 401 or AuthenticationError | Invalid or expired API key | Check config.yaml → llm.api_key or the env var |
HTTP 429 or RateLimitError | API rate limit hit | Wait 60 seconds and resume, or switch to a different model |
Stage 10 failure | Code generation produced invalid Python | Check artifacts/*/stage-10/experiment.py for syntax errors |
Docker errors | Docker not running or permission denied | Run docker info to verify; may need sudo usermod -aG docker $USER |
pdflatex not found | LaTeX not installed | Install with sudo apt-get install texlive-full |
ModuleNotFoundError | Missing Python dependency | Run pip3 install researchclaw[all] |
quality_score < threshold | Quality gate too strict | Edit config.yaml → lower quality.min_score (default 2.0 is very strict) |
MemoryError or OOM | Insufficient RAM (needs 32GB+) | Use simulated experiment mode or reduce max_concurrent_stages |
ConnectionError to arxiv/semantic_scholar | Network issue | Check internet connectivity; try curl https://api.semanticscholar.org/graph/v1/paper/search?query=test |
YAML parse error in config | Malformed config file | Run python3 -c "import yaml; yaml.safe_load(open('config.yaml'))" to find the error |
After diagnosis, suggest the specific fix. If the fix is automatable (e.g., installing a package), offer to do it with user approval.
---
/researchclaw:validate — Pre-Run Validation
Run all checks without starting the pipeline:
bash "${CLAUDE_SKILL_DIR}/scripts/check-prereqs.sh"Then additionally:
1. Config syntax: python3 -c "import yaml; yaml.safe_load(open('config.yaml'))" 2. Config completeness: Check that llm.api_key or llm.api_key_env is set, research.topic is non-empty 3. API connectivity: Test the LLM endpoint with a minimal request 4. Docker health: docker info (if experiment mode is sandbox) 5. Disk space: df -h . — warn if less than 10 GB free 6. Write permissions: touch artifacts/.write-test && rm artifacts/.write-test
Report results as a checklist with pass/fail for each item.
---
Additional Resources
- For the full pipeline stage reference, see references/pipeline-stages.md
- For configuration field reference, see references/config-reference.md
- For troubleshooting recipes, see references/troubleshooting.md
- For Chinese documentation, see references/README-CN.md
---
Principles
1. Never lie. If something is broken, say so. If a feature does not exist upstream, do not pretend it does. 2. Always test. Run validation before every pipeline execution. Check results after every action. 3. Ask before acting. Never install packages, modify configs, or start long-running processes without explicit user approval. 4. Report honestly. Show actual error messages, not sanitized summaries. The user needs real information to debug. 5. Stay current. This skill targets AutoResearchClaw v0.3.x. If the upstream version changes significantly, some commands may need updating.
# AutoResearchClaw Configuration
# Generated by researchclaw-skill config wizard
# Documentation: https://github.com/aiming-lab/AutoResearchClaw
# --- Research Topic ---
research:
topic: "${TOPIC}"
# Optional: provide additional context or constraints
# context: "Focus on transformer architectures for time series"
# --- LLM Configuration ---
llm:
provider: "${LLM_PROVIDER}" # openai, anthropic, azure, deepseek, local
model: "${LLM_MODEL}" # e.g., gpt-4o, claude-sonnet-4-20250514, deepseek-chat
api_key_env: "${API_KEY_ENV}" # Environment variable holding the API key
# api_key: "" # Or hardcode (NOT recommended)
# base_url: "" # Custom endpoint (for Azure, local, etc.)
temperature: 0.7
max_tokens: 4096
# --- Experiment Configuration ---
experiment:
mode: "${EXPERIMENT_MODE}" # simulated, sandbox, ssh_remote
sandbox:
python_path: "python3"
timeout: 300 # seconds per experiment
max_retries: 2
# ssh_remote: # Only needed for ssh_remote mode
# host: "gpu-server.example.com"
# user: "researcher"
# key_path: "~/.ssh/id_rsa"
# python_path: "/usr/bin/python3"
# --- Pipeline Settings ---
pipeline:
auto_approve_gates: ${AUTO_APPROVE} # true/false — skip human approval at stages 5, 9, 20
max_concurrent_stages: 1
output_dir: "${OUTPUT_DIR}"
# --- Paper Settings ---
paper:
template: "${PAPER_TEMPLATE}" # neurips, icml, iclr, generic
# author: "Your Name"
# institution: "Your Institution"
# --- Literature Search ---
literature:
sources: ${LITERATURE_SOURCES} # [arxiv, semantic_scholar] or [arxiv] or [semantic_scholar]
max_papers: 30
search_depth: 2 # Number of citation hops
# --- Iterative Pipeline ---
iterative:
max_iterations: ${MAX_ITERATIONS}
convergence_rounds: 2 # Stop if no improvement for N rounds
# --- Quality Gates ---
quality:
min_score: 3.0 # Minimum quality score (1-10) to pass gates
# Note: upstream default is 2.0 which is very strict and blocks many runs
# Raise to 4.0+ for higher quality, lower to 1.0 to always pass
AutoResearchClaw Configuration Reference
This document covers all configuration fields in config.yaml. Fields marked required must be set for the pipeline to run.
LLM Configuration
| Field | Required | Type | Default | Description |
|---|---|---|---|---|
llm.provider | Yes | string | — | LLM provider: openai, anthropic, azure, deepseek, local |
llm.model | Yes | string | — | Model name (e.g., gpt-4o, claude-sonnet-4-20250514) |
llm.api_key | Yes* | string | — | API key (use api_key_env instead for security) |
llm.api_key_env | Yes* | string | — | Environment variable name holding the API key |
llm.base_url | No | string | provider default | Custom API endpoint URL |
llm.temperature | No | float | 0.7 | Sampling temperature (0.0-2.0) |
llm.max_tokens | No | int | 4096 | Maximum tokens per LLM call |
*Either api_key or api_key_env must be set, not both.
Provider-Specific Notes
OpenAI:
- Default base_url:
https://api.openai.com/v1 - Recommended models:
gpt-4o,gpt-4o-mini - Set
OPENAI_API_KEYenvironment variable
Anthropic:
- Default base_url:
https://api.anthropic.com - Recommended models:
claude-sonnet-4-20250514,claude-3-5-haiku-20241022 - Set
ANTHROPIC_API_KEYenvironment variable
Azure OpenAI:
- Must set
base_urlto your Azure endpoint - Must set
api_key_envto your Azure API key variable - Model name should match your Azure deployment name
DeepSeek:
- Default base_url:
https://api.deepseek.com - Recommended model:
deepseek-chat - Set
DEEPSEEK_API_KEYenvironment variable
Research Configuration
| Field | Required | Type | Default | Description |
|---|---|---|---|---|
research.topic | Yes | string | — | The research topic or question |
research.context | No | string | — | Additional context or constraints |
Experiment Configuration
| Field | Required | Type | Default | Description |
|---|---|---|---|---|
experiment.mode | No | string | simulated | Execution mode: simulated, sandbox, ssh_remote |
experiment.sandbox.python_path | No | string | python3 | Python interpreter path for sandbox mode |
experiment.sandbox.timeout | No | int | 300 | Max seconds per experiment execution |
experiment.sandbox.max_retries | No | int | 2 | Retry count on experiment failure |
experiment.ssh_remote.host | Cond. | string | — | SSH hostname (required for ssh_remote mode) |
experiment.ssh_remote.user | Cond. | string | — | SSH username |
experiment.ssh_remote.key_path | Cond. | string | — | Path to SSH private key |
experiment.ssh_remote.python_path | No | string | python3 | Remote Python path |
Pipeline Configuration
| Field | Required | Type | Default | Description |
|---|---|---|---|---|
pipeline.auto_approve_gates | No | bool | false | Skip human approval at gate stages (5, 9, 20) |
pipeline.max_concurrent_stages | No | int | 1 | Parallel stage execution (experimental) |
pipeline.output_dir | No | string | artifacts/ | Base output directory |
Paper Configuration
| Field | Required | Type | Default | Description |
|---|---|---|---|---|
paper.template | No | string | neurips | LaTeX template: neurips, icml, iclr, generic |
paper.author | No | string | — | Author name for the paper |
paper.institution | No | string | — | Institution name |
Literature Configuration
| Field | Required | Type | Default | Description |
|---|---|---|---|---|
literature.sources | No | list | [arxiv, semantic_scholar] | Literature search sources |
literature.max_papers | No | int | 30 | Maximum papers to retrieve |
literature.search_depth | No | int | 2 | Citation hop depth |
Quality Configuration
| Field | Required | Type | Default | Description |
|---|---|---|---|---|
quality.min_score | No | float | 2.0 | Minimum quality score (1-10) for gate stages |
Important: The default min_score of 2.0 is very strict and blocks many first-time runs. Consider setting it to 3.0 or higher for better results, or 1.0 to always pass (useful for testing).
Iterative Pipeline Configuration
| Field | Required | Type | Default | Description |
|---|---|---|---|---|
iterative.max_iterations | No | int | 3 | Maximum improvement iterations |
iterative.convergence_rounds | No | int | 2 | Stop if no improvement for N rounds |
AutoResearchClaw Pipeline Stages Reference
The pipeline consists of 23 stages organized into 8 phases. Three stages (5, 9, 20) are human-approval gates that pause for review unless --auto-approve is set.
Phase 1: Topic and Problem Definition (Stages 1-2)
| Stage | Name | What It Does | Output |
|---|---|---|---|
| 1 | TOPIC_INIT | Parse and refine the research topic into a structured research question | topic_analysis.json |
| 2 | PROBLEM_DECOMPOSE | Break the research question into sub-problems and identify key variables | problem_decomposition.json |
Phase 2: Literature Review (Stages 3-4)
| Stage | Name | What It Does | Output |
|---|---|---|---|
| 3 | LITERATURE_SEARCH | Query arXiv and Semantic Scholar for relevant papers | search_results.json, papers/ |
| 4 | LITERATURE_ANALYSIS | Read, summarize, and identify gaps in existing work | literature_review.json, gap_analysis.json |
Phase 3: Research Direction (Stage 5 — Gate)
| Stage | Name | What It Does | Output |
|---|---|---|---|
| 5 | RESEARCH_DIRECTION | Present proposed research direction for human approval | direction_proposal.json |
Gate behavior: Pauses for human review. The user can approve, modify, or reject the direction. With --auto-approve, this is skipped.
Phase 4: Hypothesis and Experiment Design (Stages 6-9)
| Stage | Name | What It Does | Output |
|---|---|---|---|
| 6 | HYPOTHESIS_GEN | Generate testable hypotheses based on literature gaps | hypotheses.json |
| 7 | EXPERIMENT_DESIGN | Design experiments to test each hypothesis | experiment_design.json |
| 8 | EXPERIMENT_REVIEW | AI peer review of experiment design for flaws | design_review.json |
| 9 | EXPERIMENT_APPROVAL | Present experiment plan for human approval (Gate) | approved_plan.json |
Phase 5: Experiment Execution (Stages 10-14)
| Stage | Name | What It Does | Output |
|---|---|---|---|
| 10 | CODE_GENERATION | Generate Python experiment code | experiment.py |
| 11 | CODE_REVIEW | AI review of generated code for bugs and issues | code_review.json |
| 12 | EXPERIMENT_EXECUTION | Execute the experiment in sandbox/simulated/remote mode | runs/run-*.json |
| 13 | RESULT_COLLECTION | Collect and organize experiment results | raw_results.json |
| 14 | RESULT_ANALYSIS | Statistical analysis and interpretation of results | experiment_summary.json, results_table.tex |
Stage 10 is the most common failure point. The generated code may have syntax errors, missing imports, or incompatible library versions. If it fails, check artifacts/*/stage-10/experiment.py.
Phase 6: Paper Writing (Stages 15-17)
| Stage | Name | What It Does | Output |
|---|---|---|---|
| 15 | PAPER_OUTLINE | Generate paper structure and section outline | paper_outline.json |
| 16 | SECTION_WRITING | Write each section (abstract, intro, method, results, discussion, conclusion) | sections/ |
| 17 | PAPER_DRAFT | Assemble sections into a complete paper draft | paper_draft.md, paper_draft.tex |
Phase 7: Review and Revision (Stages 18-20)
| Stage | Name | What It Does | Output |
|---|---|---|---|
| 18 | PEER_REVIEW | Multi-agent peer review simulating conference reviewers | reviews.json |
| 19 | REVISION | Address reviewer comments and revise the paper | revised_paper.md |
| 20 | FINAL_REVIEW | Present revised paper for human approval (Gate) | final_review.json |
Phase 8: Finalization (Stages 21-23)
| Stage | Name | What It Does | Output |
|---|---|---|---|
| 21 | CITATION_VERIFICATION | 4-layer verification of all citations (URL check, DOI check, content match, hallucination detection) | citation_report.json |
| 22 | VISUALIZATION | Generate charts and figures for the paper | charts/ |
| 23 | FINAL_EXPORT | Compile LaTeX to PDF, generate final artifacts | final_paper.pdf, final_paper.tex |
Typical Execution Times
| Mode | Approximate Time | Notes |
|---|---|---|
| Simulated (no code execution) | 30-60 minutes | Fastest, good for testing |
| Sandbox (local execution) | 1-3 hours | Depends on experiment complexity |
| SSH Remote (GPU) | 1-4 hours | Depends on GPU availability and experiment |
Hardware Requirements
| Component | Minimum | Recommended |
|---|---|---|
| RAM | 16 GB | 32 GB+ |
| Disk | 10 GB free | 50 GB free |
| CPU | 4 cores | 8+ cores |
| GPU | Not required (simulated mode) | NVIDIA with CUDA (sandbox/remote) |
| Network | Required (API calls + literature search) | Stable broadband |
ResearchClaw 技能 — 自主研究管线
English | 中文
简介
本技能封装了 AutoResearchClaw,一个 23 阶段的自主研究管线。输入一个研究主题,即可自动完成从文献综述到论文生成的全流程,包括真实引文检索、沙箱实验执行、多智能体同行评审和引文验证。
命令列表
| 命令 | 功能 |
|---|---|
/researchclaw | 显示帮助信息和可用子命令 |
/researchclaw:setup | 检查并安装所有前置依赖(Python、Docker、LaTeX、pip 包) |
/researchclaw:config | 交互式配置向导 — 生成可用的 config.yaml |
/researchclaw:run | 启动研究管线 |
/researchclaw:status | 查看管线运行状态 |
/researchclaw:resume | 从上次成功的阶段恢复运行 |
/researchclaw:diagnose | 自动检测并解释常见故障 |
/researchclaw:validate | 运行前验证配置、依赖和连接性 |
快速开始
第一步:安装前置依赖
/researchclaw:setup技能会自动检测缺少的依赖,并在安装前征求你的同意。
第二步:生成配置文件
/researchclaw:config按照交互式向导回答问题,技能会自动生成 config.yaml。
你需要准备:
- 研究主题:你想研究什么?
- LLM API 密钥:OpenAI、Anthropic、DeepSeek 等任一提供商的 API 密钥
- 实验模式:
simulated(模拟,最快)、sandbox(本地执行)或ssh_remote(远程 GPU)
第三步:运行管线
/researchclaw:run 你的研究主题第四步:查看状态
/researchclaw:status系统要求
| 组件 | 最低要求 | 推荐配置 |
|---|---|---|
| Python | 3.11+ | 3.12+ |
| 内存 | 16 GB | 32 GB+ |
| 磁盘 | 10 GB 可用空间 | 50 GB+ |
| Docker | 可选(模拟模式不需要) | 推荐安装 |
| LaTeX | 可选(生成 PDF 需要) | texlive-full |
| 网络 | 必需(API 调用 + 文献检索) | 稳定宽带 |
常见问题
API 密钥错误 (HTTP 401)
检查 config.yaml 中的 llm.api_key_env 是否指向正确的环境变量。
echo $OPENAI_API_KEY # 确认变量已设置阶段 10 代码生成失败
这是最常见的失败点。建议: 1. 使用更强的模型(gpt-4o 或 claude-sonnet-4-20250514) 2. 切换到 simulated 模式跳过代码执行 3. 运行 /researchclaw:diagnose 获取详细错误信息
质量门控拒绝
默认阈值(2.0)非常严格。编辑 config.yaml:
quality:
min_score: 3.0 # 降低阈值Docker 未运行
# Linux
sudo systemctl start docker
# macOS
open -a Docker中国大陆网络问题
如果无法访问 arXiv 或 Semantic Scholar:
1. 配置代理:
export HTTP_PROXY=http://your-proxy:port
export HTTPS_PROXY=http://your-proxy:port2. 考虑使用 DeepSeek 作为 LLM 提供商(国内访问更稳定):
llm:
provider: deepseek
model: deepseek-chat
api_key_env: DEEPSEEK_API_KEY管线阶段概览
| 阶段 | 名称 | 说明 |
|---|---|---|
| 1 | 主题初始化 | 解析和细化研究主题 |
| 2 | 问题分解 | 将研究问题拆分为子问题 |
| 3 | 文献检索 | 从 arXiv 和 Semantic Scholar 搜索相关论文 |
| 4 | 文献分析 | 阅读、总结并识别研究空白 |
| 5 | 研究方向(门控) | 提交研究方向供人工审批 |
| 6 | 假设生成 | 基于文献空白生成可测试的假设 |
| 7 | 实验设计 | 设计实验来测试每个假设 |
| 8 | 实验评审 | AI 评审实验设计 |
| 9 | 实验审批(门控) | 提交实验计划供人工审批 |
| 10 | 代码生成 | 生成 Python 实验代码 |
| 11 | 代码评审 | AI 评审生成的代码 |
| 12 | 实验执行 | 在沙箱/模拟/远程模式下执行实验 |
| 13 | 结果收集 | 收集和整理实验结果 |
| 14 | 结果分析 | 统计分析和结果解读 |
| 15 | 论文大纲 | 生成论文结构和章节大纲 |
| 16 | 章节撰写 | 撰写各章节 |
| 17 | 论文初稿 | 组装完整论文初稿 |
| 18 | 同行评审 | 多智能体模拟会议审稿人评审 |
| 19 | 修订 | 根据评审意见修改论文 |
| 20 | 最终审查(门控) | 提交修改后的论文供人工审批 |
| 21 | 引文验证 | 四层引文验证 |
| 22 | 可视化 | 生成图表和图形 |
| 23 | 最终导出 | 编译 LaTeX 为 PDF |
诚实声明
本技能不会虚构功能。每个命令都映射到真实的上游功能。如果某些功能失败,技能会报告实际错误并建议具体的修复方案——绝不假装问题不存在。
AutoResearchClaw Troubleshooting Guide
This document covers the most common failures and their solutions, based on real issues reported by the community.
Installation Failures
pip install fails with dependency conflicts
Symptom: ERROR: Cannot install researchclaw because these package versions have conflicting dependencies
Fix:
# Create a fresh virtual environment
python3 -m venv .venv
source .venv/bin/activate
pip install researchclaw[all]Or use uv for faster, more reliable dependency resolution:
uv pip install researchclaw[all]Windows: installation fails
Symptom: Various errors on Windows, especially with Docker and LaTeX paths.
Reality check: AutoResearchClaw has limited Windows support as of v0.3.x. The recommended approach is: 1. Use WSL2 (Windows Subsystem for Linux) 2. Install Docker Desktop with WSL2 backend 3. Run everything inside WSL2
---
Configuration Failures
YAML parse error
Symptom: yaml.scanner.ScannerError: mapping values are not allowed in this context
Diagnosis:
python3 -c "import yaml; yaml.safe_load(open('config.yaml'))"Common causes:
- Missing quotes around strings with colons (e.g.,
topic: NLP: A Surveyshould betopic: "NLP: A Survey") - Incorrect indentation (YAML requires consistent spaces, not tabs)
- Missing space after colon (
key:valueshould bekey: value)
API key not found
Symptom: HTTP 401 Unauthorized or AuthenticationError
Diagnosis:
# Check if the env var is set
echo $OPENAI_API_KEY
# or
echo $ANTHROPIC_API_KEYFixes: 1. Verify the key is valid (not expired, not revoked) 2. Check config.yaml — is api_key_env pointing to the correct variable name? 3. If using api_key directly, ensure it has no extra whitespace or quotes
Azure endpoint configuration
Symptom: Connection refused or 404 Not Found when using Azure OpenAI
Fix: Azure requires a specific URL format:
llm:
provider: azure
base_url: "https://YOUR-RESOURCE.openai.azure.com/openai/deployments/YOUR-DEPLOYMENT"
api_key_env: AZURE_OPENAI_API_KEY
model: "YOUR-DEPLOYMENT-NAME" # Must match the Azure deployment name exactly---
Pipeline Execution Failures
Stage 10 (Code Generation) failure
Symptom: Pipeline stops at stage 10 with code generation errors.
This is the most common failure. The LLM generates Python code that may have:
- Syntax errors
- Missing imports
- Incompatible library versions
- Hardcoded paths that don't exist
Diagnosis:
# Check the generated code
cat artifacts/rc-*/stage-10/experiment.py
# Try running it manually
python3 artifacts/rc-*/stage-10/experiment.pyFixes: 1. Use a stronger model (gpt-4o or claude-sonnet-4-20250514 instead of smaller models) 2. Switch to simulated mode to skip actual code execution 3. Manually fix the generated code and resume from stage 11
Quality gate rejection
Symptom: Pipeline stops with quality_score below threshold
Fix: The default threshold (2.0) is very strict. Edit config.yaml:
quality:
min_score: 1.0 # Lower to always pass (for testing)For production runs, use 3.0-5.0 as a reasonable threshold.
Rate limiting (HTTP 429)
Symptom: RateLimitError or HTTP 429 Too Many Requests
Fixes: 1. Wait 60 seconds and resume: researchclaw run --from-stage LAST_STAGE --config config.yaml 2. Switch to a model with higher rate limits 3. Add retry logic in config (if supported by your version)
Memory exhaustion (OOM)
Symptom: Process killed, MemoryError, or system becomes unresponsive
Fixes: 1. Use simulated experiment mode (no code execution = less memory) 2. Close other applications 3. Reduce literature.max_papers to 10-15 4. Set pipeline.max_concurrent_stages: 1
---
Docker Failures
Docker daemon not running
Symptom: Cannot connect to the Docker daemon
Fix:
# Linux
sudo systemctl start docker
# macOS
open -a Docker # Start Docker Desktop
# Verify
docker infoDocker permission denied
Symptom: Got permission denied while trying to connect to the Docker daemon socket
Fix:
sudo usermod -aG docker $USER
# Then log out and log back in---
LaTeX Failures
pdflatex not found
Symptom: pdflatex: command not found at stage 23
Fix:
# Ubuntu/Debian
sudo apt-get install texlive-full # WARNING: 2-4 GB download
# macOS
brew install --cask mactex
# Minimal install (smaller but may miss some packages)
sudo apt-get install texlive-latex-base texlive-latex-extra texlive-fonts-recommendedMissing LaTeX packages
Symptom: ! LaTeX Error: File 'neurips_2024.sty' not found
Fix: The NeurIPS/ICML/ICLR templates require specific style files. These should be included in the AutoResearchClaw package. If missing:
# Check if the template files exist
find . -name "*.sty" -o -name "*.cls" | head -20
# If missing, reinstall
pip install researchclaw[all] --force-reinstall---
Resume Failures
--from-stage not working
Symptom: Resume starts from the beginning instead of the specified stage, or crashes.
Known issue: The --from-stage flag has bugs in some versions.
Workaround: 1. Note which stages completed successfully (check artifacts/rc-*/stage-*/) 2. Start a fresh run with the same config 3. If you need specific stage outputs, copy them from the old run directory
---
Network Failures
Cannot reach arXiv or Semantic Scholar
Symptom: ConnectionError during literature search (stages 3-4)
Diagnosis:
curl -s https://api.semanticscholar.org/graph/v1/paper/search?query=test | head -100
curl -s "http://export.arxiv.org/api/query?search_query=all:test&max_results=1" | head -100Fixes: 1. Check internet connectivity 2. If behind a corporate proxy, set HTTP_PROXY and HTTPS_PROXY environment variables 3. If arXiv is rate-limiting you, wait 10 minutes and retry
#!/usr/bin/env bash
# check-prereqs.sh — Check all prerequisites for AutoResearchClaw
# Returns JSON report with pass/fail for each dependency
# Exit code 0 = all pass, 1 = some failures
set -euo pipefail
PASS=0
FAIL=0
RESULTS=()
check() {
local name="$1"
local cmd="$2"
local required="$3" # "required" or "optional"
if eval "$cmd" > /dev/null 2>&1; then
local version
version=$(eval "$cmd" 2>&1 | head -1 || echo "unknown")
RESULTS+=("{\"name\":\"$name\",\"status\":\"pass\",\"version\":\"$version\",\"required\":\"$required\"}")
PASS=$((PASS + 1))
else
RESULTS+=("{\"name\":\"$name\",\"status\":\"fail\",\"version\":null,\"required\":\"$required\"}")
if [ "$required" = "required" ]; then
FAIL=$((FAIL + 1))
fi
fi
}
# Core dependencies
check "python3.11+" "python3 --version 2>&1 | grep -E 'Python 3\.(1[1-9]|[2-9][0-9])'" "required"
check "pip3" "pip3 --version" "required"
check "git" "git --version" "required"
# AutoResearchClaw itself
check "researchclaw-cli" "which researchclaw" "required"
check "researchclaw-package" "python3 -c 'import researchclaw'" "required"
# Docker (required for sandbox mode, optional for simulated)
check "docker" "docker info" "optional"
# LaTeX (required for PDF output)
check "pdflatex" "pdflatex --version" "optional"
# Optional but useful
check "uv" "uv --version" "optional"
# Build JSON output
JSON="{"
JSON+="\"total_checks\":$((PASS + FAIL)),"
JSON+="\"passed\":$PASS,"
JSON+="\"failed\":$FAIL,"
JSON+="\"all_required_pass\":$([ $FAIL -eq 0 ] && echo 'true' || echo 'false'),"
JSON+="\"checks\":["
for i in "${!RESULTS[@]}"; do
JSON+="${RESULTS[$i]}"
if [ $i -lt $((${#RESULTS[@]} - 1)) ]; then
JSON+=","
fi
done
JSON+="]}"
echo "$JSON"
# Human-readable summary to stderr
echo "" >&2
echo "=== ResearchClaw Prerequisites Check ===" >&2
echo "Passed: $PASS / $((PASS + FAIL))" >&2
if [ $FAIL -gt 0 ]; then
echo "FAILED: $FAIL required dependencies missing" >&2
exit 1
else
echo "All required dependencies are installed." >&2
exit 0
fi
#!/usr/bin/env bash
# notify-completion.sh — Notification hook
# Logs pipeline completion/failure to a local log file
# Can be extended to send desktop notifications, Slack messages, etc.
set -euo pipefail
LOG_FILE="researchclaw-notifications.log"
TIMESTAMP=$(date '+%Y-%m-%d %H:%M:%S')
# Check for the most recent run
LATEST_RUN=$(ls -td artifacts/rc-* 2>/dev/null | head -1)
if [ -z "$LATEST_RUN" ]; then
echo "[$TIMESTAMP] Pipeline run initiated (no artifacts yet)" >> "$LOG_FILE"
exit 0
fi
# Check if pipeline completed
if [ -f "$LATEST_RUN/pipeline_summary.json" ]; then
STAGES_COMPLETE=$(ls -d "$LATEST_RUN"/stage-* 2>/dev/null | wc -l)
echo "[$TIMESTAMP] COMPLETE: Pipeline finished with $STAGES_COMPLETE stages. Output: $LATEST_RUN" >> "$LOG_FILE"
# Desktop notification (if available)
if command -v notify-send &> /dev/null; then
notify-send "ResearchClaw" "Pipeline complete! $STAGES_COMPLETE stages finished. Check $LATEST_RUN"
fi
# macOS notification (if available)
if command -v osascript &> /dev/null; then
osascript -e "display notification \"Pipeline complete! $STAGES_COMPLETE stages finished.\" with title \"ResearchClaw\""
fi
else
STAGES_COMPLETE=$(ls -d "$LATEST_RUN"/stage-* 2>/dev/null | wc -l)
echo "[$TIMESTAMP] IN_PROGRESS: Pipeline at stage $STAGES_COMPLETE. Output: $LATEST_RUN" >> "$LOG_FILE"
fi
#!/usr/bin/env bash
# post-run-check.sh — PostToolUse hook for researchclaw commands
# Scans tool output for common error patterns and surfaces warnings
# Input: $1 = tool output (passed by Claude Code hook system)
set -euo pipefail
OUTPUT="${1:-}"
# If no output provided, read from stdin
if [ -z "$OUTPUT" ]; then
OUTPUT=$(cat)
fi
WARNINGS=()
# Check for common error patterns
if echo "$OUTPUT" | grep -qi "HTTP 401\|AuthenticationError\|Unauthorized"; then
WARNINGS+=("API_AUTH_FAILURE: API key is invalid or expired. Check config.yaml llm.api_key_env.")
fi
if echo "$OUTPUT" | grep -qi "HTTP 429\|RateLimitError\|rate.limit"; then
WARNINGS+=("RATE_LIMIT: API rate limit hit. Wait 60 seconds before resuming.")
fi
if echo "$OUTPUT" | grep -qi "MemoryError\|OOM\|Killed"; then
WARNINGS+=("MEMORY: Out of memory. Consider using simulated mode or closing other applications.")
fi
if echo "$OUTPUT" | grep -qi "Docker\|docker.*not.*running\|Cannot connect to the Docker daemon"; then
WARNINGS+=("DOCKER: Docker issue detected. Run 'docker info' to check Docker status.")
fi
if echo "$OUTPUT" | grep -qi "pdflatex.*not found\|LaTeX Error"; then
WARNINGS+=("LATEX: LaTeX issue. Run '/researchclaw:setup' to check LaTeX installation.")
fi
if echo "$OUTPUT" | grep -qi "ModuleNotFoundError\|ImportError"; then
WARNINGS+=("MISSING_MODULE: Python module missing. Run 'pip3 install researchclaw[all]'.")
fi
if echo "$OUTPUT" | grep -qi "quality_score.*below\|quality.*threshold\|gate.*rejected"; then
WARNINGS+=("QUALITY_GATE: Quality gate rejected. Consider lowering quality.min_score in config.yaml.")
fi
if echo "$OUTPUT" | grep -qi "ConnectionError\|ConnectionRefused\|Network.*unreachable"; then
WARNINGS+=("NETWORK: Network connectivity issue. Check internet connection and proxy settings.")
fi
# Output warnings if any
if [ ${#WARNINGS[@]} -gt 0 ]; then
echo ""
echo "=== ResearchClaw Auto-Diagnosis ==="
for w in "${WARNINGS[@]}"; do
echo " ⚠ $w"
done
echo "Run '/researchclaw:diagnose' for detailed troubleshooting."
echo "==================================="
fi
#!/usr/bin/env bash
# pre-config-write.sh — PreToolUse hook
# Backs up config.yaml before overwriting to prevent accidental data loss
set -euo pipefail
CONFIG="config.yaml"
if [ -f "$CONFIG" ]; then
TIMESTAMP=$(date +%Y%m%d-%H%M%S)
BACKUP="${CONFIG}.backup-${TIMESTAMP}"
cp "$CONFIG" "$BACKUP"
echo "Backed up existing config.yaml to $BACKUP"
fi
#!/usr/bin/env bash
# pre-delete-guard.sh — PreToolUse hook
# Prevents accidental deletion of pipeline artifacts
# Returns non-zero to block the operation
set -euo pipefail
echo "BLOCKED: Attempted to delete pipeline artifacts."
echo "Pipeline artifacts contain research results that cannot be regenerated without re-running the pipeline."
echo "If you really want to delete artifacts, do it manually outside of Claude Code."
exit 1