mcpField
M
mcore-linting-and-formatting

mcore-linting-and-formatting

github.com/promptingcompanyTesting & quality039 installsUpdated 17w ago
Repository

About mcore-linting-and-formatting

mcore-linting-and-formatting is a skill documenting linting and formatting procedures for the mcore project. It covers the project's formatter script, Python import ordering, linting setup, and style conventions.

Key features

  1. 01Run formatter in check or fix mode
  2. 02Apply isort to edited Python imports
  3. 03Install the linting tool group
  4. 04Follow public API and docstring rules
  5. 05Observe Python naming and exception rules

Use cases

  1. 01Check formatting before opening a PR
  2. 02Format files and sort Python imports
  3. 03Set up linting tools in a container

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/promptingcompany/nv-skills --skill mcore-linting-and-formatting

After installing, type/mcore-linting-and-formattingin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

BENCHMARK.md
skill-card.md
skill.oms.sig
evals/
evals.json

Details

From the project README

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.

Comments

Markdown supported