~ / rigs / EmmanuelRTM / ScientistOne_claude_code_primitives

EmmanuelRTM/ScientistOne_claude_code_primitives

In this repo, we explore Google's ScientistOne research pipeline, recreated entirely from Claude Code primitives — subagents as researchers, skills as stages, hooks as integrity guards. Includes a bundled offline demo task and Chain-of-Evid

↗ GitHub ★ 1 MIT updated 2mo ago project Claude Code
share on X
ARCHETYPE
Orchestrator
A bench of specialised subagents. The main agent mostly delegates.
CONTEXT TAX · EVERY TURN
~2.6k tokens
Moderate · median rig: 2.3k · breakdown
GUARDRAILS
3/5
Blocks destructive commands · Pre-tool screening hook · No YOLO mode · details

Copy this rig

# review before running: this installs third-party code
$ npx degit EmmanuelRTM/ScientistOne_claude_code_primitives/.claude ./rig-scientistone_claude_code_primitives  # 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 EmmanuelRTM/ScientistOne_claude_code_primitives/.claude/skills/citation-provenance .claude/skills/citation-provenance
$ npx degit EmmanuelRTM/ScientistOne_claude_code_primitives/.claude/skills/discover .claude/skills/discover
$ npx degit EmmanuelRTM/ScientistOne_claude_code_primitives/.claude/skills/distill-feedback .claude/skills/distill-feedback
$ npx degit EmmanuelRTM/ScientistOne_claude_code_primitives/.claude/skills/evaluation-protocol .claude/skills/evaluation-protocol
$ npx degit EmmanuelRTM/ScientistOne_claude_code_primitives/.claude/skills/evidence-tagging .claude/skills/evidence-tagging
$ npx degit EmmanuelRTM/ScientistOne_claude_code_primitives/.claude/skills/investigate .claude/skills/investigate
$ npx degit EmmanuelRTM/ScientistOne_claude_code_primitives/.claude/skills/paper-to-latex .claude/skills/paper-to-latex
$ npx degit EmmanuelRTM/ScientistOne_claude_code_primitives/.claude/skills/research .claude/skills/research
$ npx degit EmmanuelRTM/ScientistOne_claude_code_primitives/.claude/skills/run-status .claude/skills/run-status
$ npx degit EmmanuelRTM/ScientistOne_claude_code_primitives/.claude/skills/verify-claims .claude/skills/verify-claims
$ npx degit EmmanuelRTM/ScientistOne_claude_code_primitives/.claude/skills/write-paper .claude/skills/write-paper
$ curl -fsSL --create-dirs -o .claude/agents/ablation-analyst.md https://raw.githubusercontent.com/EmmanuelRTM/ScientistOne_claude_code_primitives/claude/claude-project-multiagent-c9913z/.claude/agents/ablation-analyst.md
$ curl -fsSL --create-dirs -o .claude/agents/auditor.md https://raw.githubusercontent.com/EmmanuelRTM/ScientistOne_claude_code_primitives/claude/claude-project-multiagent-c9913z/.claude/agents/auditor.md
$ curl -fsSL --create-dirs -o .claude/agents/claim-verifier.md https://raw.githubusercontent.com/EmmanuelRTM/ScientistOne_claude_code_primitives/claude/claude-project-multiagent-c9913z/.claude/agents/claim-verifier.md
$ curl -fsSL --create-dirs -o .claude/agents/evaluator.md https://raw.githubusercontent.com/EmmanuelRTM/ScientistOne_claude_code_primitives/claude/claude-project-multiagent-c9913z/.claude/agents/evaluator.md
$ curl -fsSL --create-dirs -o .claude/agents/ideator.md https://raw.githubusercontent.com/EmmanuelRTM/ScientistOne_claude_code_primitives/claude/claude-project-multiagent-c9913z/.claude/agents/ideator.md
$ curl -fsSL --create-dirs -o .claude/agents/paper-critic.md https://raw.githubusercontent.com/EmmanuelRTM/ScientistOne_claude_code_primitives/claude/claude-project-multiagent-c9913z/.claude/agents/paper-critic.md
$ curl -fsSL --create-dirs -o .claude/agents/paper-writer.md https://raw.githubusercontent.com/EmmanuelRTM/ScientistOne_claude_code_primitives/claude/claude-project-multiagent-c9913z/.claude/agents/paper-writer.md
$ curl -fsSL --create-dirs -o .claude/agents/problem-investigator.md https://raw.githubusercontent.com/EmmanuelRTM/ScientistOne_claude_code_primitives/claude/claude-project-multiagent-c9913z/.claude/agents/problem-investigator.md
$ curl -fsSL --create-dirs -o .claude/agents/refiner.md https://raw.githubusercontent.com/EmmanuelRTM/ScientistOne_claude_code_primitives/claude/claude-project-multiagent-c9913z/.claude/agents/refiner.md
$ curl -fsSL --create-dirs -o .claude/agents/solver.md https://raw.githubusercontent.com/EmmanuelRTM/ScientistOne_claude_code_primitives/claude/claude-project-multiagent-c9913z/.claude/agents/solver.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": [
      "Bash(pip install*)",
      "Bash(pip3 install*)",
      "Bash(rm -rf*)"
    ]
  },
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Write|Edit",
        "hooks": [
          {
            "type": "command",
            "command": "python3 \"$CLAUDE_PROJECT_DIR\"/.claude/hooks/citation_guard.py"
          }
        ]
      },
      {
        "matcher": "Bash",
        "hooks": [
          {
            "type": "command",
            "command": "python3 \"$CLAUDE_PROJECT_DIR\"/.claude/hooks/citation_guard.py"
          }
        ]
      },
      {
        "matcher": "AskUserQuestion",
        "hooks": [
          {
            "type": "command",
            "command": "python3 \"$CLAUDE_PROJECT_DIR\"/.claude/hooks/run_stop_gate.py"
          }
        ]
      }
    ]
  }
}

Skills (11)

Subagents (10)

ablation-analyst>
auditor>
claim-verifier>
evaluator>
ideator>
paper-critic>
paper-writer>
problem-investigator>
refiner>
solver>

Hooks (7)

eventmatcherruns
SessionStart*python3 "$CLAUDE_PROJECT_DIR"/.claude/hooks/session_start.py
PreToolUseWrite|Editpython3 "$CLAUDE_PROJECT_DIR"/.claude/hooks/citation_guard.py
PreToolUseBashpython3 "$CLAUDE_PROJECT_DIR"/.claude/hooks/citation_guard.py
PreToolUseAskUserQuestionpython3 "$CLAUDE_PROJECT_DIR"/.claude/hooks/run_stop_gate.py
Stop*python3 "$CLAUDE_PROJECT_DIR"/.claude/hooks/run_stop_gate.py
SubagentStart*python3 "$CLAUDE_PROJECT_DIR"/.claude/hooks/ledger_log.py start
SubagentStop*python3 "$CLAUDE_PROJECT_DIR"/.claude/hooks/ledger_log.py stop

Permissions

deny (3)
Bash(pip install*)
Bash(pip3 install*)
Bash(rm -rf*)
ask (0)
—
allow (7)
Bash(python3 .claude/scripts/*)
Bash(python3 "$CLAUDE_PROJECT_DIR"/.claude/scripts/*)
Bash(python3 workspace/runs/*)
Bash(python3 workspace/tasks/*)
Read
Glob
Grep

Similar rigs

copied ✓