Every fresh PR currently fails the run_tests workflow at Check styling / Linting, independent of its content. Main last passed Run tests on 2026-07-16; since then unpinned ruff resolved to 0.16.x, which
- formats Python code fences inside markdown (flags
.claude/skills/add-ssm-model/SKILL.md), and
- expands the effective default lint rules:
ruff check . now reports ~300 findings concentrated in pre-existing files (tests/rl/test_rl_config.py 25, tests/rl/test_assembled_model.py 24, tests/rl/test_rl_simulator.py 20, ssms/support_utils/utils.py ~29, …; top rules I001 ×92, RUF012 ×81, UP006 ×37, RUF100 ×33, UP035 ×19).
PR #316 pins ruff>=0.15.1,<0.16 (both dev listings) so CI reflects PR content again — 0.15.22 passes format+lint cleanly. To migrate: run ruff check . --fix + ruff format . under 0.16, triage the non-autofixable rules (RUF012, BLE001, TRY004, …) or add them to the existing ignore list, then drop the pin. Alternatively pin an explicit select to freeze the rule set against future default changes.
Every fresh PR currently fails the
run_testsworkflow at Check styling / Linting, independent of its content. Main last passedRun testson 2026-07-16; since then unpinnedruffresolved to 0.16.x, which.claude/skills/add-ssm-model/SKILL.md), andruff check .now reports ~300 findings concentrated in pre-existing files (tests/rl/test_rl_config.py25,tests/rl/test_assembled_model.py24,tests/rl/test_rl_simulator.py20,ssms/support_utils/utils.py~29, …; top rules I001 ×92, RUF012 ×81, UP006 ×37, RUF100 ×33, UP035 ×19).PR #316 pins
ruff>=0.15.1,<0.16(both dev listings) so CI reflects PR content again — 0.15.22 passes format+lint cleanly. To migrate: runruff check . --fix+ruff format .under 0.16, triage the non-autofixable rules (RUF012, BLE001, TRY004, …) or add them to the existingignorelist, then drop the pin. Alternatively pin an explicitselectto freeze the rule set against future default changes.