agentleFS
NVIDIA-NeMoNVIDIA-NeMo/nemo-helix/.agents/skills/data-designer-skill-refresh/SKILL.md

data-designer-skill-refresh

Skill138 starsChanged 21 days agoApache-2.0View on GitHub

Refresh the Data Designer plugin's user-facing skill bundle (`skills/nemo-data-designer-plugin/`) from the upstream NVIDIA-NeMo/DataDesigner repo at the pinned library version, adapting CLI commands and platform-specific guidance to NeMo Helix. Use when upstream ships skill changes that need to land here, when auditing drift, or as a step of `data-designer-version-bump`. For bumping the `data-designer` version itself, use `data-designer-version-bump` instead. Trigger keywords - refresh data designer skill, update data designer skill, vendor data designer skill, sync data designer skill.

The file

We split this skill into the rules it gives an agent

9 rules. About 0 are common, 4 are distinctive, and 5 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈4

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 5

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    After bumping the data-designer==X.Y.Z pin.

    line 27
  2. Distinctive:

    When upstream ships skill changes that should land here.

    line 28
  3. Distinctive:

    When auditing drift between the vendored copy and upstream.

    line 29
  4. Distinctive:

    If upstream adds a file with no platform meaning, do not vendor it.

    line 77
  5. Very specific:

    Prefix CLI invocations: Every shell-shaped invocation of the data-designer binary becomes nemo data-designer ….

    line 81
  6. Very specific:

    Rules section: Keep the bullet pointing at references/platform-execution.md, and the one routing retrieval SDG to …

    line 102
  7. Very specific:

    Write adapted upstream-tracked files to skills/nemo-data-designer-plugin/, mirroring the upstream tree (workflows/, references/, scripts/).

    line 106
  8. Distinctive:

    Every hit must be either absent or an explicit statement that the thing does *not* apply on NeMo Helix.

    line 139
  9. Very specific:

    Don't edit references/preview-review.md beyond CLI prefixing.

    line 150

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Refresh Data Designer Skill

The user-facing skill at skills/nemo-data-designer-plugin/ is derived from the upstream skill bundle at https://github.com/NVIDIA-NeMo/DataDesigner (path skills/data-designer/).

This skill is for plugin contributors. End users do not run it — they get the already-vendored output.

The governing principle

The shipped skill describes NeMo Helix execution only. It is not a copy of the upstream skill with caveats bolted on.

Upstream's skill documents the standalone library, where models come from a local YAML registry, seed data is a file on disk, and persona locales are downloaded to ~/.data-designer/managed-assets/. None of that is true here. Data Designer on NeMo Helix resolves inference through Inference Gateway, seed data through HuggingFace or the Files service, and persona data through system workspace filesets.

Earlier versions of this playbook copied upstream wholesale and tried to teach agents the delta in a separate additions file. That failed: agents followed the standalone-library instructions that were still sitting in the bundle. Do not reintroduce that pattern. When upstream content contradicts platform behavior, replace it, don't annotate it.

When to use

  • After bumping the data-designer==X.Y.Z pin. The data-designer-version-bump skill (.agents/skills/data-designer-version-bump/) runs this as its Step 8.
  • When upstream ships skill changes that should land here.
  • When auditing drift between the vendored copy and upstream.

File ownership

Refreshing is not a whole-tree overwrite. Each file is either tracked from upstream or owned by this plugin:

FileOwnershipOn refresh
SKILL.mdupstreamRe-fetch, then re-apply the adaptations below.
workflows/interactive.mdupstreamRe-fetch, then re-apply the adaptations below.
workflows/autopilot.mdupstreamRe-fetch, then re-apply the adaptations below.
references/preview-review.mdupstreamTake verbatim.
references/seed-datasets.mdpluginDo not overwrite. Review only.
references/person-sampling.mdpluginDo not overwrite. Review only.
references/platform-execution.mdpluginDo not overwrite. Review only.
references/retrieval-sdg.mdpluginNo upstream counterpart.
scripts/get_person_object_schema.pypluginReads the locale's platform fileset, not a local path. Do not overwrite.
skill-card.md, BENCHMARK.md, evals/, skill.oms.sigpluginRelease artifacts. Do not overwrite.

For plugin-owned files, "review only" means: read upstream's version to see whether it documents a new capability worth covering, then write that capability in platform terms yourself. Never paste upstream's text in.

Procedure

Step 1 — Determine the pinned version

grep -E '"data-designer==' plugins/nemo-data-designer/pyproject.toml | head -1

Capture the version string (e.g., X.Y.Z); this is $VERSION for the rest of the procedure.

Step 2 — Fetch the upstream bundle to a temp directory

gh api "repos/NVIDIA-NeMo/DataDesigner/git/trees/v$VERSION?recursive=1" \
  | jq -r '.tree[] | select(.path | startswith("skills/data-designer/")) | select(.type=="blob") | .path'

Fetch each path from https://raw.githubusercontent.com/NVIDIA-NeMo/DataDesigner/v$VERSION/<path> into a scratch directory. Stage it — do not write into skills/nemo-data-designer-plugin/ yet. You are diffing against the shipped bundle, not replacing it.

Step 3 — Diff and triage

Diff each staged upstream file against its shipped counterpart. For every difference, decide:

  • A new or changed capability (new column type, new sampler, new flag) → adopt it, translated to platform terms.
  • Standalone-library mechanics (local paths, ~/.data-designer/, the local model registry, artifact folders on disk) → drop it. It does not apply here.
  • Cosmetic upstream churn → take it if it costs nothing.

If upstream adds a file with no platform meaning, do not vendor it. If upstream deletes a file the plugin still owns, keep the plugin's.

Step 4 — Apply adaptations to upstream-tracked files

Prefix CLI invocations. Every shell-shaped invocation of the data-designer binary becomes nemo data-designer …. Subcommand names, flags, and positional args are otherwise identical. Do not rewrite prose mentions of the project name ("the Data Designer library", "Data Designer columns") — only shell-shaped invocations.

create takes no --dataset-name or --artifact-path. Artifacts live at a Jobs-service-managed path, so there is no local folder to name or relocate. Strip those flags and their values; keep others like --num-records.

Resolve-CLI-command step. Upstream's workflows open by detecting the standalone data-designer binary. Replace with nemo detection:

1. **Resolve CLI command** — Run `command -v nemo 2>/dev/null || (test -x .venv/bin/nemo && realpath .venv/bin/nemo) || echo CLI_NOT_FOUND`.
  - If the output is a path, use it in place of `nemo` in every `nemo …` invocation in this workflow — including commands outside the `data-designer` group, such as `<path> inference providers list`.
  - If the output is `CLI_NOT_FOUND`, STOP and follow the Troubleshooting section in SKILL.md. Do not continue to the next step.

Learn step. Upstream tells the agent to stop when agent context lists no model aliases, and to trust its output generally. Both are wrong here. agent context prints three sections that describe a standalone local install — Model Aliases (a local YAML registry), Persona Datasets (an installed column reflecting local downloads), and Commands (unprefixed data-designer …). Its config_root path and type tables are correct and are the reason to run it at all. Replace the stop-on-no-aliases line with an instruction to read schemas from config_root and ignore those three sections, pointing at references/platform-execution.md.

Clarify / Infer step. Where upstream picks among locally configured aliases, have the agent run nemo inference providers list and choose an Inference Gateway provider instead.

Output Template. Preserve the plugin's template shape:

  • model_configs=[dd.ModelConfig(...)] declared inline in the DataDesignerConfigBuilder(...) constructor, with a comment pointing at nemo inference providers list. Upstream's bare DataDesignerConfigBuilder() produces configs that cannot run here.
  • The commented seed line uses FilesetFileSeedSource, imported from data_designer_nemo.fileset_file_seed_source, not dd.LocalFileSeedSource.
  • The PEP 723 dependency list includes data-designer-nemo for the seed source import.

Rules section. Keep the bullet pointing at references/platform-execution.md, and the one routing retrieval SDG to references/retrieval-sdg.md.

Step 5 — Write the bundle

Write adapted upstream-tracked files to skills/nemo-data-designer-plugin/, mirroring the upstream tree (workflows/, references/, scripts/). Leave plugin-owned files alone unless Step 3 turned up a capability change.

Step 6 — Verify

Resolve every failure before considering the refresh complete.

No untranslated CLI invocations.

SKILLS=skills/nemo-data-designer-plugin
grep -RnE '(\s|`)data-designer\s' "$SKILLS" | grep -v 'nemo data-designer'

Clean run = no output. Prose mentions are fine; CLI-shaped invocations are not.

Every referenced subcommand resolves.

grep -RhoE 'nemo data-designer( [a-z][a-z-]*)+' "$SKILLS" \
  | sort -u \
  | while read -r cmd; do
      eval "$cmd --help" > /dev/null 2>&1 && echo "OK: $cmd" || echo "MISSING: $cmd"
    done

Any MISSING: means upstream changed the command surface or nemo data-designer drifted — investigate before merging. In particular, personas exposes only make-fileset; a personas download reference is always a bug.

No standalone-library guidance leaked back in.

grep -RniE '~/\.data-designer|managed-assets|LocalFileSeedSource|personas download|data-designer config' "$SKILLS"

Every hit must be either absent or an explicit statement that the thing does not apply on NeMo Helix. A hit that reads as instruction is a failure.

Non-obvious claims are checked against the source, not against upstream's docs:

  • Supported seed types: packages/data_designer_nemo/src/data_designer_nemo/seed.py
  • Persona locales and fileset naming: packages/data_designer_nemo/src/data_designer_nemo/nemotron_personas.py
  • CLI surface: plugins/nemo-data-designer/src/nemo_data_designer_plugin/cli/

Notes

  • Upstream may add files under skills/data-designer/. Pick them up via the Step 2 tree enumeration, then triage per Step 3 — enumeration is not adoption.
  • Don't edit references/preview-review.md beyond CLI prefixing; it is genuinely upstream's.
  • scripts/get_person_object_schema.py diverges from upstream on purpose: it reads the locale's system fileset through the plugin's FilesetFileSystem and fails with instructions to run personas make-fileset when that fileset is missing. Upstream's version reads a local download path that never exists here.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.