mcore-linting-and-formatting — скилл для Claude Code: установка
Скилл настраивает проверку и форматирование кода в проекте Megatron-LM. Помогает исправить ошибки ruff, mypy и отсортировать импорты перед открытием PR.
npx skills add NVIDIA/skills --skill mcore-linting-and-formatting -a claude-codeЧто делает mcore-linting-and-formatting
Скилл задаёт правила оформления кода для репозитория Megatron-LM. Он объясняет запуск скрипта tools/autoformat.sh в режимах проверки с CHECK_ONLY=true и исправления с CHECK_ONLY=false. В цепочку входят утилиты black, isort, pylint, ruff и mypy.
Для подготовки окружения в контейнере используется команда uv sync --locked --only-group linting. При раздельном редактировании файлов импорты упорядочиваются через uv run isort <file1>.py <file2>.py до фиксации изменений.
Правила стиля фиксируют длину строки в 119 символов из pyproject.toml, требуют Google-стиль для docstring и запрещают перехват исключений без указания конкретного типа. Для аннотаций типов публичных функций обязателен синтаксис X | None вместо Optional[X]. Без синхронизации группы linting в контейнере скрипты форматирования не отработают.
Какие задачи решает
- запустить проверку стиля через
tools/autoformat.shперед открытием PR - настроить окружение линтеров командой
uv syncв контейнере - исправить порядок импортов в Python-файлах с помощью
isort - проверить соблюдение длины строки 119 символов и Google-docstrings
Примеры запросов агенту
- Как запустить autoformat.sh в режиме проверки для Megatron-LM?
- Помоги исправить порядок импортов и ошибки ruff перед открытием PR
- Синхронизируй группу linting через uv в контейнере
Как установить mcore-linting-and-formatting
1Через Skills CLI (Vercel)
npx skills add NVIDIA/skills --skill mcore-linting-and-formatting -a claude-code2Вручную: положить файлы
~/.claude/skills/mcore-linting-and-formatting/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/mcore-linting-and-formatting/
1Через Skills CLI (Vercel)
npx skills add NVIDIA/skills --skill mcore-linting-and-formatting -a codex2Вручную: положить файлы
.agents/skills/mcore-linting-and-formatting/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add NVIDIA/skills --skill mcore-linting-and-formatting -a cursor2Вручную: положить файлы
.cursor/skills/mcore-linting-and-formatting/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install NVIDIA/skills mcore-linting-and-formatting2Вручную: положить файлы
.github/skills/mcore-linting-and-formatting/SKILL.md1Через Skills CLI (Vercel)
npx skills add NVIDIA/skills --skill mcore-linting-and-formatting -a gemini-cli2Командой платформы
gemini skills install https://github.com/NVIDIA/skills --path skills/mcore-linting-and-formattingВручную: положить файлы
.devin/skills/mcore-linting-and-formatting/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add NVIDIA/skills --skill mcore-linting-and-formatting -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о mcore-linting-and-formatting
Как установить mcore-linting-and-formatting в Claude Code?
Выполните команду npx skills add NVIDIA/skills --skill mcore-linting-and-formatting -a claude-code.
Что проверяет скилл mcore-linting-and-formatting?
Он проверяет соответствие кода стандартам Megatron-LM через ruff, black, isort, pylint и mypy. Скилл контролирует длину строк до 119 знаков, наличие Google-docstrings и формат типов X | None.
Как установить нужные линтеры в контейнере?
Внутри рабочего контейнера выполните uv sync --locked --only-group linting. Команда установит утилиты, необходимые для tools/autoformat.sh и проверки в CI.
Исходный текст
SKILL.md · Apache-2.0
--- name: mcore-linting-and-formatting description: Linting and formatting for Megatron-LM. Covers running autoformat.sh, tools (ruff, black, isort, pylint, mypy), and code style rules. license: Apache-2.0 when_to_use: Running linting or autoformat; fixing style violations before a PR; 'pre-commit fails', 'ruff error', 'isort', 'mypy', 'style violation', 'how do I format', 'autoformat.sh'. metadata: author: Philip Petrakian <[email protected]> --- # Linting and Formatting --- ## Running the Formatter Run before opening a PR: ```bash # 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: ```bash uv run isort <file1>.py <file2>.py ``` --- ## Setting Up the Linting Group Inside the container: ```bash 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.
© Philip Petrakian · Apache-2.0 · NVIDIA/skills