synthetic-sciences/openscience is an AI workbench that carries out scientific research by reading papers, forming hypotheses, writing and running code, conducting experiments, analyzing results, and preparing reports. Researchers use it for work in machine learning, biology, physics, and chemistry with remote or local models. Catalogue add-ons extend its scientific workflows through skills and instructions.
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 skills add synthetic-sciences/openscience --skill analysis-reportgit clone --depth 1 https://github.com/synthetic-sciences/openscienceWrote 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/skills/synthetic-sciences/openscience/analysis-report)<a href="https://agentmods.dev/skills/synthetic-sciences/openscience/analysis-report"><img src="https://agentmods.dev/badge/skills/synthetic-sciences/openscience/analysis-report/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/synthetic-sciences/openscience/analysis-report"><img src="https://agentmods.dev/badge/skills/synthetic-sciences/openscience/analysis-report.svg" alt="Reviewed on agentmods" width="80" 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.1 | $0.00121 | $0.03505 |
| Opus 5.5 | $0.00048 | $0.01402 |
| Sonnet 5.5 | $0.00024 | $0.00701 |
| Haiku 4.5 | $0.00012 | $0.00350 |
Grade A, and why
analysis-report 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 20d 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.
How it starts
The opening of the file, as written. The whole thing — 240 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Analysis report
The reader did not watch you work and will decide whether to trust the number. The report has to let them confirm you answered the question actually asked, see every choice that could have moved the result, and rerun it without asking you anything.
Rules
- The request's specification is the primary analysis. A grouping rule the request states (a median split, a tertile, a named marker), a named tissue, timepoint, population, comparison arm, test, threshold or output is what is computed first and reported first, exactly as written, on exactly the population named. Your better method is welcome: it is run as well and reported as a sensitivity analysis beside the requested one, never in its place. Substituting the "right" method for the requested one is the most common way a correct analysis scores as a wrong one. Restate the question with its binding clauses: population, time window, inclusion and exclusion rules, the exact metric and its unit, the direction that counts as better, thresholds, and what would count as "no effect". Quote the original wording where it is ambiguous and state the reading you adopted. Then map every clause to a numbered step in the Method: a question that specifies a chain (classify, then weight, then integrate) or a construct (a monotone trend across ordered grades, not a difference somewhere) is answered by implementing that chain step by step, and a two-part question gets two answered parts. A single proxy for the chain, or an omnibus test for the construct, is a different analysis. Then, before any analysis runs, write the checklist the report must satisfy and keep it beside the plan: every clause of the question; every group, stratum, endpoint or comparison it names or implies (a treatment's control, a mutation's wild-type, the reference arm, the second endpoint); every output it asks for (a figure counts); and the standard readings a reviewer of this data type expects beyond the primary result — a set- or pathway-level view for gene-level results, the field's standard model beside any custom test, sensitivity to the key threshold, the named entities interpreted mechanistically. The Results address each item by name; the answer answers each clause. A definition the question gives — a median within a group, a condition at every timepoint, a one-directional hypothesis, separate test families — is applied as written, with any objection recorded beside it, never substituted; and every definition is scoped to the population the question names: a threshold is computed within that group, an implied cohort restriction is applied before the analysis, and a "top N" is exactly N.
- Provenance for every input. File or URL, version or release, access date, size, row count, checksum, and the filters applied before analysis, with a row-count flow that shows how many records left at each step and why. Before the first filter, list the distinct values and counts of every column you filter or group on, read from the file rather than assumed from its name (which code is the baseline level, which categories belong in a denominator, how missingness is coded), and name the unit of analysis.
- Method with parameters. Every non-default parameter and every default that matters (two-sided test, Welch correction, random seed, tolerance, solver), with software versions. The exact call beats a prose paraphrase of it: under each step, paste the code that ran, verbatim and copy-pasteable, followed by the quantitative intermediate it produced (a count, a dimension, a p-value). A step described in prose without its code and number cannot be checked and, to a reader grading the text, did not happen.
- Results with uncertainty. Primary number first, with its interval or SD and n, raw and adjusted values side by side, units on everything, decimals consistent with the precision the data support. Tables for more than three numbers; figures with labelled axes and units, saved to files that the report references by path.
- Checks performed. What you did to catch your own errors: sanity bounds, recomputation by another route, sensitivity to a dropped subset or a different seed, unit tests on the pipeline, reconciliation against a known value.
- Limitations. Data quality, assumptions untested or violated, confounders, scope of generalization, and what the analysis cannot distinguish between.
- Decision log. Every fork where a reasonable analyst could have gone the other way: the choice, the alternatives, why this one, and the alternative's result when it was cheap to run. A reviewer reads this section first.
- Reproducibility. The ordered commands or script that regenerate every number and figure from raw inputs, the environment specification, runtime and resources needed, and the output paths.
- Interpretation is a deliverable, and the answer is committed. Numbers live in Results; claims live in Interpretation, and Interpretation is graded as hard as the numbers. Answer the question in one sentence at the top and again at the end, as the best-supported answer with a confidence and the single caveat most likely to change it. "Cannot be determined", "the data do not establish" and a direction left unnamed are not answers where the data bear on the question; state the reading the evidence favours and what would overturn it. Anchor the interpretation to what the question names: one paragraph per named phenotype, group, contrast or pathway. For each entity the result turns on, give the mechanism (with a reference), its functional role, the clinical or translational implication (a therapy, a biomarker, a target, a risk), and the next experiment that would test it. These are hypotheses: label them as such and give them. "Not necessary", "beyond the data", "would be speculative" and "cannot be inferred from observational data" are refusals a reader scores as no interpretation at all; a labelled hypothesis with a reference is what they expect. When the question asks for candidates, experiments or drugs, name specific ones with a reference. "Trends" and "consistent with" are the phrasing a grader halves. References ground the claims that need grounding, one each, and then stop: a reference search that outlasts the analysis adds nothing the report can use.
- Consistency pass before delivery. Numbers in prose equal numbers in tables equal numbers in output files; every referenced path exists; every claim points at a result; no placeholder remains.
- Prescribed structure wins. When the request fixes the headings, their order or their names, use them verbatim in place of the template below and keep every one, even where a section is short; a reader grading the text looks for its headings first. Where limitations or references are called for, they are sections with content, not a closing sentence.
- The answer file is the answer, not a pointer. When the request asks for a separate plain answer beside the trace, it carries the direction, the counts and statistics, the named entities, the mechanism in one paragraph and the limitation in one line, in the language of the question; a grader reading it alone should reach the same conclusion as one reading the trace. Nothing that the trace concludes is left out of it, and it does not exceed what the trace supports.
- Write the report; do not build it. A builder script that assembles the trace, a validator that counts its code blocks, a placeholder scanner: none of these is graded and each costs the minutes a further analysis would have used. The checks a judged report needs are that the prescribed headings and files exist and that the numbers in prose match the tables; that is a five-line check, run once.
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.
- 20d ago First seen · 240 lines · 121 tokens per session scan A 05d78a3d0180
analysis-report is a skill published in the GitHub repository synthetic-sciences/openscience (4,025 stars, last pushed today), licensed Apache-2.0. It adds 121 tokens to every session and 3,505 once invoked, about $0.0005 per session on Opus 5.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-27.
Other skills, from other repositories
knowledge-extension-ecosystem-lsp-code-intelligence
A codebase guide to LSP, the standard protocol behind editor features such as symbol queries, file diagnostics, and language-aware code information.
github-explorer
Explore and summarize popular GitHub projects. Use when the user wants to discover trending GitHub repositories, analyze project details, or get summaries of popular projects.
google-workspace-setup
One-time setup for gws: install, OAuth, scopes, auto-approve.
google-sheets
Google Sheets via gws: read/write cells, append rows, structured batch edits.
attachments
Move bytes between Gini upload space, external URLs, and workspace files. Used by every attachment / file-upload / file-download flow regardless of the target system (Linear, GitHub, S3, Notion, etc.).
google-docs
Google Docs via gws: read, append text, structured batch edits.