code-quality-plugin/skills/code-lint/SKILL.md
Universal linter that auto-detects ruff/eslint/clippy/gofmt for the project language. Use when linting code, auto-fixing, formatting, or running pre-commit checks.
npx skillsauth add laurigates/claude-plugins code-lintInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
| Use this skill when... | Use something else instead when... |
|------------------------|------------------------------------|
| Auto-detecting and running the correct linter for a polyglot repo | Detecting structural anti-patterns linters miss → code-antipatterns |
| Running ruff/eslint/clippy/gofmt with optional --fix and --format | Reviewing broader code quality and architecture → code-review |
| Driving a one-shot lint pass before commit | Scanning specifically for swallowed errors → code-hidden-failures --track errors |
| Looking up autofix commands or common fix patterns per language | (use this skill — autofix reference is now here) |
find . -maxdepth 1 \( -name "package.json" -o -name "pyproject.toml" -o -name "setup.py" -o -name "Cargo.toml" -o -name "go.mod" \) -type ffind . -maxdepth 1 -name ".pre-commit-config.yaml" -type f$1: Path to lint (defaults to current directory)$2: --fix flag to automatically fix issues$3: --format flag to also run formatters{{ if PROJECT_TYPE == "python" }} Run Python linters:
uv run ruff check ${1:-.} --output-format=concise ${2:+--fix}uv run ty check ${1:-.} --hide-progressuv run ruff format ${1:-.} ${3:+--check}uv run bandit -r ${1:-.}
{{ endif }}{{ if PROJECT_TYPE == "node" }} Run JavaScript/TypeScript linters:
npm run lint ${1:-.} ${2:+-- --fix}npx prettier ${3:+--write} ${3:---check} ${1:-.}npx tsc --noEmit
{{ endif }}{{ if PROJECT_TYPE == "rust" }} Run Rust linters:
cargo clippy --message-format=short -- -D warningscargo fmt ${3:+} ${3:--- --check}cargo check
{{ endif }}{{ if PROJECT_TYPE == "go" }} Run Go linters:
gofmt ${3:+-w} ${3:+-l} ${1:-.}go vet ./...staticcheck ./... (if available)
{{ endif }}If pre-commit is configured:
pre-commit run --all-files ${2:+--show-diff-on-failure}
For projects with multiple languages:
If no specific linters found:
make lintnpm run lint/deps:install --dev| Language | Linter | Autofix Command |
|----------|--------|-----------------|
| TypeScript/JS | biome | npx @biomejs/biome check --write . |
| TypeScript/JS | biome format | npx @biomejs/biome format --write . |
| Python | ruff | ruff check --fix . |
| Python | ruff format | ruff format . |
| Rust | clippy | cargo clippy --fix --allow-dirty |
| Rust | rustfmt | cargo fmt |
| Go | gofmt | gofmt -w . |
| Go | go mod | go mod tidy |
| Shell | shellcheck | No autofix (manual only) |
Auto-detect project linters and run all appropriate fixers in one command:
bash "${CLAUDE_PLUGIN_ROOT}/skills/code-lint/scripts/detect-and-fix.sh"
bash "${CLAUDE_PLUGIN_ROOT}/skills/code-lint/scripts/detect-and-fix.sh" --check-only
Detects biome, eslint, prettier, ruff, black, clippy, rustfmt, gofmt, golangci-lint, shellcheck. Reports which linters were found and shows modified files.
JavaScript/TypeScript (Biome): unused imports, prefer-const (let x = 5 → const x = 5).
Python (Ruff): import sorting (I001), unused imports (F401), long lines auto-wrapped.
Rust (Clippy): redundant clone, match → if let for single-arm patterns.
Shell (ShellCheck — manual fixes): quote variables ($var → "$var"), use $() instead of backticks.
Stop autofix and use a different approach when:
After linting:
/code:refactor command/git:smartcommittools
Scaffold a new ComfyUI custom-node repo (pyproject, CI, release-please, vitest+pytest, JS extension skeleton) in the picker/gesture vein. Use when bootstrapping or init-ing a comfyui node pack.
tools
Orchestrate a ComfyUI node pack from idea to registry: scaffold, create + seed the repo, open the gitops adoption PR. Use when releasing or spinning up a new comfyui node pack.
testing
macOS EndpointSecurity/EDR high CPU & battery drain. Use when Kandji ESF / XProtect pegs a core; trace the exec storm via powermetrics + eslogger.
development
odiff pixel-by-pixel image diffing. Use when comparing screenshots, detecting visual regressions, diffing before/after PNGs, asserting golden images.