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 voxel51/fiftyone-skills --skill fiftyone-dataset-curationgit clone --depth 1 https://github.com/voxel51/fiftyone-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/voxel51/fiftyone-skills/fiftyone-dataset-curation)<a href="https://agentmods.dev/skills/voxel51/fiftyone-skills/fiftyone-dataset-curation"><img src="https://agentmods.dev/badge/skills/voxel51/fiftyone-skills/fiftyone-dataset-curation/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/voxel51/fiftyone-skills/fiftyone-dataset-curation"><img src="https://agentmods.dev/badge/skills/voxel51/fiftyone-skills/fiftyone-dataset-curation.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector warn
SkillSpector: 1 finding, up to high
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 →
- high YARA Match · line 12 YARA rule matched a hack tool or exploit indicator (offensive tools, reconnaissance, privilege escalation, or exploit frameworks).Fix: Remove offensive tool references and exploit code. Legitimate agent skills should not contain penetration testing tools, exploit frameworks, or reconnaissance utilities.
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.00056 | $0.05632 |
| Opus 5 | $0.00028 | $0.02816 |
| Sonnet 5 | $0.00011 | $0.01126 |
| Haiku 4.5 | $0.00006 | $0.00563 |
Grade A, and why
fiftyone-dataset-curation 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 12d 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 — 753 lines — stays where its author put it; the contents beside it link to each section on GitHub.
FiftyOne Dataset Curation
End-to-end curation pipeline for any FiftyOne dataset: images, video, point clouds, grouped multimodal. Run all phases sequentially or jump directly to any single phase.
Key Directives
ALWAYS follow these rules — no exceptions:
1. Check for a loaded dataset first
list_datasets()
If none exists, offer to delegate to fiftyone-dataset-import skill.
2. Set context before any operation
set_context(dataset_name="<name>")
3. Launch App before any brain operator
launch_app()
Wait 5–10 seconds for initialization before executing delegated operators.
4. Discover schema before referencing any field
dataset_summary()
get_field_schema(flat=True)
Never hardcode field names. Adapt all field references from schema discovery results.
5. Discover operators dynamically
list_operators(builtin_only=False)
get_operator_schema(operator_uri="<uri>")
Always call list_operators() before any execute_operator(). Confirm the operator exists.
6. Confirm before mutating
Before tagging, adding fields, or deleting — present findings to the user and ask for confirmation.
7. Keep App open for interactive review
Do NOT call close_app() automatically. Leave the App running so the user can explore results.
8. Check delegated service before brain operations
Before running any brain operator with delegate=True, verify the delegated service is running:
fiftyone delegated list
If no services are running:
fiftyone delegated launch &
Wait ~5 seconds for initialization. Without this service, delegated operators will queue but never execute.
9. Always discover plugin names dynamically
Never assume a plugin's exact name or operator URI from documentation. Always verify:
list_plugins()
Use the exact plugin name from the output. Then:
list_operators(builtin_only=False)
Use the exact operator URI from the output. Documentation names may differ from installed names.
What ships with it
4 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.
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.
- 12d ago First seen · 753 lines · 56 tokens per session scan A 55959bf81eb2
fiftyone-dataset-curation is a skill published in the GitHub repository voxel51/fiftyone-skills (39 stars, last pushed today), licensed Apache-2.0. It adds 56 tokens to every session and 5,632 once invoked, about $0.0003 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.
Other skills, from other repositories
torchdrug
Build and troubleshoot TorchDrug 0.2.1 workflows for molecular graphs, property prediction, self-supervised pretraining, molecule generation, retrosynthesis, protein representation learning, and knowledge graph reasoning. Use when code imports torchdrug or needs its datasets, models, tasks, or Engine.
arboreto
Infer gene regulatory networks (GRNs) from gene expression data using scalable algorithms (GRNBoost2, GENIE3). Use when analyzing transcriptomics data (bulk RNA-seq, single-cell RNA-seq) to identify transcription factor-target gene relationships and regulatory interactions. Supports distributed computation for…
pyhealth
Build clinical/healthcare deep-learning pipelines with PyHealth — loading EHR/signal/imaging datasets (MIMIC-III/IV, eICU, OMOP, SleepEDF, ChestXray14, EHRShot), defining tasks (mortality, readmission, length-of-stay, drug recommendation, sleep staging, ICD coding, EEG events), instantiating models (Transformer…
deepspot-m
Generate transcriptome-wide virtual spatial transcriptomics from H&E histology with DeepSpot-M. Use when you need spatial gene expression in log1p-CPM for 224x224 tiles at about 20x, want to query protein-coding genes by symbol instead of a fixed panel, or want to run prediction across a whole slide after tiling with…
nemo-mbridge-perf-expert-parallel-overlap
Validate and use MoE expert-parallel communication overlap in Megatron-Bridge, including overlapmoeexpertparallelcomm, delaywgradcompute, and flex dispatcher backends such as DeepEP and HybridEP.
pick-a-pii-model
Select an on-device OpenMed PII model from the committed registry by language, runtime format, and size budget, then require recall validation before deployment. Use when an agent must choose a local PII detector for CPU, Apple Silicon, or a mobile export without relying on live model discovery.