
Configure Linting
- 57 installs
- 49 repo stars
- Updated August 4, 2026
- laurigates/claude-plugins
Helps with code review & quality tasks.
About
configure-linting is a Claude Code skill for code review & quality. It helps solo builders move faster with AI-assisted development.
- configure-linting
- Code Review & Quality
- AI-coding skill
Configure Linting by the numbers
- 57 all-time installs (skills.sh)
- Ranked #550 of 1,352 Code Review & Quality skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/laurigates/claude-plugins --skill configure-lintingAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 57 |
|---|---|
| repo stars | ★ 49 |
| Last updated | August 4, 2026 |
| Repository | laurigates/claude-plugins ↗ |
What it does
Helps with code review & quality tasks.
Files
/configure:linting
Check and configure linting tools against modern best practices.
When to Use This Skill
| Use this skill when... | Use another approach when... |
|---|---|
| Setting up modern linting (Biome, Ruff, Clippy) | Just running linter (use /lint:check skill) |
| Migrating from ESLint/Prettier to Biome | Linters already properly configured |
| Validating linter configuration | Fixing specific lint errors (run linter and fix) |
| Ensuring language-specific best practices | Simple script with no linting needs |
| Configuring pre-commit lint integration | Debugging linter issues (check linter logs) |
Context
- Project root: !
pwd - Biome config: !
find . -maxdepth 1 -name 'biome.json' -o -name 'biome.jsonc' - Ruff config: !
grep -l 'tool.ruff' pyproject.toml - Clippy config: !
grep -l 'lints.clippy' Cargo.toml - Legacy linters: !
find . -maxdepth 1 \( -name '.eslintrc*' -o -name '.flake8' -o -name '.pylintrc' \) - Package files: !
find . -maxdepth 1 \( -name 'package.json' -o -name 'pyproject.toml' -o -name 'Cargo.toml' \) - Pre-commit config: !
find . -maxdepth 1 -name '.pre-commit-config.yaml' - CI workflows: !
find .github/workflows -maxdepth 1 -name '*.yml'
Parameters
Parse from $ARGUMENTS:
--check-only: Report linting compliance status without modifications--fix: Apply all fixes automatically without prompting--linter <biome|ruff|clippy>: Override auto-detection and force specific linter
Modern linting preferences:
- JavaScript/TypeScript: Biome (unified linter + formatter, fast)
- Python: Ruff (replaces flake8, isort, pyupgrade)
- Rust: Clippy with workspace lints
Execution
Execute this linting configuration check:
Step 1: Detect project language and existing linters
Read the context values above and determine:
| Indicator | Language | Detected Linter |
|---|---|---|
biome.json | JavaScript/TypeScript | Biome |
pyproject.toml [tool.ruff] | Python | Ruff |
.flake8 | Python | Flake8 (legacy) |
Cargo.toml [lints.clippy] | Rust | Clippy |
If --linter flag is set, use that linter regardless of detection.
Step 2: Verify latest tool versions
Use WebSearch or WebFetch to check current versions:
1. Biome: Check biomejs.dev or GitHub releases 2. Ruff: Check docs.astral.sh/ruff or GitHub releases 3. Clippy: Check Rust releases
Step 3: Analyze current linter configuration
For each detected linter, check configuration completeness:
Biome (for JS/TS):
- Config file exists with linter rules
- Formatter configured
- File patterns and ignores set
- Recommended rules enabled
Ruff (for Python):
pyproject.tomlhas[tool.ruff]section- Rules selected (E, F, I, N, etc.)
- Line length and target Python version set
Clippy:
Cargo.tomlhas[lints.clippy]section- Pedantic lints enabled
- Workspace-level lints if applicable
Step 4: Generate compliance report
Print a compliance report covering:
- Config file status (exists / missing)
- Linter enabled status
- Rules configuration (recommended / minimal / missing)
- Formatter integration
- Ignore patterns
- Lint scripts in package.json / Makefile
- Pre-commit hook integration
- CI/CD check integration
End with overall issue count and recommendations.
If --check-only is set, stop here.
Step 5: Configure linting (if --fix or user confirms)
Apply configuration using templates from REFERENCE.md.
For Biome (JS/TS): 1. Install Biome as dev dependency 2. Create biome.json with recommended rules 3. Add npm scripts (lint, lint:fix, format, check)
For Ruff (Python): 1. Install Ruff via uv add --group dev ruff 2. Add [tool.ruff] section to pyproject.toml 3. Configure rules, line length, target version
For Clippy (Rust): 1. Add [lints.clippy] section to Cargo.toml 2. Enable pedantic lints 3. Configure workspace-level lints if applicable
If legacy linters are detected (ESLint, Flake8, etc.), offer migration. See migration guides in REFERENCE.md.
Step 6: Configure pre-commit and CI integration
1. Add linter pre-commit hook to .pre-commit-config.yaml 2. Add linter CI check to GitHub Actions workflow 3. Use templates from REFERENCE.md
Step 7: Update standards tracking
Update .project-standards.yaml:
components:
linting: "2025.1"
linting_tool: "[biome|ruff|clippy]"
linting_pre_commit: true
linting_ci: trueStep 8: Print final compliance report
Print a summary of all changes applied, scripts added, integrations configured, and next steps for the user.
For detailed configuration templates, migration guides, and CI integration patterns, see REFERENCE.md.
Agentic Optimizations
| Context | Command |
|---|---|
| Detect linter config | find . -maxdepth 1 \( -name 'biome.json' -o -name 'ruff.toml' -o -name '.eslintrc*' \) 2>/dev/null |
| Check Biome config | test -f biome.json && jq -c '.linter' biome.json 2>/dev/null |
| Check Ruff in pyproject | grep -A5 '\[tool.ruff\]' pyproject.toml 2>/dev/null |
| List lint scripts | `jq -r '.scripts \ |
| Quick compliance check | /configure:linting --check-only |
| Auto-fix configuration | /configure:linting --fix |
Flags
| Flag | Description |
|---|---|
--check-only | Report status without offering fixes |
--fix | Apply all fixes automatically without prompting |
--linter <linter> | Override linter detection (biome, ruff, clippy) |
Examples
# Check compliance and offer fixes
/configure:linting
# Check only, no modifications
/configure:linting --check-only
# Auto-fix and migrate to Biome
/configure:linting --fix --linter biomeError Handling
- Multiple linters detected: Warn about conflict, suggest migration
- No package manager found: Cannot install linter, error
- Invalid configuration: Report parse error, offer to replace with template
- Missing dependencies: Offer to install required packages
See Also
/configure:formatting- Configure code formatting/configure:pre-commit- Pre-commit hook configuration/configure:all- Run all compliance checks- Biome documentation: https://biomejs.dev
- Ruff documentation: https://docs.astral.sh/ruff
- Clippy documentation: https://doc.rust-lang.org/clippy
Linting Configuration Reference
Detailed configuration templates, migration guides, and integration patterns for linting tools.
Biome Configuration (JavaScript/TypeScript)
Installation
npm install --save-dev @biomejs/biome
# or
bun add --dev @biomejs/biomebiome.json Template
{
"$schema": "https://biomejs.dev/schemas/1.9.4/schema.json",
"vcs": {
"enabled": true,
"clientKind": "git",
"useIgnoreFile": true
},
"files": {
"include": ["src/**/*.ts", "src/**/*.tsx", "src/**/*.js", "src/**/*.jsx"],
"ignore": [
"node_modules",
"dist",
"build",
".next",
"coverage",
"*.config.js",
"*.config.ts"
]
},
"formatter": {
"enabled": true,
"formatWithErrors": false,
"indentStyle": "space",
"indentWidth": 2,
"lineWidth": 100
},
"linter": {
"enabled": true,
"rules": {
"recommended": true,
"suspicious": {
"noExplicitAny": "warn",
"noConsoleLog": "warn"
},
"complexity": {
"noExcessiveCognitiveComplexity": "warn",
"noForEach": "off"
},
"style": {
"useConst": "error",
"useTemplate": "warn"
},
"correctness": {
"noUnusedVariables": "error"
}
}
},
"organizeImports": {
"enabled": true
},
"javascript": {
"formatter": {
"quoteStyle": "single",
"semicolons": "always",
"trailingCommas": "all",
"arrowParentheses": "always"
}
},
"json": {
"formatter": {
"enabled": true
}
}
}npm Scripts
{
"scripts": {
"lint": "biome check .",
"lint:fix": "biome check --write .",
"format": "biome format --write .",
"check": "biome ci ."
}
}Ruff Configuration (Python)
Installation
uv add --group dev ruffpyproject.toml Template
[tool.ruff]
# Target Python version
target-version = "py312"
# Line length
line-length = 100
# Exclude directories
exclude = [
".git",
".venv",
"__pycache__",
"dist",
"build",
"*.egg-info",
]
[tool.ruff.lint]
# Rule selection
select = [
"E", # pycodestyle errors
"F", # pyflakes
"I", # isort
"N", # pep8-naming
"UP", # pyupgrade
"B", # flake8-bugbear
"C4", # flake8-comprehensions
"SIM", # flake8-simplify
"TCH", # flake8-type-checking
"PTH", # flake8-use-pathlib
"RUF", # Ruff-specific rules
]
# Rules to ignore
ignore = [
"E501", # Line too long (handled by formatter)
"B008", # Function call in default argument
]
# Per-file ignores
[tool.ruff.lint.per-file-ignores]
"__init__.py" = ["F401"] # Unused imports
"tests/**/*.py" = ["S101"] # Use of assert
[tool.ruff.lint.isort]
known-first-party = ["your_package"]
force-sort-within-sections = true
[tool.ruff.lint.mccabe]
max-complexity = 10
[tool.ruff.format]
# Formatter options
quote-style = "double"
indent-style = "space"
line-ending = "auto"Clippy Configuration (Rust)
Cargo.toml Template
[lints.clippy]
# Enable pedantic lints
pedantic = { level = "warn", priority = -1 }
# Specific lints to deny
all = "warn"
correctness = "deny"
suspicious = "deny"
complexity = "warn"
perf = "warn"
style = "warn"
# Allow some pedantic lints that are too noisy
module-name-repetitions = "allow"
missing-errors-doc = "allow"
missing-panics-doc = "allow"
# Deny specific dangerous patterns
unwrap-used = "deny"
expect-used = "deny"
panic = "deny"
[lints.rust]
unsafe-code = "deny"
missing-docs = "warn"Workspace Configuration
[workspace.lints.clippy]
pedantic = { level = "warn", priority = -1 }
all = "warn"
[workspace.lints.rust]
unsafe-code = "deny"Run Command
cargo clippy --all-targets --all-features -- -D warningsMigration Guides
Flake8/isort/black to Ruff
1. Install Ruff: uv add --group dev ruff 2. Configure in pyproject.toml (see Ruff template above) 3. Remove old tools: uv remove flake8 isort black pyupgrade 4. Remove old config files: rm .flake8 .isort.cfg 5. Update pre-commit hooks (see below)
ESLint to Biome
1. Install Biome: bun add --dev @biomejs/biome 2. Create biome.json (see template above) 3. Remove ESLint: bun remove eslint @typescript-eslint/parser @typescript-eslint/eslint-plugin 4. Remove config files: rm .eslintrc* .eslintignore 5. Update npm scripts and pre-commit hooks
Pre-commit Integration
Biome
repos:
- repo: https://github.com/biomejs/pre-commit
rev: v2.4.16
hooks:
- id: biome-check
additional_dependencies: ["@biomejs/biome@2.4.16"]Ruff
repos:
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.15.15
hooks:
- id: ruff
args: [--fix]
- id: ruff-formatClippy
repos:
- repo: local
hooks:
- id: clippy
name: clippy
entry: cargo clippy --all-targets --all-features -- -D warnings
language: system
types: [rust]
pass_filenames: falseCI/CD Integration
GitHub Actions - Biome
- name: Run Biome
run: npx @biomejs/biome ci .GitHub Actions - Ruff
- name: Run Ruff
run: |
uv run ruff check .
uv run ruff format --check .GitHub Actions - Clippy
- name: Run Clippy
run: cargo clippy --all-targets --all-features -- -D warningsCompliance Report Template
Linting Configuration Compliance Report
========================================
Project: [name]
Language: [TypeScript | Python | Rust]
Linter: [Biome 1.x | Ruff 0.x | Clippy 1.x]
Configuration:
Config file biome.json [EXISTS | MISSING]
Linter enabled true [ENABLED | DISABLED]
Rules configured recommended + custom [CONFIGURED | MINIMAL]
Formatter integrated biome format [CONFIGURED | SEPARATE]
Ignore patterns node_modules, dist [CONFIGURED | INCOMPLETE]
Rules:
Recommended enabled [ENABLED | DISABLED]
Suspicious enabled [ENABLED | DISABLED]
Complexity enabled [ENABLED | DISABLED]
Performance enabled [ENABLED | N/A]
Style enabled [ENABLED | N/A]
Scripts:
lint command package.json scripts [CONFIGURED | MISSING]
lint:fix package.json scripts [CONFIGURED | MISSING]
Integration:
Pre-commit hook .pre-commit-config.yaml [CONFIGURED | MISSING]
CI/CD check .github/workflows/ [CONFIGURED | MISSING]
Overall: [X issues found]