Getting it into your agent
This one installs as part of its plugin. Adding the marketplace and installing the plugin brings it with everything else the plugin ships.
/plugin marketplace add bigbio/sdrf-skills/plugin install sdrf-skillsWrote 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/bigbio/sdrf-skills/sdrf-annotate)<a href="https://agentmods.dev/skills/bigbio/sdrf-skills/sdrf-annotate"><img src="https://agentmods.dev/badge/skills/bigbio/sdrf-skills/sdrf-annotate/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/bigbio/sdrf-skills/sdrf-annotate"><img src="https://agentmods.dev/badge/skills/bigbio/sdrf-skills/sdrf-annotate.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector warn
SkillSpector: 3 findings, up to medium
These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →
- medium Data Exfiltration · line 806 Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.Fix: Verify the destination URL is trusted and necessary. Remove or replace with documented APIs. Ensure no secrets, tokens, or PII are transmitted.
- medium Data Exfiltration · line 807 Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.Fix: Verify the destination URL is trusted and necessary. Remove or replace with documented APIs. Ensure no secrets, tokens, or PII are transmitted.
- medium Excessive Agency · line 984 Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.Fix: Add human-in-the-loop confirmation for destructive, irreversible, or high-impact operations. Never auto-execute commands that modify files, send data, or alter system state.
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.00123 | $0.08175 |
| Opus 5.5 | $0.00049 | $0.03270 |
| Sonnet 5.5 | $0.00025 | $0.01635 |
| Haiku 4.5 | $0.00012 | $0.00817 |
Grade A, and why
sdrf-annotate 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 — 509 lines — stays where its author put it; the contents beside it link to each section on GitHub.
SDRF Annotation Workflow
Bundle paths.
spec/,tools/anddata/ship with this skill, not with your working directory. Resolve every such path below against the bundle root (SDRF_SKILLS_ROOT, elseCLAUDE_PLUGIN_ROOT, else your sdrf-skills checkout):${SDRF_SKILLS_ROOT:-${CLAUDE_PLUGIN_ROOT}}/spec/sdrf-proteomics/TERMS.tsv. The helpers are thesdrf-toolscommand (install notes:sdrf-annotate/references/setup.md; check withsdrf-tools doctor); noPYTHONPATHor bundle-root variable is needed to run them. Files the user is annotating stay relative to the working directory.
You are performing a complete SDRF annotation. Work through the steps in order, but settle Step 0 first: it decides which of the later steps apply at all. Do not guess a value — verify it, against the record when you have network tools and against the files in front of you when you do not.
Step 0: Settle the operating mode, then stop looking around
Answer the three questions below before any other tool call. Getting them wrong is what turns a ten-turn annotation into a fifty-turn one, because the workflow below assumes lookups that may not exist here and you will spend turns discovering that one failed call at a time.
1. Is the record already on disk? If the working directory holds an evidence/
directory, or the user handed you the PRIDE record, file list and paper as files, then the
gathering is already done. You are in offline mode:
- Read those files, and treat them as the whole of the available record.
- Skip Steps 0.5, 1.1, 1.2 and 1.3 entirely. There is nothing to fetch, and no community repository to consult.
- Do not call MCP tools and do not search the web. Offline mode is always unattended (question 3), so do not ask the user a question. Where the evidence is silent, write an explicit reserved word (below) rather than inferring a value from what is typical.
2. Which lookups do you actually have? Check once, in a single turn, and remember the
answer: MCP tools for PRIDE/Europe PMC/OLS, and parse_sdrf on the PATH. Do not re-probe
later. If a class of lookup is missing, use the offline substitute named below instead of
retrying it.
What ships with it
17 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- references/cellline.md 15 KB
- references/channel-map.md 3.5 KB
- references/existing-annotation.md 7.2 KB
- references/explaining.md 8.1 KB
- references/fix-patterns.md 7.3 KB
- references/format-rules.md 9.7 KB
- references/gather-context.md 18 KB
- references/ols-lookup.md 5.2 KB
- references/planning.md 6.1 KB
- references/reconcile.md 3.5 KB
- references/review-checks.md 5.7 KB
- references/sample-values.md 10.0 KB
- references/setup.md 5.7 KB
- references/technical-values.md 9.9 KB
- references/techrefine.md 15 KB
- references/templates.md 6.4 KB
- references/validation.md 7.7 KB
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 Changed · +85 lines 778959ab694c
- 11d ago Changed · +3 lines 5c4b470b5205
- 1mo ago Changed · +2 lines 7aaadb984bcf
- 1mo ago Changed · -760 lines · +55 tokens per session 73a815e9a211
- 1mo ago Changed · +6 lines ffd42e5e5b46
- 1mo ago Changed · +9 lines 65829b8cf414
- 1mo ago Changed 6608bf9f10c8
- 1mo ago First seen · 1,164 lines · 68 tokens per session scan A 16e92471a165
sdrf-annotate is a skill published in the GitHub repository bigbio/sdrf-skills (19 stars, last pushed yesterday), licensed MIT. It adds 123 tokens to every session and 8,175 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-08-30.
Other skills, from other repositories
proteomics-de
Load when computing two-group differential protein abundance (group2 vs group1, log2FC + p-value + BH-adjusted FDR) via Welch t-test, equal-variance t-test, or Mann-Whitney on a wide protein × sample CSV. Skip when you need multi-condition DE (run pairwise contrasts manually); label-based TMT linear-mixed models.
proteomics-enrichment
Load for Fisher over-representation analysis of protein identifiers against caller-supplied pathways. Skip rank-based GSEA (use bulkrna-enrichment) or protein differential testing (use proteomics-de).
proteomics-data-import
Load when ingesting a MaxQuant proteinGroups.txt, FragPipe combinedprotein.tsv, DIA-NN report, or generic CSV / TSV protein-quantification table — normalises columns to a standard schema, emits tables/proteins.csv. Skip when raw spectra are the input (run the search engine first); the file is already OmicsClaw schema.
proteomics-identification
Load when summarising peptide identifications (PSM count, unique peptide count, distinct protein count, score / charge distributions) from a peptide-level CSV produced by MaxQuant / FragPipe / DIA-NN. Skip when raw spectra are the input (run a search engine first); working with protein-quantification tables (use…
proteomics-ms-qc
Load when computing protein-table QC — proteins × samples count, missing-value rate, intensity CV (median + mean) — from a MaxQuant / FragPipe / DIA-NN protein-quantification CSV. Skip when raw mzML / RAW spectra are the input (run a search engine first); peptide-level QC is needed (use proteomics-identification).
proteomics-ptm
Load when summarising PTM sites (phosphorylation, acetylation, ubiquitination, etc.) from a per-site CSV — site-class assignment (Olsen et al. Class I/II/III by localizationprobability), per-PTM-type counts, amino-acid distribution, sites-per-protein. Skip when raw spectra are the input; you only need protein-level…