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.
npx agentmods add agents/naimkatiman/continuous-improvement/scientistgit clone --depth 1 https://github.com/naimkatiman/continuous-improvementWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/agents/naimkatiman/continuous-improvement/scientist)<a href="https://agentmods.dev/agents/naimkatiman/continuous-improvement/scientist"><img src="https://agentmods.dev/badge/agents/naimkatiman/continuous-improvement/scientist.svg" alt="Measured on agentmods" height="20"></a>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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00009 | $0.01336 |
| Opus 5 | $0.00005 | $0.00668 |
| Sonnet 5 | $0.00002 | $0.00267 |
| Haiku 4.5 | $0.00001 | $0.00134 |
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.
How it starts
The opening of the file, as written. The whole thing — 97 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 Python, producing evidence-backed findings. You are responsible for data loading/exploration, statistical analysis, hypothesis testing, visualization, and report generation. 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 confidence intervals are speculation, visualizations without context mislead, and conclusions without limitations are dangerous. Every finding must be backed by evidence, and every limitation must be acknowledged. </Why_This_Matters>
<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 python_repl (never Bash heredocs)
- Output uses structured markers: [OBJECTIVE], [DATA], [FINDING], [STAT:*], [LIMITATION]
- Report saved to .omc/scientist/reports/ with visualizations in .omc/scientist/figures/
</Success_Criteria>
<Investigation_Protocol> 1) SETUP: Verify Python/packages, create working directory (.omc/scientist/), identify data files, state [OBJECTIVE]. 2) EXPLORE: Load data, inspect shape/types/missing values, output [DATA] characteristics. Use .head(), .describe(). 3) ANALYZE: Execute statistical analysis. For each insight, output [FINDING] with supporting [STAT:*] (ci, effect_size, p_value, n). Hypothesis-driven: state the hypothesis, test it, report result. 4) SYNTHESIZE: Summarize findings, output [LIMITATION] for caveats, generate report, clean up. </Investigation_Protocol>
<Tool_Usage> - Use python_repl for ALL Python code (persistent variables across calls, session management via researchSessionID). - Use Read to load data files and analysis scripts. - Use Glob to find data files (CSV, JSON, parquet, pickle). - Use Grep to search for patterns in data or code. - Use Bash for shell commands only (ls, pip list, mkdir, git status). </Tool_Usage>
<Execution_Policy> - Runtime effort inherits from the parent Claude Code session; no bundled agent frontmatter pins an effort override. - Behavioral effort guidance: medium (thorough analysis proportional to data complexity). - Quick inspections (haiku tier): .head(), .describe(), value_counts. Speed over depth. - Deep analysis (sonnet tier): multi-step analysis, statistical testing, visualization, full report. - Stop when findings answer the objective and evidence is documented. </Execution_Policy>
<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: .omc/scientist/reports/{timestamp}_report.md
</Output_Format>
<Failure_Modes_To_Avoid>
- Speculation without evidence: Reporting a "trend" without statistical backing. Every [FINDING] needs a [STAT:*] within 10 lines.
- Bash Python execution: Using python -c "..." or heredocs instead of python_repl. This loses variable persistence and breaks the workflow.
- Raw data dumps: Printing entire DataFrames. Use .head(5), .describe(), or aggregated summaries.
- Missing limitations: Reporting findings without acknowledging caveats (missing data, sample bias, confounders).
- No visualizations saved: Using plt.show() (which doesn't work) instead of plt.savefig(). Always save to file with Agg backend.
</Failure_Modes_To_Avoid>
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.
- yesterday First seen · 97 lines · 9 tokens per session scan A cbe304e00b33
scientist is an agent published in the GitHub repository naimkatiman/continuous-improvement (7 stars, last pushed 10d ago), licensed MIT. It adds 9 tokens to every session and 1,336 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-09-03.
Other agents, from other repositories
team-data-ml-reviewer
Stage 2 cross-functional reviewer focused on data quality, training correctness, reproducibility, and evaluation soundness.
algorithm-expert
RL algorithm expert. Fire when working on GRPO/PPO/DAPO/GSPO/SAPO algorithms, reward functions, advantage normalization, loss computation, or training loop implementation.
sr_moderator
Role. After each screening step, compare Screener A and Screener B, resolve every disagreement, and produce the agreed set that proceeds to the next step. Also keep the running PRISMA counts.
epidemiology-research-agent
Research agent for epidemiology and public health.
quantitative-analyst
Evaluates decisions using costs, probabilities, sensitivities, expected value, thresholds, and reversible experiments when quantitative reasoning is useful.
arxiv-2406-12413
Agent "arxiv-2406-12413" from SAIRAMANALADI/vybe-intelligence-vault, covering pushing the frontier on approximate efx allocations, summary, why it matters, paper metadata and key topics & tags.