Agent skill · software engineering · github
ruff-recursive-fix
Run Ruff checks with optional scope and rule overrides, apply safe and unsafe autofixes iteratively, review each change, and resolve remaining findings with targeted edits or user decisions.
Why this skill is useful
Adds a structured workflow for applying Ruff checks and fixes that includes command construction and iterative review, which the AI wouldn't reliably generate on its own.
What it needs
Requires ruff installed locally. About 4k tokens when loaded. Last updated 2026-08-07. 37,534 stars on the source repository.
What this skill does
Ruff Recursive Fix Overview Use this skill to enforce code quality with Ruff in a controlled, iterative workflow. It supports: Optional scope limitation to a specific folder. Default project settings from pyproject.toml. Flexible Ruff invocation (uv, direct ruff, python -m ruff, or equivalent). Optional per-run rule overrides (--select, --ignore, --extend-select, --extend-ignore). Automatic safe then unsafe autofixes. Diff review after each fix pass. Recursive repetition until findings are resolved or require a decision. Judicious use of inline # noqa only when suppression is justified. Inputs Collect these inputs before running: targetpath (optional): folder or file to check. Empty means whole repository. ruffrunner (optional): explicit Ruff command prefix (for example uv run, ruff, python -m ruff, pipx run ruff). rulesselect (optional): comma-separated rule codes to enforce. rulesignore (optional): comma-separated rule codes to ignore. extendselect (optional): extra rules to add without replacing configured defaults. extendignore (optional): extra ignored rules without replacing configured defaults. allowunsafefixes (default: true): whether to run Ruff unsafe fixes. askonambiguity (default: true): always ask the user when multiple valid choices exist. Command Construction Build Ruff commands from inputs. 0. Resolve Ruff Runner Determine a reusable ruffcmd prefix before building commands. Resolution order: 1. If ruffrunner is provided, use it as-is. 2. Else if uv is available and Ruff is managed through uv, use uv run ruff. 3. Else if ruff is available on PATH, use ruff. 4. Else if Python is available and Ruff is installed in that environment, use python -m ruff. 5. Else use any project-specific equivalent that invokes installed Ruff (for example pipx run ruff), or stop and ask the user. Use the same resolved ruffcmd for all check and format commands in the workflow. …
How to use it
Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:
@skills github/ruff-recursive-fix