From b12320916b51ee1b12dedec113c6bf21764d9d6c Mon Sep 17 00:00:00 2001 From: Evan Follis Date: Sun, 26 Jul 2026 23:54:32 +0000 Subject: [PATCH] Upgrade Ruff with explicit lint policy --- docs/ARCHITECTURE.md | 5 +++++ pyproject.toml | 9 ++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/docs/ARCHITECTURE.md b/docs/ARCHITECTURE.md index c98ac06..6d51a78 100644 --- a/docs/ARCHITECTURE.md +++ b/docs/ARCHITECTURE.md @@ -20,6 +20,11 @@ Two bounded exceptions keep central conformance at `migrating`: The existing AGENTS/CLAUDE instruction surface also needs a fresh ADR-0039 baseline before it can be claimed fully governed. +Ruff is pinned to 0.16.0, while the enforced lint policy is declared explicitly +as `E4`, `E7`, `E9`, and `F`. Ruff 0.16 materially expanded its implicit +defaults; separating the tool version from the selected policy prevents a +dependency update from silently turning on hundreds of unrelated rules. + ## Topology The system is split into three layers: diff --git a/pyproject.toml b/pyproject.toml index 4b73829..d326e61 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -20,9 +20,16 @@ dependencies = [ # for production use stays lean; CI installs `.[test]`. test = [ "pytest>=8", - "ruff==0.12.5", + "ruff==0.16.0", ] +# Ruff 0.16 expanded its implicit defaults from the historical Pyflakes/pycodestyle +# baseline to hundreds of additional rules. Keep the harness policy explicit so +# dependency releases cannot silently redefine the gate; lint-policy expansion is +# reviewed separately from tool maintenance. +[tool.ruff.lint] +select = ["E4", "E7", "E9", "F"] + [project.scripts] skillfoundry = "skillfoundry_harness.cli:main"