polylintlisted
Install: claude install-skill lucas-lima-s/claude-skill-polylint
# polylint - honest three-phase lint runner
## What it does
A single invocation runs three phases in a fixed order, each with a
different permission model:
| Phase | What it does | Permission |
|---|---|---|
| **1 - Pre-commit replay** | Runs the target repository's own `.pre-commit-config.yaml` against the target. Hooks can and will mutate files (formatters, `--fix` variants, whitespace fixers). | **No permission needed - always runs.** The user already authorized these hooks the moment they were checked into the repository's own config. |
| **2 - Read-only analysis** | Every enabled analyzer (ruff, pylint, mypy, vulture, bandit, and any opt-in tool) runs in parallel, read-only. Reports findings only, never mutates. | **No permission needed - always runs.** |
| **3 - Approval-gated recommendations** | Claude enumerates the leftover findings from Phase 2 and asks which items to apply. Scope is semantic/structural changes: manual refactors, `--fix` on rules the pre-commit hooks didn't cover, `noqa`/`# type: ignore` suppressions, config adjustments. | **Ask per item (or per numbered group). Never apply silently, never in bulk without a per-item choice.** |
The permission split is the point: a hook the team already committed to the
repository has already been authorized by the act of committing it, so
replaying it needs no fresh confirmation. A Phase 3 recommendation has not
been authorized by anyone yet, so it always waits for an explicit answer.
## When to use / when not