Imported from skatromb/transferred (
.claude/skills/wps/SKILL.md). Install upstream withnpx skills add skatromb/transferred --skill wps. Copyright stays with the author.
wemake-python-styleguide
Always write Python code that will pass all rules from the violations index.
Edit existing Python code until make wps reports nothing.
Fix the code, not the config.
Loop
make wps— runsflake8against.flake8, which selectsWPS+E999and nothing else. Lint one file withuv run --project crates/transferred-py --no-sync flake8 <path>.- For each violation, edit the code so its cause is gone — the message names the rule
and line; make the smallest change that satisfies it. When a rule's intent is
unclear, call
explain_violation('WPS###')from thewpsMCP server, or read its page under the violation index. - Re-run step 1. Done when it exits 0.
Guardrails
- Suppress with
# noqa: WPS###(the code, never bare# noqa) only when the user asks, orper-file-ignoresalready covers the line. Otherwise fix the code. - Don't add exceptions to
.flake8unless the user explicitly approves the edit. When one rule fires across many files and fixing each is wrong, propose a config change and wait. - Delete a
# noqa: WPS###onceflake8 --disable-noqashows its code no longer fires. - Ruff owns formatting, imports and the pycodestyle/pyflakes overlap. A WPS fix that ruff
then reformats is fine; a WPS fix that fights
make ruffis the wrong fix.