Skip to content
Machine Learning
Skill

/nemotron-add-pattern

Add a cross-cutting decision pattern under src/nemotron/steps/patterns/. Use when a recurring ML decision (tokenizer lock, eval bookends, LoRA-on-small-data, etc.) must be encoded so other skills can fire it during planning.

BOOST
From plugin
nemotron
2.1k10 skills
Install
$ npx -y skills add nvidia-nemo/nemotron --skill nemotron-add-pattern --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/nemotron-add-pattern

Context preview

The summary Claude sees to decide when to auto-load this skill.

Add a cross-cutting decision pattern under src/nemotron/steps/patterns/. Use when a recurring ML decision (tokenizer lock, eval bookends, LoRA-on-small-data, etc.) must be encoded so other skills can fire it during planning.

SKILL.md

nemotron-add-pattern.SKILL.md
name: nemotron-add-pattern
description: Add a cross-cutting decision pattern under src/nemotron/steps/patterns/. Use when a recurring ML decision (tokenizer lock, eval bookends, LoRA-on-small-data, etc.) must be encoded so other skills can fire it during planning.

nemotron-add-pattern

Invocation: `/nemotron-add-pattern`.

You help contributors add a new cross-cutting pattern to `src/nemotron/steps/patterns/` without getting the frontmatter, scope, catalog regeneration, or tests wrong.

Tone

Concise. Checklist-first. Ask for missing facts before writing files.

  • Status updates: ≤2 lines
  • Prefer bullets over long prose
  • Say exactly which pattern file you will create and which commands you will run
  • Do not guess step ids or confidence level
  • Keep the recommendation actionable, not academic
  • Always regenerate `PATTERNS.md` and run tests

---

Workflow

Four phases. Always in this order.

1. Orient

Read these first:

  • `src/nemotron/steps/patterns/sft-small-dataset-prefer-lora.md`
  • `src/nemotron/steps/PATTERNS.md`
  • `src/nemotron/steps/index.py`
  • `tests/steps/test_patterns.py`

Then ask the contributor: 1. What is the pattern about? (one sentence) 2. When should it apply? (natural-language triggers) 3. Which steps does it touch? (step ids, or `[]` for global) 4. What is the confidence level? (`high`, `medium`, or `experimental`) 5. Does it introduce a new concept or just encode existing tribal knowledge?

Use these repo conventions:

  • Pattern files live at `src/nemotron/steps/patterns/{id}.md`.
  • The filename stem must match the frontmatter `id`.
  • Required frontmatter fields are `id`, `title`, `tags`, `triggers`, `steps`, and `confidence`.
  • `steps: []` is valid for a global pattern.
  • Valid confidence values are `high`, `medium`, and `experimental`.
  • The body uses these sections: `## When to apply`, `## What to do`, `## Exceptions`, `## References`.
  • Step-strategy cross-links in `step.toml` are a separate task. Do not edit them here.

2. Generate

Create:

  • `src/nemotron/steps/patterns/{id}.md`

The pattern file must contain:

  • YAML frontmatter with `id`, `title`, `tags`, `triggers`, `steps`, `confidence`
  • `## When to apply`
  • `## What to do`
  • `## Exceptions`
  • `## References`

Generation rules: 1. Keep the pattern id kebab-case and make it match the filename exactly. 2. Turn vague triggers into 2–4 concrete, observable conditions. 3. Scope the pattern honestly: use explicit step ids if it only applies to a subset of steps; use `[]` only when it is truly global. 4. Put the recommendation itself in `What to do`; keep background explanation shorter than the action guidance. 5. If the pattern introduces a new concept, define it in the first paragraph of `When to apply`. 6. Do not modify existing patterns. 7. Regenerate the catalog with:

  • `uv run python src/nemotron/steps/index.py`

8. Run validations with:

  • `uv run pytest tests/steps -q`

3. Validate

Check all of these before finishing:

  • Frontmatter has all required fields
  • The pattern id matches the filename
  • `steps` contains only valid step ids
  • `confidence` is one of `high`, `medium`, `experimental`
  • `src/nemotron/steps/PATTERNS.md` is updated
  • `uv run pytest tests/steps -q` passes

If validation fails: 1. Fix the real frontmatter, scope, or catalog issue 2. Re-run the failing command 3. Do not present the result until tests pass

4. Summarize

Show:

  • What pattern was created
  • The file added
  • The final scope (`steps` list or global)
  • The confidence level
  • That `PATTERNS.md` was regenerated
  • That `uv run pytest tests/steps -q` passed

---

Boundaries

Do

  • Reuse the live pattern format from `small-dataset-lora.md`
  • Keep triggers concrete
  • Keep advice prescriptive and easy to apply
  • Regenerate `PATTERNS.md`
  • Run tests every time

Don’t

  • Don’t modify existing patterns
  • Don’t modify `step.toml` strategy blocks here
  • Don’t invent step ids
  • Don’t label a new idea `high` confidence without evidence
  • Don’t stop before tests pass

---

When Stuck

  • If the step scope is unclear, look at `src/nemotron/steps/STEPS.md` and ask which ids the contributor actually wants.
  • If the trigger is vague, rewrite it as an observable condition before writing the file.
  • If the concept is still experimental, mark it `experimental` rather than overstating certainty.
  • If the pattern overlaps an existing one, explain the overlap and ask whether this should be a separate pattern.
  • After two failed validation loops, stop and report the exact failing command and error.

---

Calibration Examples

Example 1 — simple high-confidence pattern

User: > Add a pattern saying we should use a consistent random seed across stages.

Assistant: > I’ll confirm whether this is global or limited to a few steps, then I’ll create `src/nemotron/steps/patterns/consistent-random-seed.md` with the required frontmatter and the four body sections. > > I’ll mark it `high` confidence only if the guidance is already established team practice, regenerate `PATTERNS.md` with `uv run python src/nemotron/steps/index.py`, and run `uv run pytest tests/steps -q` before I finish.

Example 2 — experimental step-scoped pattern

User: > Add a pattern for code-generation SFT that uses a higher learning rate.

Assistant: > I’ll confirm the exact step ids and keep the scope narrow, for example `sft/automodel` and `sft/megatron_bridge` if that is what you intend. > > Because this is a newer idea rather than settled guidance, I’ll label it `experimental`, encode the trigger conditions in frontmatter, create the new pattern markdown file, regenerate `PATTERNS.md`, and run `uv run pytest tests/steps -q`.

Read more
Ships withnemotron

Open and efficient models for agentic AI. Training recipes, deployment guides, and use-case examples for the Nemotron family.

Get the whole plugin
Stats
2,137
Stars
433
Forks
Active
Maintenance
Jupyter Notebook
Language
Apache-2.0
License
1d ago
Last commit
1y ago
Created
18h ago
Added

Repo: nvidia-nemo/nemotron

Other skills on nemotron.