# Verify

> Verify a NeMo Speech change or pull request before commit, push, or review by checking the complete diff, formatting, tests, documentation, and DCO sign-offs. Use when asked to verify changes, prepare a commit or PR, or review a PR's validation and coverage.

- Skill: `nvidia-nemo/verify` (Agent Skill)
- Install (CLI): `npx skillmds@latest add nvidia-nemo/verify`
- Raw SKILL.md: https://api.skillmd.com/api/skills/nvidia-nemo/verify/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: NVIDIA NeMo (https://skillmd.com/u/nvidia-nemo)
- Updated: 2026-09-10
- Page: https://skillmd.com/skills/nvidia-nemo/verify

---


Verify the current change proportionally to its risk. Do not report success for checks that were not run.

1. **Establish the complete scope.** Inspect committed, staged, unstaged, and untracked changes:

   ```bash
   git status --short
   git diff --name-only origin/main...HEAD
   git diff --name-only
   git diff --cached --name-only
   ```

   Replace `origin/main` if the PR targets another branch. Read the full diff and any applicable nested `AGENTS.md` or `CLAUDE.md` files.

2. **Review tests and documentation.** Before running commands, determine whether the change is adequately covered:

   - Require a regression test for a bug fix and focused unit tests for new or changed behavior, including important edge cases. If no test is appropriate, require a concrete explanation.
   - Check whether changes to public APIs, configuration, CLI behavior, examples, or user workflows are reflected in the relevant documentation. If no documentation update is needed, record why.

3. **Run repository checks.** For staged changes, run:

   ```bash
   pre-commit run
   ```

   For committed branch changes, run `pre-commit run --from-ref origin/main --to-ref HEAD`. If pre-commit is unavailable, use `uvx pre-commit` for the same command. Review and stage hook fixes, then rerun until clean. Also run `git diff --check`.

4. **Run the smallest relevant tests.** Prefer focused test files or test names while iterating, then expand to the affected collection when practical:

   - `nemo/collections/asr/` → `uv run pytest tests/collections/asr -m "not pleasefixme"`
   - `nemo/collections/tts/` → `uv run pytest tests/collections/tts -m "not pleasefixme"`
   - `nemo/collections/audio/` → `uv run pytest tests/collections/audio -m "not pleasefixme"`
   - `nemo/collections/speechlm2/` → `uv run pytest tests/collections/speechlm2 -m "not pleasefixme"`
   - `nemo/collections/common/` → `uv run pytest tests/collections/common -m "not pleasefixme"`
   - `nemo/core/` → `uv run pytest tests/core -m "not pleasefixme"`

   Add `--with_downloads` only for tests marked as requiring model downloads. Use `--cpu` when supported and a GPU is unavailable. If documentation changed, install its dependencies with `uv sync --locked --group docs` and build it with `uv run make -C docs html`.

5. **Verify commit sign-offs.** Every commit in the PR must have a DCO `Signed-off-by` trailer:

   ```bash
   git log --format='%h %s%n%(trailers:key=Signed-off-by)' origin/main..HEAD
   ```

   Create commits with `git commit -s`. Add a missing trailer to your own latest commit with `git commit --amend --no-edit -s`; do not rewrite other contributors' commits without authorization.

6. **Report results.** Summarize the reviewed diff, test-coverage and documentation conclusions, exact commands and outcomes, commit sign-off status, and any skipped checks with reasons. For failures, include the relevant error and a concrete next step.

