Source profileQuality 91/100

NVIDIA-NeMo/nemo-platform/plugins/nemo-anonymizer/src/nemo_anonymizer_plugin/skills/anonymizer/SKILL.md

anonymizer

Use when the user wants to detect and replace, hash, redact, annotate, or rewrite PII (names, emails, phone numbers, locations, ...) in a CSV or Parquet dataset using the NeMo Anonymizer plugin.

Source repository stars
56
Declared platforms
0
Static risk flags
1
Last source update
2026-08-06
Source checked
2026-08-06

Decision brief

What it does—and where it fits

Do not explore the workspace first. The workflow's Learn step gives you everything you need.

Best for

  • Use when the user wants to detect and replace, hash, redact, annotate, or rewrite PII (names, emails, phone numbers, locations, ...

Not for

  • Replacement strategies need a discriminated payload. Hand-written YAML specs must include kind: redact (or annotate / hash / substitute) inside the replace block.
  • Substitute and rewrite need LLM-backed model aliases. For plugin-service / Jobs execution they must be backed by providers declared in modelconfigs. For library-level details, refer to the Anonymizer library docs or lib…

Compatibility matrix

Platform support, with evidence labels

PlatformStatusEvidenceWhat to check
CodexNot declaredNo explicit evidencePortability before use
Claude CodeNot declaredNo explicit evidencePortability before use
CursorNot declaredNo explicit evidencePortability before use
Gemini CLINot declaredNo explicit evidencePortability before use
Open the compatibility checker

Installation

Inspect first. Install second.

The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

Source-detected install commandSource
npx skills add https://github.com/NVIDIA-NeMo/nemo-platform --skill "plugins/nemo-anonymizer/src/nemo_anonymizer_plugin/skills/anonymizer"
Safe inspection promptEditorial

Inspect the Agent Skill "anonymizer" from https://github.com/NVIDIA-NeMo/nemo-platform/blob/f2d56031d6a584e8064024bbc3a8cad368ec33a7/plugins/nemo-anonymizer/src/nemo_anonymizer_plugin/skills/anonymizer/SKILL.md at commit f2d56031d6a584e8064024bbc3a8cad368ec33a7. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.

Workflow

What the source asks the agent to do

  1. 01

    Workflow

    Use Autopilot mode if the user implies they don't want to answer questions — e.g., they say something like "be opinionated", "you decide", "make reasonable assumptions", "just anonymize it", "surprise me", etc. Otherwise, use Interactive mode (default).

    Interactive → read workflows/interactive.mdAutopilot → read workflows/autopilot.mdUse Autopilot mode if the user implies they don't want to answer questions — e.g., they say something like "be opinionated", "you decide", "make reasonable assumptions", "just anonymize it", "surprise me", etc. Otherwis…
  2. 02

    Usage Tips and Common Pitfalls

    Replacement strategies need a discriminated payload. Hand-written YAML specs must include kind: redact (or annotate / hash / substitute) inside the replace block.

    Replacement strategies need a discriminated payload. Hand-written YAML specs must include kind: redact (or annotate / hash / substitute) inside the replace block.Substitute and rewrite need LLM-backed model aliases. For plugin-service / Jobs execution they must be backed by providers declared in modelconfigs. For library-level details, refer to the Anonymizer library docs or lib…Spec files are YAML, not JSON. nemo anonymizer preview run --spec-file and nemo anonymizer run run --spec-file both load YAML.
  3. 03

    Goal

    Anonymize a tabular text dataset using the NeMo Anonymizer plugin so it matches this description:

    An anonymizer.preview streaming function (small samples, fast iteration). Use nemo anonymizer preview run for local execution and nemo anonymizer preview submit for platform execution.An anonymizer.run job for full-dataset execution. Use nemo anonymizer run run for local execution and nemo anonymizer run submit for Jobs-worker execution.A nemo anonymizer validate command (synchronous config validation).
  4. 04

    Rules

    Prefer CLI surfaces. Generate YAML specs and run nemo anonymizer ... commands unless the user explicitly asks for Python.

    Prefer CLI surfaces. Generate YAML specs and run nemo anonymizer ... commands unless the user explicitly asks for Python.Always iterate via nemo anonymizer preview run or nemo anonymizer preview submit before running the full job. Previews are cheap and stream a small sample (default 10 records) with full detection traces.When you include config, pick exactly one of replace (Annotate/Hash/Redact/Substitute) or rewrite on the AnonymizerConfig. Not both. Do not claim config is required for every flow; the Anonymizer library owns default co…
  5. 05

    Troubleshooting

    nemo anonymizer CLI not found: The plugin isn't installed in this environment. From the repo root, run uv sync; the root workspace includes the Anonymizer plugin. Confirm with nemo anonymizer --help. Do not install anyt…

    nemo anonymizer CLI not found: The plugin isn't installed in this environment. From the repo root, run uv sync; the root workspace includes the Anonymizer plugin. Confirm with nemo anonymizer --help. Do not install anyt…nemo anonymizer preview submit returns 404: The plugin service isn't mounted on the gateway. nemo setup does not auto-mount it. Re-run nemo services run (no --services flag) and verify the routes show up under /apis/ano…modelconfigs are required for remote execution: preview submit and run submit go through plugin-service / Jobs paths. Add modelconfigs referencing an Inference Gateway provider; use the inference/model-provider docs or…

Permission review

Static risk signals and limitations

Reads files

low · line 24

The documentation asks the agent to read local files, directories, or repositories.

Read **only** the workflow file that matches the selected mode, then follow it:

Evidence record

Why each signal appears

EvidenceSourceComputedTestedEditorial
SignalValueEvidence typeMeaning
Quality score91/100ComputedDocumentation, specificity, maintenance, and trust rules
Repository stars56SourceRepository attention, not individual Skill quality
Compatibility0 platformsSourceDeclared in the catalog source record
Usage guideautomated source guideEditorialGenerated or reviewed according to the visible evidence level

Pinned source

Provenance and original SKILL.md

Repository
NVIDIA-NeMo/nemo-platform
Skill path
plugins/nemo-anonymizer/src/nemo_anonymizer_plugin/skills/anonymizer/SKILL.md
Commit
f2d56031d6a584e8064024bbc3a8cad368ec33a7
License
Apache-2.0
Collected
2026-08-06
Default branch
main
View the original SKILL.md

Before You Start

Do not explore the workspace first. The workflow's Learn step gives you everything you need.

Source of truth. For anything you're unsure about, prefer the in-tree CLI docs over your memory: docs/anonymizer/index.mdx, docs/anonymizer/cli.mdx, and docs/anonymizer/tutorials/{index,preview,run}.mdx. The NVIDIA NeMo Anonymizer library docs own detection, replacement strategy parameters, and rewrite-mode semantics.

Goal

Anonymize a tabular text dataset using the NeMo Anonymizer plugin so it matches this description:

$ARGUMENTS

The plugin wraps the NVIDIA NeMo Anonymizer library and exposes:

  • An anonymizer.preview streaming function (small samples, fast iteration). Use nemo anonymizer preview run for local execution and nemo anonymizer preview submit for platform execution.
  • An anonymizer.run job for full-dataset execution. Use nemo anonymizer run run for local execution and nemo anonymizer run submit for Jobs-worker execution.
  • A nemo anonymizer validate command (synchronous config validation).

Workflow

Use Autopilot mode if the user implies they don't want to answer questions — e.g., they say something like "be opinionated", "you decide", "make reasonable assumptions", "just anonymize it", "surprise me", etc. Otherwise, use Interactive mode (default).

Read only the workflow file that matches the selected mode, then follow it:

  • Interactive → read workflows/interactive.md
  • Autopilot → read workflows/autopilot.md

Rules

  • Prefer CLI surfaces. Generate YAML specs and run nemo anonymizer ... commands unless the user explicitly asks for Python.
  • Always iterate via nemo anonymizer preview run or nemo anonymizer preview submit before running the full job. Previews are cheap and stream a small sample (default 10 records) with full detection traces.
  • When you include config, pick exactly one of replace (Annotate/Hash/Redact/Substitute) or rewrite on the AnonymizerConfig. Not both. Do not claim config is required for every flow; the Anonymizer library owns default config behavior and strategy semantics. See references/replace-strategies.md for plugin request formatting and the library docs for semantics.
  • The input must be a single CSV or Parquet file. text_column defaults to text; set it explicitly when the free-text column has another name. If the dataset has a stable record id, also set id_column. See references/inputs.md.
  • model_configs is optional for local execution (preview run / run run); when omitted, the Anonymizer library defaults are used.
  • The current plugin-service / Jobs paths (preview submit, run submit) require model_configs so requests route through the NeMo Platform Inference Gateway. See references/model-configs.md.
  • selected_models overrides are only valid when model_configs is also supplied; aliases must resolve against that pool.
  • Local file paths only work for local execution. Plugin-service / Jobs execution requires an http(s) URL or a fileset reference (<workspace>/<fileset>#<path> or fileset://...).
  • If a spec file matching the user's description already exists in the working directory, ask whether to edit it or create a new one.

Usage Tips and Common Pitfalls

  • Replacement strategies need a discriminated payload. Hand-written YAML specs must include kind: redact (or annotate / hash / substitute) inside the replace block.
  • Substitute and rewrite need LLM-backed model aliases. For plugin-service / Jobs execution they must be backed by providers declared in model_configs. For library-level details, refer to the Anonymizer library docs or library skills.
  • Spec files are YAML, not JSON. nemo anonymizer preview run --spec-file <path> and nemo anonymizer run run --spec-file <path> both load YAML.
  • Run results are artifacts. The job writes an artifacts directory containing dataset.parquet, trace.parquet, metadata.json, and optional failed_records.json.
  • Fileset refs use # to point at a file. <workspace>/<fileset>#<path>, <fileset>#<path> (uses request workspace), or fileset://<workspace>/<fileset>#<path>. The # fragment must point at a .csv or .parquet file.
  • Detection labels. Keep the Anonymizer library default label set unless the user asks to restrict detection. Refer to the Anonymizer library docs or library skills for supported label/config details.
  • Preview record cap. num_records defaults to 10 and is bounded by the service's preview_num_records.max setting. Use a small value while iterating.

Troubleshooting

  • nemo anonymizer CLI not found: The plugin isn't installed in this environment. From the repo root, run uv sync; the root workspace includes the Anonymizer plugin. Confirm with nemo anonymizer --help. Do not install anything without the user's permission.
  • nemo anonymizer preview submit returns 404: The plugin service isn't mounted on the gateway. nemo setup does not auto-mount it. Re-run nemo services run (no --services flag) and verify the routes show up under /apis/anonymizer/ in the OpenAPI listing. See docs/anonymizer/tutorials/index.mdx Prerequisites.
  • model_configs are required for remote execution: preview submit and run submit go through plugin-service / Jobs paths. Add model_configs referencing an Inference Gateway provider; use the inference/model-provider docs or skill for provider discovery.
  • Input source ... is a local path: Plugin-service execution rejects local paths. Either upload the file to a fileset, use an http(s) URL, or switch to preview run / run run (local execution).
  • Fileset input ... must resolve to a .csv or .parquet file: The #<path> fragment points at a directory or a non-CSV/Parquet file. Point it at a single file.
  • Config validation failed (HTTP 422): Run nemo anonymizer validate --config <yaml> [--model-configs <yaml>] to surface the exact error synchronously. Common causes: mixing replace and rewrite, picking Substitute without a replacement_generator alias in model_configs, fileset path missing the #<file> fragment.
  • selected_models requires model_configs ...: The user passed selected_models overrides without an explicit model pool. Either drop the overrides or define model_configs with the aliases the overrides reference.
  • User asks to run remotely: Use nemo anonymizer run submit. Ensure data.source is an HTTP(S) URL or fileset reference and model_configs is present.
  • Empty preview dataset / "No preview dataset received": Check the log frames printed by the preview stream. Most commonly the detection model alias is wrong, or the dataset has zero rows after column resolution.

Output Template

Generate a YAML spec file in the current directory describing the request. Name it descriptively (e.g., redact_records_preview.yaml or redact_records_run.yaml).

Preview spec — fast iteration over a small sample:

# Local:  nemo anonymizer preview run    --spec-file ./<this_file>.yaml --workspace <ws>
# Remote: nemo anonymizer preview submit --spec-file ./<this_file>.yaml --workspace <ws>
config:
  replace:
    kind: redact            # one of: redact, annotate, hash, substitute
    format_template: "[REDACTED_{label}]"
data:
  source: "anonymizer-inputs#anonymizer-input.csv"   # local path, http(s) URL, or fileset ref
  text_column: biography
  id_column: id
num_records: 5
# Required for plugin-service execution (`preview submit`),
# optional for local `preview run`:
model_configs:
  - alias: gliner-pii-detector
    provider: nvidia-build
    model: nvidia/gliner-pii
  - alias: gpt-oss-120b
    provider: nvidia-build
    model: openai/gpt-oss-120b
  - alias: nemotron-30b-thinking
    provider: nvidia-build
    model: nvidia/nemotron-3-nano-30b-a3b
# selected_models:
#   detection:
#     entity_detector: gliner-pii-detector
#     entity_validator: gpt-oss-120b
#   replace:
#     replacement_generator: gpt-oss-120b

Run spec — full-dataset job:

# Local:  nemo anonymizer run run    --spec-file ./<this_file>.yaml
# Remote: nemo anonymizer run submit --spec-file ./<this_file>.yaml --workspace <ws>
config:
  replace:
    kind: redact
    format_template: "[REDACTED_{label}]"
data:
  source: "anonymizer-inputs#anonymizer-input.csv"
  text_column: biography
  id_column: id
# Required for `run submit`, optional for `run run`:
model_configs:
  - alias: gliner-pii-detector
    provider: nvidia-build
    model: nvidia/gliner-pii
  - alias: gpt-oss-120b
    provider: nvidia-build
    model: openai/gpt-oss-120b
  - alias: nemotron-30b-thinking
    provider: nvidia-build
    model: nvidia/nemotron-3-nano-30b-a3b

Include only the bits the task requires — e.g., omit model_configs for purely local previews, omit selected_models unless overrides are needed, and use Substitute / rewrite only when the user wants LLM-generated replacements or holistic rewriting.

Alternatives

Compare before choosing

Computed 9832,785

K-Dense-AI/scientific-agent-skills

dask

Distributed computing for larger-than-RAM pandas/NumPy workflows. Use when you need to scale existing pandas/NumPy code beyond memory or across clusters. Best for parallel file processing, distributed ML, integration with existing pandas code. For out-of-core analytics on single machine use vaex; for in-memory speed use polars.

Computed 973,255

davepoon/buildwithclaude

youtube-automation

Automate YouTube tasks via Rube MCP (Composio): upload videos, manage playlists, search content, get analytics, and handle comments. Always search tools first for current schemas.

Computed 97148

JasonColapietro/suede-creator-skills

suede-instagram-growth

Suede-owned Instagram growth operating system for account-specific audits, Reels, carousels, Stories, conversion mapping, calendars, and daily candidate-production loops. Use when the user names Instagram, IG, Reels, Stories, asks to analyze recent posts, grow a handle, run a daily workflow, create or repurpose Instagram content, or distinguish views from follows, leads, and sales. NOT FOR: multi-platform organic strategy (use suede-social), full video rendering or editing (use suede-video), pai

Computed 9632,785

K-Dense-AI/scientific-agent-skills

neuropixels-analysis

Analyze Neuropixels extracellular recordings end-to-end with SpikeInterface. Covers loading SpikeGLX/Open Ephys/NWB data, preprocessing, drift/motion correction, Kilosort4 (and CPU) spike sorting, quality metrics, and unit curation (threshold-based, model-based UnitRefine, and AI-assisted visual review). Use when working with Neuropixels 1.0/2.0 recordings, spike sorting, or extracellular electrophysiology analysis.