Help us improve
Share bugs, ideas, or general feedback.
From nemotron-customize
Builds runnable Nemotron model-customization pipelines from existing repo steps and artifact contracts. Plans step DAGs, validates wiring, and generates YAML configs.
npx claudepluginhub nvidia-nemo/nemotron --plugin nemotron-customizeHow this skill is triggered — by the user, by Claude, or both
Slash command
/nemotron-customize:nemotron-customizeThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Use this skill to turn a model-customization request into a repo-native Nemotron step pipeline. It plans the step DAG, validates artifact wiring, and creates only the YAML configs needed to run existing steps.
evals/evals.jsonreferences/act/PROJECT.mdreferences/act/STAGE.mdreferences/context/README.mdreferences/context/automodel-launcher-executor-modes.txtreferences/context/automodel-pretrain.txtreferences/context/automodel-sft-peft-core.txtreferences/context/byob-benchmark-curator-translation.txtreferences/context/checkpoint-conversion.txtreferences/context/curator-data-acquisition.txtreferences/context/curator-processing-language-quality.txtreferences/context/curator-translation-faith.txtreferences/context/data-designer-sdg.txtreferences/context/eval-deploy-formats.txtreferences/context/eval-sovereign-benchmarks.txtreferences/context/eval-standard-nlu.txtreferences/context/index.tomlreferences/context/mbridge-parallelism-performance.txtreferences/context/mbridge-pretrain.txtreferences/context/mbridge-sft.txtTrains task-specific small language models (SLMs) via the Distil Labs CLI, supporting knowledge distillation, data preparation, fine-tuning, evaluation, and deployment.
Generates validated, runnable implementation plans for ML pipelines, architecture designs, and multi-step projects grounded in official framework documentation.
Routes user intent to the correct MindSpeed-MM skill based on model type (VLM, generative, omni, audio, post-training). Provides an overview of the end-to-end multimodal training pipeline for Huawei Ascend NPU.
Share bugs, ideas, or general feedback.
Use this skill to turn a model-customization request into a repo-native Nemotron step pipeline. It plans the step DAG, validates artifact wiring, and creates only the YAML configs needed to run existing steps.
Use it only for inspecting, configuring, validating, running, or submitting existing Nemotron steps or multi-step training/customization pipelines. If the request is a frontend, dashboard, visualization, generic ML-advice, billing/access, or unrelated coding task, stop with a short scope note and do not inspect the step catalog or edit files in that turn.
src/nemotron/steps/ available.src/nemotron/steps/STEPS.md, skills/nemotron-customize/references/act/STAGE.md). Resolve them against the user's current working directory, which must be the Nemotron checkout root.Invocation: /nemotron-customize.
You compose steps from src/nemotron/steps/ into repo-native runnable configs. The current codebase is the source of truth. This skill orchestrates — it does not duplicate per-step knowledge.
Priority order:
When you need to know what a step does, read its step.toml and README.md.
When you need to know whether a chain is sound, read the patterns it cites.
When you need to configure a stage, read step.py + the runner + existing
configs to learn the supported YAML shape. Read context packs only if new code
is unavoidable.
For a command request, the fast path is: verify repo root, run or read the step
catalog, read the selected step.toml, verify the requested config exists,
read the active env TOML for any remote profile, then emit the complete command.
Do not guess --batch profiles from examples or naming conventions.
| Question | Look here |
|---|---|
| What does step X consume / produce / parameterize? | src/nemotron/steps/<cat>/<X>/step.toml |
| When/why pick step X over its siblings? | src/nemotron/steps/<cat>/<X>/README.md |
| Which step in category C should I pick? | src/nemotron/steps/<cat>/README.md |
| What runner code does step X use? | src/nemotron/steps/<cat>/<X>/step.py → _runners/ |
| Cross-step constraint (tokenizer lock, sequence packing, data quality, ...) | src/nemotron/steps/patterns/<id>.md |
Artifact compatibility / is_a hierarchy | src/nemotron/steps/types.toml |
| GPU memory / parallelism heuristics | src/nemotron/steps/hardware.md |
| Library API extracts for exceptional code generation | references/context/index.toml → references/context/<pack>.txt |
| Project scaffold rules, only when repo code cannot support the request | references/act/PROJECT.md |
| Per-stage code rules, only when repo code cannot support the request | references/act/STAGE.md |
If two sources say the same thing, the deeper, more specific one wins
(step.toml > category README.md > this file).
Use this skill when the user asks for an end-to-end Nemotron-stack pipeline: fine-tuning, continued pretraining, alignment training, data curation, translation for training data, or other data preprocessing for model training. Follow the workflow below in order:
Do not treat this skill as general ML advice. The step library under src/nemotron/steps/ is the source of truth.
For single-step command questions, use this shorter flow instead of the full pipeline workflow:
pyproject.toml and src/nemotron/steps/.uv run nemotron steps list --json when available; otherwise read
STEPS.md.step.toml and the requested checked-in config.NEMOTRON_ENV_FILE or a repo-root env*.toml
and choose an actual section name whose profile matches the step.For translation-only command requests, also read
src/nemotron/steps/translate/README.md
and return Decision, Config, Run, Output, and Env. Do not continue
broad repository exploration once those fields are execution-ready.
Source tiers for command answers:
Canonical commands:
uv run nemotron steps run <step_id> -c <config-or-path> --dry-run
uv run nemotron steps run <step_id> -c <config-or-path> --dry-run --batch <profile>
uv run nemotron steps run <step_id> -c <config-or-path> --batch <profile>
Four phases, in order: Orient → Plan → Act → Verify. Never skip Verify.
Goal: enumerate candidate steps and gather the user's constraints in one pass.
Step 1.1 — Discover via the CLI, not by grep. The catalog is machine-readable:
nemotron steps list --json # all steps
nemotron steps list --json --category sft # by category
nemotron steps list --json --consumes training_jsonl # by input type
nemotron steps list --json --produces checkpoint_megatron # by output type
nemotron steps show <step_id> # full manifest
Step 1.2 — Read these in parallel (small files, all cheap):
is_a hierarchy).Step 1.3 — For each candidate category, descend one level:
src/nemotron/steps/<cat>/README.md — when a category has multiple options
(sft/,
pretrain/,
peft/,
rl/nemo_rl/).Step 1.4 — For each candidate step, read its step.toml end-to-end.
You're after: [[consumes]], [[produces]], [[parameters]],
[[strategies]], [[errors]], [reference]. Don't read step.py yet —
that's Act.
Step 1.5 — Match patterns. Skim src/nemotron/steps/patterns/*.md
frontmatter (triggers: field). Note matching pattern IDs for the plan.
Step 1.6 — Ask the user any of the following that aren't already known.
Present as a numbered list, replies as numbers or Enter for [defaults]:
[Nano3] / Super3 / other (HF id)8x H100, 1 node)[nemo-run] / plain Python[off] / on (project name?)[./<project-name>/] / current dirNever assume hardware, data availability, or framework. Ask.
Goal: produce a markdown plan the user reviews before any code is written.
Step 2.1 — Draft the stage DAG. One stage per step. Number stages
NN_<name>. Use a Mermaid graph for the artifact flow.
Step 2.2 — For each stage, list:
sft/megatron_bridge).consumes from <stage NN | user>.produces.when: clauses from step.toml that match).src/nemotron/steps/patterns/).Step 2.3 — Run preflight validation. Hard checks: artifact types chain via types.toml; tokenizer/template/sequence length align across prep and train; RL warm-starts from SFT; GPU count satisfies the selected model; applicable patterns are cited. When a check fails: surface it as a WARNING: warning in the plan and propose a
fix. When the user can't satisfy it (e.g. hardware), propose alternatives in
descending preference: smaller model → AutoModel instead of Megatron-Bridge →
LoRA instead of full FT.
Step 2.4 — Plan format. Include Intent, Stages, Validation, and Infrastructure. Use a Mermaid graph for artifact flow, one short stage block per step, and explicit PASS: / WARNING: validation lines.
Step 2.5 — Present the plan and wait. Don't proceed to Act until the user approves or requests changes. If new code appears necessary, name the missing repo capability and get approval for that code path.
Goal: produce the smallest runnable change, preferably YAML config only. No placeholders. No TODOs.
Step 3.1 — Prefer the existing repo execution path.
Before creating any code, identify how the existing repo can run each stage:
src/nemotron/steps/<cat>/<step>/step.py.Step 3.2 — Generate only YAML configs when the repo supports the request.
<project-name>/
├── configs/
│ └── <stage-name>.yaml # user-specific config for an existing step
└── README.md # optional: only if the user asks for run docs
Naming: <project-name> is kebab-case. YAML filenames should match approved
stage names.
Each YAML config must:
step.py and runner code.Step 3.3 — Only use codegen when YAML cannot satisfy the request.
If the repo lacks a callable step, runner, CLI, or config surface for the requested behavior, load codegen rules:
Then implement the missing stage with the narrowest possible code change:
You are implementing stage <NN>_<name> = <step_id>.
Load:
- skills/nemotron-customize/references/act/STAGE.md
- <context_pack_path> # from context/index.toml; OPTIONAL — skip if not mapped
- src/nemotron/steps/<cat>/<step>/step.py # primary code shape
- src/nemotron/steps/_runners/<runner>.py # if step.py imports a shared runner
Plan inputs:
- Model: <model>
- Hardware: <gpus>
- Key params: <from approved plan>
Output path: <project_name>/stages/<NN>_<name>/
Deliverables (exactly these):
- run.py
- __init__.py
- config/default.yaml
- config/tiny.yaml, or the step's checked-in smoke config name such as config/tiny_chat.yaml for eval/model_eval
Report back: files written, knobs exposed, UPSTREAM notes, strategies followed.
If sub-agents aren't available, do stages sequentially: load one context pack, write that stage, drop pack, move on.
Step 3.4 — Step.py + the runner are the reference. Don't invent YAML keys or library APIs from memory. Mirror what the in-repo code does:
When a step has no context pack, the agent combines: per-step SKILL.md + step.toml [[strategies]] + step.py + the URLs in [reference]. That is enough.
Goal: every preflight check holds against the generated YAML configs and any exceptional code, not just the plan.
Run through:
*.yaml is valid; keys match the existing step/runner code.${art:...} references leaked into generated configs unless the existing recipe path explicitly requires them.If verification finds issues, fix them silently. Don't say "I noticed an issue."
tiny.yaml or eval/model_eval's tiny_chat.yaml are for wiring tests, not model-quality evidence.step.toml strategy points to unavailable upstream docs, use its then: text and mark the plan for manual review.${art:...} only in recipe-backed configs; standalone YAML should use plain paths.bin/idx data and blend.json from the same Nemotron release.uv run nemotron steps run <step_id> -c <config> --dry-run command.Fast path. Levels 0 → 2 in Orient, then Plan → Act.
STEPS.md → category/README.md → step.toml → step.py → adapt YAML config
Use whenever the user's request maps to a step in the catalog.
step.toml [reference] URLs.step.py as a template.Tell the user: "This use case doesn't have a pre-built step. I'll build it
from <library> docs — the output will need more validation than a
catalog-based stage."
If the same Explorer build keeps appearing across projects, suggest the user
contribute it as a new catalog step under src/nemotron/steps/.
| User says | Mode |
|---|---|
| "SFT with Megatron-Bridge / AutoModel" | Catalog |
| "DPO / RLVR / GRPO / RLHF" | Catalog (rl/nemo_rl/*) |
| "Synthesize preference / SFT data" | Catalog (sdg/data_designer) |
| "Translate EN → <lang> for training data" | Catalog (translate/nemo_curator) |
| "Curate web text" | Catalog (curate/nemo_curator) |
| "Train with X exotic backend" | Explorer or ask |
| Post-training-only request | Out of scope for this skill; ask the user to use a more appropriate workflow. |
| Ambiguous | Ask |
default.yaml).skill: pointers when perf-tuning.hardware.md and [[strategies]] advise.CONTRIBUTING.md.README.md instead.| Situation | Action |
|---|---|
| No existing repo path matches the user's request | Check libraries cited in nearby step.toml [reference]. If supported, use Explorer mode. Otherwise ask. |
| Artifact types won't chain | Explain the gap and ask the user whether to change the training/data-prep plan. Do not add post-training work here. |
| Strategy points to a missing skill file | Skip the load. Use the then: text as guidance. Note in plan: "WARNING: Could not read perf-tuning docs for <topic> — config may need manual review." |
| User's hardware is too small | Show the relevant [[models]] min_gpus table. Suggest in order: smaller model → AutoModel → LoRA. |
| Two failed Act attempts | Stop. Explain what was tried, what failed, ask the user how to proceed. |
| User wants a feature that crosses 3+ projects | Confirm YAML and existing repo code cannot serve it. If not, build it Explorer-mode for them now, then suggest contributing it as a new step under src/nemotron/steps/. |
| Symptom | Action |
|---|---|
| Artifact types do not chain | Recheck types.toml and change the DAG before writing configs |
| Remote profile is unclear | Read the active env TOML; do not guess --batch |
| Config key is unclear | Read the step config, step.py, and shared runner before editing |