rhowardstone/Claude-Code-Scientist
Transform Claude Code into a semi-autonomous, self-improving scientific researcher. Literature review, data acquisition, experimentation, synthesis, peer review
ARCHETYPE
YOLO Cowboy
Permissions? Never heard of 'em. Ships at the speed of `--dangerously-skip-permissions`.
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)
| server | source | est. tokens |
|---|---|---|
| literature env: USER_EMAIL | local / custom | 2.5k |
Skills (27)
brainstormingclaim-extractioncortexdata-acquirerexperimentgoal-decompositionhypothesis-generatorlit-scoutliterature-searchnarrative-framingpeer-reviewpre-flight-checkprisma-trackingresearch-coordinatorresearch-directorresults-analystreviewer-impactreviewer-methodologyreviewer-statisticsscientific-figuressynthesizersystematic-debuggingtest-driven-developmenttool-acquirertool-creatorverification-before-completionwriting-plans
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)
| event | matcher | runs |
|---|---|---|
| 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" |
| SessionStart | resume | bash -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" |
| PostToolUse | WebSearch | bash -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" |
| PostToolUse | Write | bash -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" |
| PostToolUse | Write | bash -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" |
| PostToolUse | Write | bash -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" |
| PreToolUse | WebSearch | 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" |
| PreToolUse | Bash | 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" |
| PreToolUse | Write | 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" |
| PreToolUse | Write | 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" |
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
nicolasaudran/claude-dotfiles
—
Pragmatist 320 tok ·
RichardBray/dotfiles
My personal configuration files and settings
Skill Collector 671 tok ·
emanuelnicenboim/dotfiles
Personal dotfiles - Claude Code skills & config
Skill Collector 671 tok ·
obra/superpowers
An agentic skills framework & software development methodology that works.
Skill Collector 3.0k tok ·