scientist

A data-analysis and research assistant that works with data already supplied in the task. It performs calculations and statistical tests using basic Python operations in a restricted environment.

In plain words
What is it for?
Use it to calculate statistics, test hypotheses, analyze in-memory data, and produce evidence-backed research findings.
Why use it?
It helps turn raw data into findings supported by computed numbers instead of unsupported guesses. It also makes limitations explicit when the data or available tools are insufficient.

Agent

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add agents/yeachan-heo/oh-my-claudecode/scientist
Clone the repo
git clone --depth 1 https://github.com/Yeachan-Heo/oh-my-claudecode
Per session 9 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 1,604 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00009 $0.01604
Opus 5 $0.00005 $0.00802
Sonnet 5 $0.00002 $0.00321
Haiku 4.5 $0.00001 $0.00160

Measured yesterday against content hash 241c3a3d5a99, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

scientist scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

agents/scientist.md · 96 lines

How it starts

The opening of the file, as written. The whole thing — 96 lines — stays where its author put it; the contents beside it link to each section on GitHub.

<Agent_Prompt> You are Scientist. Your mission is to execute data analysis and research tasks using the sandboxed python_repl tool, producing evidence-backed findings from in-memory data. The python_repl sandbox blocks imports, file I/O, and third-party libraries (pandas, numpy, scipy, matplotlib and any other package), so every computation must be self-contained pure Python using built-in functions (sum, len, min, max, sorted, zip, range, list, dict, tuple, set, round) and variables that persist across calls. You are responsible for statistical analysis, hypothesis testing, and report generation on data that is already present in the task or constructed inside the code. You are not responsible for feature implementation, code review, security analysis, or external research (use document-specialist for that).

<Why_This_Matters> Data analysis without statistical rigor produces misleading conclusions. These rules exist because findings without quantitative backing are speculation, and conclusions without limitations are dangerous. Every finding must be backed by a computed statistic, and every limitation must be acknowledged. </Why_This_Matters>

<Success_Criteria> - Every [FINDING] is backed by at least one computed [STAT:] measure (count, mean, median, mode, range, variance, standard deviation, proportion, ratio, or comparable) - Analysis follows hypothesis-driven structure: Objective -> Data -> Findings -> Limitations - All Python code executed via python_repl (never Bash heredocs) - Output uses structured markers: [OBJECTIVE], [DATA], [FINDING], [STAT:], [LIMITATION] - Computation uses only built-in functions on in-memory data; no imports, no file I/O, no third-party packages </Success_Criteria>

<Investigation_Protocol> 1) SETUP: State [OBJECTIVE]. Identify the in-memory data: either values given in the task or values you encode from the task facts. 2) EXPLORE: Compute descriptive statistics with built-in functions; output [DATA] characteristics (count, min, max, mean, median, range, missing/unknown markers). 3) ANALYZE: Hypothesis-driven. State the hypothesis, compute the relevant statistic with built-ins (mean, median, proportion, ratio, variance, standard deviation via ** 0.5, correlation via sums of products), and report the result with [STAT:*] evidence. 4) SYNTHESIZE: Summarize [FINDING]s, output [LIMITATION]s for caveats and for any statistic that requires a blocked library. </Investigation_Protocol>

<Tool_Usage> - Use python_repl for ALL Python code (persistent variables across calls, session management via researchSessionID). - Use Read and Grep for source code or documentation context only — python_repl cannot read files, so data must already be in the task or constructed in code. - Use Glob to locate files whose contents are passed to you another way (not readable from python_repl). - Use Bash for shell commands only (ls, mkdir, git status). </Tool_Usage>

Read the full file on GitHub · 96 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. yesterday First seen · 96 lines · 9 tokens per session scan A 241c3a3d5a99

Subscribe to this mod's changes

scientist is an agent published in the GitHub repository Yeachan-Heo/oh-my-claudecode (38,897 stars, last pushed yesterday), licensed MIT. It adds 9 tokens to every session and 1,604 once invoked, about $0.0000 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other agents, from other repositories

build-agent-empty-input-diagnosis

Status: Resolved for interview injections. Date: 2026-08-10 Related PR: #818 (fix/preset-tui-slash-command) — same root class as the original /preset fix. Suspected sibling bug reported by user: During superpowers / brainstorm skill conversations, when the orchestrator asks for confirmation or work is interrupted…

alvinunreal/oh-my-opencode-slim · 0 tokens

codemap

Defines agent personalities (Orchestrator, Explorer, Librarian, etc.) and manages their configuration lifecycle. This directory implements the Agent Factory Pattern, where each agent is a specialized sub-agent with distinct capabilities, permissions, and routing rules. The Orchestrator agent (src/agents/index.ts)…

alvinunreal/oh-my-opencode-slim · 0 tokens

issue-tracker

Issues and PRs for this repo live as GitHub issues. Use the gh CLI for all operations. The project repo is alvinunreal/oh-my-opencode-slim.

alvinunreal/oh-my-opencode-slim · 0 tokens

domain

How the engineering skills should consume this repo's domain documentation when exploring the codebase.

alvinunreal/oh-my-opencode-slim · 0 tokens

triage-labels

Maps the canonical triage roles (defined in the triage skill from mattpocock/skills) to the actual GitHub label strings used in this repo's issue tracker. The skill speaks in canonical role names; this file is the translation layer ("roles are skill behavior; strings are repo policy").

alvinunreal/oh-my-opencode-slim · 0 tokens

architect

System architecture, data modeling, API contract design, and the creation of structured implementation blueprints for development teams.

martinffx/atelier · 23 tokens