~ / rigs / rhowardstone / Claude-Code-Scientist

rhowardstone/Claude-Code-Scientist

Transform Claude Code into a semi-autonomous, self-improving scientific researcher. Literature review, data acquisition, experimentation, synthesis, peer review

↗ GitHub ★ 7 MIT updated 8mo ago project Claude Code
share on X
ARCHETYPE
YOLO Cowboy
Permissions? Never heard of 'em. Ships at the speed of `--dangerously-skip-permissions`.
CONTEXT TAX · EVERY TURN
~13.5k tokens
Heavy · median rig: 2.3k · breakdown
GUARDRAILS
3/5
Blocks destructive commands · Protects secrets · Pre-tool screening hook · details

Copy this rig

# review before running: this installs third-party code
$ npx degit rhowardstone/Claude-Code-Scientist/.claude ./rig-claude-code-scientist  # inspect, then merge into .claude/

MCP servers are added to Claude Code at local scope; env vars are shown as YOUR_… placeholders — we never store values. Files are fetched with degit into a separate folder so you can review before merging.

$ npx degit rhowardstone/Claude-Code-Scientist/.claude/skills/brainstorming .claude/skills/brainstorming
$ npx degit rhowardstone/Claude-Code-Scientist/.claude/skills/claim-extraction .claude/skills/claim-extraction
$ npx degit rhowardstone/Claude-Code-Scientist/.claude/skills/cortex .claude/skills/cortex
$ npx degit rhowardstone/Claude-Code-Scientist/.claude/skills/data-acquirer .claude/skills/data-acquirer
$ npx degit rhowardstone/Claude-Code-Scientist/.claude/skills/experiment .claude/skills/experiment
$ npx degit rhowardstone/Claude-Code-Scientist/.claude/skills/goal-decomposition .claude/skills/goal-decomposition
$ npx degit rhowardstone/Claude-Code-Scientist/.claude/skills/hypothesis-generator .claude/skills/hypothesis-generator
$ npx degit rhowardstone/Claude-Code-Scientist/.claude/skills/lit-scout .claude/skills/lit-scout
$ npx degit rhowardstone/Claude-Code-Scientist/.claude/skills/literature-search .claude/skills/literature-search
$ npx degit rhowardstone/Claude-Code-Scientist/.claude/skills/narrative-framing .claude/skills/narrative-framing
$ npx degit rhowardstone/Claude-Code-Scientist/.claude/skills/peer-review .claude/skills/peer-review
$ npx degit rhowardstone/Claude-Code-Scientist/.claude/skills/pre-flight-check .claude/skills/pre-flight-check
$ npx degit rhowardstone/Claude-Code-Scientist/.claude/skills/prisma-tracking .claude/skills/prisma-tracking
$ npx degit rhowardstone/Claude-Code-Scientist/.claude/skills/research-coordinator .claude/skills/research-coordinator
$ npx degit rhowardstone/Claude-Code-Scientist/.claude/skills/research-director .claude/skills/research-director
$ npx degit rhowardstone/Claude-Code-Scientist/.claude/skills/results-analyst .claude/skills/results-analyst
$ npx degit rhowardstone/Claude-Code-Scientist/.claude/skills/reviewer-impact .claude/skills/reviewer-impact
$ npx degit rhowardstone/Claude-Code-Scientist/.claude/skills/reviewer-methodology .claude/skills/reviewer-methodology
$ npx degit rhowardstone/Claude-Code-Scientist/.claude/skills/reviewer-statistics .claude/skills/reviewer-statistics
$ npx degit rhowardstone/Claude-Code-Scientist/.claude/skills/scientific-figures .claude/skills/scientific-figures
$ npx degit rhowardstone/Claude-Code-Scientist/.claude/skills/synthesizer .claude/skills/synthesizer
$ npx degit rhowardstone/Claude-Code-Scientist/.claude/skills/systematic-debugging .claude/skills/systematic-debugging
$ npx degit rhowardstone/Claude-Code-Scientist/.claude/skills/test-driven-development .claude/skills/test-driven-development
$ npx degit rhowardstone/Claude-Code-Scientist/.claude/skills/tool-acquirer .claude/skills/tool-acquirer
$ npx degit rhowardstone/Claude-Code-Scientist/.claude/skills/tool-creator .claude/skills/tool-creator
$ npx degit rhowardstone/Claude-Code-Scientist/.claude/skills/verification-before-completion .claude/skills/verification-before-completion
$ npx degit rhowardstone/Claude-Code-Scientist/.claude/skills/writing-plans .claude/skills/writing-plans
$ curl -fsSL --create-dirs -o .claude/agents/data-acquirer.md https://raw.githubusercontent.com/rhowardstone/Claude-Code-Scientist/main/.claude/agents/data-acquirer.md
$ curl -fsSL --create-dirs -o .claude/agents/experimentalist.md https://raw.githubusercontent.com/rhowardstone/Claude-Code-Scientist/main/.claude/agents/experimentalist.md
$ curl -fsSL --create-dirs -o .claude/agents/lit-scout.md https://raw.githubusercontent.com/rhowardstone/Claude-Code-Scientist/main/.claude/agents/lit-scout.md
$ curl -fsSL --create-dirs -o .claude/agents/reviewer-impact.md https://raw.githubusercontent.com/rhowardstone/Claude-Code-Scientist/main/.claude/agents/reviewer-impact.md
$ curl -fsSL --create-dirs -o .claude/agents/reviewer-methodology.md https://raw.githubusercontent.com/rhowardstone/Claude-Code-Scientist/main/.claude/agents/reviewer-methodology.md
$ curl -fsSL --create-dirs -o .claude/agents/reviewer-statistics.md https://raw.githubusercontent.com/rhowardstone/Claude-Code-Scientist/main/.claude/agents/reviewer-statistics.md
$ curl -fsSL --create-dirs -o .claude/agents/scientific-figures.md https://raw.githubusercontent.com/rhowardstone/Claude-Code-Scientist/main/.claude/agents/scientific-figures.md
$ curl -fsSL --create-dirs -o .claude/agents/synthesizer.md https://raw.githubusercontent.com/rhowardstone/Claude-Code-Scientist/main/.claude/agents/synthesizer.md
$ curl -fsSL --create-dirs -o .claude/agents/tool-acquirer.md https://raw.githubusercontent.com/rhowardstone/Claude-Code-Scientist/main/.claude/agents/tool-acquirer.md

Merge into .claude/settings.json (project) or ~/.claude/settings.json (user). Hook commands reference scripts in the source repo — copy those too.

{
  "permissions": {
    "deny": [
      "Read(.env*)",
      "Read(**/secrets/**)",
      "Read(**/*credentials*)",
      "Bash(sudo *)"
    ]
  },
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "WebSearch",
        "hooks": [
          {
            "type": "command",
            "command": "bash -c \"ROOT=\\${SESSION_DIR%%/workspace/*}; [ -z \\\"\\$ROOT\\\" -o ! -d \\\"\\$ROOT/.claude\\\" ] && ROOT=\\$(git rev-parse --show-toplevel); cd \\\"\\$ROOT\\\" && python3 .claude/hooks/warn-websearch-academic.py\""
          }
        ]
      },
      {
        "matcher": "Bash",
        "hooks": [
          {
            "type": "command",
            "command": "bash -c \"ROOT=\\${SESSION_DIR%%/workspace/*}; [ -z \\\"\\$ROOT\\\" -o ! -d \\\"\\$ROOT/.claude\\\" ] && ROOT=\\$(git rev-parse --show-toplevel); cd \\\"\\$ROOT\\\" && python3 .claude/hooks/verify-provenance.py\""
          }
        ]
      },
      {
        "matcher": "Write",
        "hooks": [
          {
            "type": "command",
            "command": "bash -c \"ROOT=\\${SESSION_DIR%%/workspace/*}; [ -z \\\"\\$ROOT\\\" -o ! -d \\\"\\$ROOT/.claude\\\" ] && ROOT=\\$(git rev-parse --show-toplevel); cd \\\"\\$ROOT\\\" && python3 .claude/hooks/verify-sources-before-synthesis.py\""
          },
          {
            "type": "command",
            "command": "bash -c \"ROOT=\\${SESSION_DIR%%/workspace/*}; [ -z \\\"\\$ROOT\\\" -o ! -d \\\"\\$ROOT/.claude\\\" ] && ROOT=\\$(git rev-parse --show-toplevel); cd \\\"\\$ROOT\\\" && python3 .claude/hooks/verify-phase-gates.py\""
          }
        ]
      }
    ]
  }
}

MCP servers (1)

serversourceest. tokens
literature
env: USER_EMAIL
local / custom 2.5k

Skills (27)

Subagents (9)

data-acquirer
model: haiku
Obtains datasets needed for experiments. Searches repositories, downloads data, validates integrity.
experimentalist
model: opus
Experimental design and execution specialist. Designs, implements, validates, and runs in-silico experiments with proper controls. Use when RQs require experimental evidence.
lit-scout
model: haiku
Literature evaluation specialist. Reviews PRE-READ paper subsets, extracts evidence claims with provenance (DOI + quote + section), identifies gaps and contradictions. Works with structured JSON, NOT
reviewer-impact
model: sonnet
Peer reviewer for scientific contribution and honesty. Checks scope vs claims, failure disclosure, overclaiming. Use during peer review phase.
reviewer-methodology
model: sonnet
Peer reviewer for methodological rigor. Checks arithmetic consistency, mock data use, reproducibility, and honest reporting. Use during peer review phase.
reviewer-statistics
model: sonnet
Peer reviewer for statistical correctness. Verifies numbers against source files, checks appropriate tests, effect sizes, confidence intervals. Use during peer review phase.
scientific-figures
model: sonnet
Generate publication-quality scientific figures with consistent styling. Use when experiments need visualization, benchmarking results need plots, or papers need figures.
synthesizer
model: opus
Research paper synthesis specialist. Compiles evidence from lit scouts into coherent academic papers. Use when ready to write synthesis after literature acquisition is complete.
tool-acquirer
model: sonnet
Computational tool acquisition specialist. Finds, installs, validates, and documents research tools. Use when experiments need specific software or methods.

Hooks (13)

eventmatcherruns
Stop*bash -c "ROOT=\${SESSION_DIR%%/workspace/*}; [ -z \"\$ROOT\" -o ! -d \"\$ROOT/.claude\" ] && ROOT=\$(git rev-parse --show-toplevel); cd \"\$ROOT\" && SESSION_DIR=\"\${SESSION_DIR:-$ROOT/workspace/current}\" .claude/hooks/validate-research-w
PreCompact*bash -c "ROOT=\${SESSION_DIR%%/workspace/*}; [ -z \"\$ROOT\" -o ! -d \"\$ROOT/.claude\" ] && ROOT=\$(git rev-parse --show-toplevel); cd \"\$ROOT\" && python3 .claude/hooks/capture-precompact-context.py"
SessionStartresumebash -c "ROOT=\${SESSION_DIR%%/workspace/*}; [ -z \"\$ROOT\" -o ! -d \"\$ROOT/.claude\" ] && ROOT=\$(git rev-parse --show-toplevel); cd \"\$ROOT\" && python3 .claude/hooks/restore-session-context.py"
SessionStart*bash -c "ROOT=\${SESSION_DIR%%/workspace/*}; [ -z \"\$ROOT\" -o ! -d \"\$ROOT/.claude\" ] && ROOT=\$(git rev-parse --show-toplevel); cd \"\$ROOT\" && .claude/hooks/save-conversation-id.sh"
SessionStart*bash -c "ROOT=\${SESSION_DIR%%/workspace/*}; [ -z \"\$ROOT\" -o ! -d \"\$ROOT/.claude\" ] && ROOT=\$(git rev-parse --show-toplevel); cd \"\$ROOT\" && python3 .claude/hooks/session-primer.py"
PostToolUseWebSearchbash -c "ROOT=\${SESSION_DIR%%/workspace/*}; [ -z \"\$ROOT\" -o ! -d \"\$ROOT/.claude\" ] && ROOT=\$(git rev-parse --show-toplevel); cd \"\$ROOT\" && python3 .claude/hooks/capture-websearch-results.py"
PostToolUseWritebash -c "ROOT=\${SESSION_DIR%%/workspace/*}; [ -z \"\$ROOT\" -o ! -d \"\$ROOT/.claude\" ] && ROOT=\$(git rev-parse --show-toplevel); cd \"\$ROOT\" && python3 .claude/hooks/validate-claims.py"
PostToolUseWritebash -c "ROOT=\${SESSION_DIR%%/workspace/*}; [ -z \"\$ROOT\" -o ! -d \"\$ROOT/.claude\" ] && ROOT=\$(git rev-parse --show-toplevel); cd \"\$ROOT\" && python3 .claude/hooks/validate-paper.py"
PostToolUseWritebash -c "ROOT=\${SESSION_DIR%%/workspace/*}; [ -z \"\$ROOT\" -o ! -d \"\$ROOT/.claude\" ] && ROOT=\$(git rev-parse --show-toplevel); cd \"\$ROOT\" && python3 .claude/hooks/validate-doi.py"
PreToolUseWebSearchbash -c "ROOT=\${SESSION_DIR%%/workspace/*}; [ -z \"\$ROOT\" -o ! -d \"\$ROOT/.claude\" ] && ROOT=\$(git rev-parse --show-toplevel); cd \"\$ROOT\" && python3 .claude/hooks/warn-websearch-academic.py"
PreToolUseBashbash -c "ROOT=\${SESSION_DIR%%/workspace/*}; [ -z \"\$ROOT\" -o ! -d \"\$ROOT/.claude\" ] && ROOT=\$(git rev-parse --show-toplevel); cd \"\$ROOT\" && python3 .claude/hooks/verify-provenance.py"
PreToolUseWritebash -c "ROOT=\${SESSION_DIR%%/workspace/*}; [ -z \"\$ROOT\" -o ! -d \"\$ROOT/.claude\" ] && ROOT=\$(git rev-parse --show-toplevel); cd \"\$ROOT\" && python3 .claude/hooks/verify-sources-before-synthesis.py"
PreToolUseWritebash -c "ROOT=\${SESSION_DIR%%/workspace/*}; [ -z \"\$ROOT\" -o ! -d \"\$ROOT/.claude\" ] && ROOT=\$(git rev-parse --show-toplevel); cd \"\$ROOT\" && python3 .claude/hooks/verify-phase-gates.py"

Permissions

deny (4)
Read(.env*)
Read(**/secrets/**)
Read(**/*credentials*)
Bash(sudo *)
ask (0)
—
allow (82)
Bash
WebSearch
Read(**/*)
Write(workspace/**/*)
Write(experiments/**/*)
Edit(workspace/**/*)
Edit(experiments/**/*)
WebFetch(domain:*.nature.com)
WebFetch(domain:nature.com)
WebFetch(domain:*.ncbi.nlm.nih.gov)
WebFetch(domain:*.nih.gov)
WebFetch(domain:*.arxiv.org)
WebFetch(domain:arxiv.org)
WebFetch(domain:*.biorxiv.org)
WebFetch(domain:biorxiv.org)
WebFetch(domain:*.medrxiv.org)
WebFetch(domain:medrxiv.org)
WebFetch(domain:doi.org)
WebFetch(domain:*.doi.org)
WebFetch(domain:*.semanticscholar.org)
WebFetch(domain:semanticscholar.org)
WebFetch(domain:*.openalex.org)
WebFetch(domain:openalex.org)
WebFetch(domain:*.github.com)
WebFetch(domain:github.com)
WebFetch(domain:*.githubusercontent.com)
WebFetch(domain:*.cell.com)
WebFetch(domain:cell.com)
WebFetch(domain:*.science.org)
WebFetch(domain:science.org)
WebFetch(domain:*.springer.com)
WebFetch(domain:springer.com)
WebFetch(domain:*.springerlink.com)
WebFetch(domain:*.wiley.com)
WebFetch(domain:wiley.com)
WebFetch(domain:*.plos.org)
WebFetch(domain:plos.org)
WebFetch(domain:*.frontiersin.org)
WebFetch(domain:frontiersin.org)
WebFetch(domain:*.elifesciences.org)
WebFetch(domain:elifesciences.org)
WebFetch(domain:*.sciencedirect.com)
WebFetch(domain:*.elsevier.com)
WebFetch(domain:*.biomedcentral.com)
WebFetch(domain:*.mdpi.com)
WebFetch(domain:*.pnas.org)
WebFetch(domain:pnas.org)
WebFetch(domain:*.acs.org)
WebFetch(domain:*.rsc.org)
WebFetch(domain:*.tandfonline.com)
WebFetch(domain:*.oxfordjournals.org)
WebFetch(domain:*.oup.com)
WebFetch(domain:*.bioconductor.org)
WebFetch(domain:bioconductor.org)
WebFetch(domain:*.readthedocs.io)
WebFetch(domain:*.pypi.org)
WebFetch(domain:pypi.org)
Skill(brainstorming)
Skill(claim-extraction)
Skill(data-acquirer)

Similar rigs

copied ✓