Problem
CI enforces ruff lint/format and mypy, but there's no local hook, so
contributors only learn about violations after pushing (each run ~1-2 min).
Proposed approach
- Add
.pre-commit-config.yaml running ruff check, ruff format --check,
and mypy gcode (local or mirror hooks), plus a dev-dependency entry for
pre-commit.
- Document
pre-commit install in CONTRIBUTING.
Where to look
.github/workflows/ci.yml:30-38 (the checks to mirror)
pyproject.toml:16-25 (dev extras)
Acceptance criteria
pre-commit run --all-files passes on a clean tree.
- CONTRIBUTING mentions the one-line install.
Difficulty
Low — good first issue.
Problem
CI enforces ruff lint/format and mypy, but there's no local hook, so
contributors only learn about violations after pushing (each run ~1-2 min).
Proposed approach
.pre-commit-config.yamlrunningruff check,ruff format --check,and
mypy gcode(local or mirror hooks), plus a dev-dependency entry forpre-commit.pre-commit installin CONTRIBUTING.Where to look
.github/workflows/ci.yml:30-38(the checks to mirror)pyproject.toml:16-25(dev extras)Acceptance criteria
pre-commit run --all-filespasses on a clean tree.Difficulty
Low — good first issue.