Problem
ruff ships in the [dev] extras but nothing runs it — installed-but-unenforced, so findings accumulate silently. Measured today (2026-06-12, default rule set):
| Scope |
Findings |
vera/ |
70 — 29×F401 unused-import, 18×F541 f-string-without-placeholders, 8×E702 multi-statement-semicolon, 8×F841 unused-variable, 3×E402, 2×F811, 1×E721, 1×E741 |
vera/ + scripts/ + tests/ |
178 total (136 auto-fixable) |
Notable in the tail:
- Three scripts define a
skip_langs set that is never used (scripts/check_skill_examples.py:178, scripts/check_readme_examples.py:75, scripts/check_examples_doc.py:75 — only check_spec_examples.py consumes its copy). Dead code that looks load-bearing.
- 5×F821 in
tests/test_codegen_modules.py — string annotations referencing a type imported inside the function body. Harmless at runtime today, but precisely the kind of finding that rots into a real bug.
Plan
ruff check --fix the 136 auto-fixables; manually triage the rest, including deleting the dead skip_langs sets.
- Add
ruff check (default rules) to .pre-commit-config.yaml and the CI lint job.
- Default rules only for now — rule-set expansion (pyupgrade, isort, etc.) is a separate later conversation.
Audit reference: §0.1 and Open Question 1 (enforce the tools you install). Size: S.
Problem
ruffships in the[dev]extras but nothing runs it — installed-but-unenforced, so findings accumulate silently. Measured today (2026-06-12, default rule set):vera/vera/+scripts/+tests/Notable in the tail:
skip_langsset that is never used (scripts/check_skill_examples.py:178,scripts/check_readme_examples.py:75,scripts/check_examples_doc.py:75— onlycheck_spec_examples.pyconsumes its copy). Dead code that looks load-bearing.tests/test_codegen_modules.py— string annotations referencing a type imported inside the function body. Harmless at runtime today, but precisely the kind of finding that rots into a real bug.Plan
ruff check --fixthe 136 auto-fixables; manually triage the rest, including deleting the deadskip_langssets.ruff check(default rules) to.pre-commit-config.yamland the CI lint job.Audit reference: §0.1 and Open Question 1 (enforce the tools you install). Size: S.