Agent Skills: Linting and Formatting

Linting and formatting for Megatron-LM. Covers running autoformat.sh,

UncategorizedID: autohandai/community-skills/nvidia-megatron-core-linting-and-formatting

Install this agent skill to your local

pnpm dlx add-skill https://github.com/autohandai/community-skills/tree/HEAD/nvidia-megatron-core-linting-and-formatting

Skill Files

Browse the full folder contents for nvidia-megatron-core-linting-and-formatting.

Download Skill

Loading file tree…

nvidia-megatron-core-linting-and-formatting/SKILL.md

Skill Metadata

Name
nvidia-megatron-core-linting-and-formatting
Description
Linting and formatting for Megatron-LM. Covers running autoformat.sh,

Linting and Formatting


Running the Formatter

Run before opening a PR:

# Check mode (no changes applied)
BASE_REF=main CHECK_ONLY=true SKIP_DOCS=false bash tools/autoformat.sh

# Fix mode
BASE_REF=main CHECK_ONLY=false bash tools/autoformat.sh

Tools invoked: black, isort, pylint, ruff, mypy.


Import Ordering

After editing imports in any Python files, always run uv run isort on those files before committing:

uv run isort <file1>.py <file2>.py

Setting Up the Linting Group

Inside the container:

uv sync --locked --only-group linting

This installs ruff, black, isort, pylint — the same tools used by tools/autoformat.sh and CI's linting job.


Code Style Rules

  • Type hints: required on all public API functions. Use X | None, not Optional[X].
  • Docstrings: Google-style on all public classes and functions.
  • Naming: follow Python conventions — snake_case for functions and variables, PascalCase for classes.
  • Line length: 119 characters (configured in pyproject.toml).
  • No bare except: always catch specific exception types.