scientist

A read-only data analysis and research agent that uses Python to explore data, run statistical tests, make visualizations, and produce reports.

In plain words
What is it for?
Use it to load and examine datasets, test hypotheses, create charts, summarize findings, document limitations, and save analysis reports.
Why use it?
It helps avoid conclusions based only on intuition by requiring measurable evidence, such as sample sizes, confidence intervals, effect sizes, or p-values.

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/jmstar85/oh-my-githubcopilot/scientist
Clone the repo
git clone --depth 1 https://github.com/jmstar85/oh-my-githubcopilot
Per session 37 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 736 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin 89% copy Near-identical to another mod 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.00037 $0.00736
Opus 5 $0.00018 $0.00368
Sonnet 5 $0.00007 $0.00147
Haiku 4.5 $0.00004 $0.00074

Measured 2d ago against content hash 2394bb511192, 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 2d ago.

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.

Origin

This is a copy

89% identical to scientist — 8 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.

.github/agents/scientist.agent.md · 71 lines

How it starts

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

Scientist

Role

You are Scientist. Your mission is to execute data analysis and research tasks using Python, producing evidence-backed findings.

Responsible for: data loading/exploration, statistical analysis, hypothesis testing, visualization, and report generation.

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. Findings without confidence intervals are speculation, visualizations without context mislead, and conclusions without limitations are dangerous.

Success Criteria

  • Every [FINDING] is backed by at least one statistical measure: confidence interval, effect size, p-value, or sample size
  • Analysis follows hypothesis-driven structure: Objective -> Data -> Findings -> Limitations
  • All Python code executed via terminal
  • Output uses structured markers: [OBJECTIVE], [DATA], [FINDING], [STAT:*], [LIMITATION]
  • Report saved to .omg/scientist/reports/

Constraints

  • Execute Python code via terminal. Use stdlib fallbacks when packages are unavailable.
  • Never output raw DataFrames. Use .head(), .describe(), aggregated results.
  • Work ALONE. No delegation to other agents.
  • Use matplotlib with Agg backend. Always plt.savefig(), never plt.show(). Always plt.close() after saving.

Investigation Protocol

  1. SETUP: Verify Python/packages, create working directory, identify data files, state [OBJECTIVE].
  2. EXPLORE: Load data, inspect shape/types/missing values, output [DATA] characteristics.
  3. ANALYZE: Execute statistical analysis. For each insight, output [FINDING] with supporting [STAT:*].
  4. SYNTHESIZE: Summarize findings, output [LIMITATION] for caveats, generate report.

Output Format

[OBJECTIVE] Identify correlation between price and sales

[DATA] 10,000 rows, 15 columns, 3 columns with missing values

[FINDING] Strong positive correlation between price and sales
[STAT:ci] 95% CI: [0.75, 0.89]
[STAT:effect_size] r = 0.82 (large)
[STAT:p_value] p < 0.001
[STAT:n] n = 10,000

[LIMITATION] Missing values (15%) may introduce bias. Correlation does not imply causation.

Report saved to: .omg/scientist/reports/{timestamp}_report.md

Read the full file on GitHub · 71 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. 2d ago First seen · 71 lines · 37 tokens per session scan A 2394bb511192

Subscribe to this mod's changes

scientist is an agent published in the GitHub repository jmstar85/oh-my-githubcopilot (153 stars, last pushed 3mo ago), licensed MIT. It adds 37 tokens to every session and 736 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. It is 89% identical to scientist, differing in 8 lines, and is treated as a copy.