← ClaudeAtlas

polylintlisted

Run the project's own lint stack over a file or directory in three phases - replay the repo's pre-commit hooks, run read-only analyzers in parallel, then propose fixes for approval - and report an honest per-tool status instead of a silent pass. Use whenever code has just been written or edited and needs validation, or when the user asks to lint, check style, or validate a file. Triggers on "lint this", "run lint", "check code style", "validate this file", "rode lint", "valide os lints", "/polylint".
lucas-lima-s/claude-skill-polylint · ★ 0 · Code & Development · score 70
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