mcpField
C
configure-linting

configure-linting

github.com/laurigatesTesting & quality5957 installsUpdated 1d ago
Repository

About configure-linting

A coding-agent skill for checking and configuring linting in JavaScript/TypeScript, Python, and Rust projects. It reports configuration gaps and can set up linters and CI integrations.

Key features

  1. 01Detects languages and existing linters
  2. 02Checks rules, formatting, and ignore settings
  3. 03Produces compliance reports and recommendations
  4. 04Configures linters and npm scripts
  5. 05Sets up pre-commit and CI checks
  6. 06Supports check-only, auto-fix, and linter selection

Use cases

  1. 01Set up linting in a new project
  2. 02Migrate from ESLint or Flake8
  3. 03Review formatter, pre-commit, and CI integration

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/laurigates/claude-plugins --skill configure-linting

After installing, type/configure-lintingin Claude Code to confirm it loaded.

Bundled filesREFERENCE.md

Details

From the project README

/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 BiomeLinters already properly configured
Validating linter configurationFixing specific lint errors (run linter and fix)
Ensuring language-specific best practicesSimple script with no linting needs
Configuring pre-commit lint integrationDebugging 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:

IndicatorLanguageDetected Linter
biome.jsonJavaScript/TypeScriptBiome
pyproject.toml [tool.ruff]PythonRuff
.flake8PythonFlake8 (legacy)
Cargo.toml [lints.clippy]RustClippy

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.toml has [tool.ruff] section
  • Rules selected (E, F, I, N, etc.)
  • Line length and target Python version set

Clippy:

  • Cargo.toml has [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: true
Step 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

ContextCommand
Detect linter configfind . -maxdepth 1 \( -name 'biome.json' -o -name 'ruff.toml' -o -name '.eslintrc*' \) 2>/dev/null
Check Biome configtest -f biome.json && jq -c '.linter' biome.json 2>/dev/null
Check Ruff in pyprojectgrep -A5 '\[tool.ruff\]' pyproject.toml 2>/dev/null
List lint scriptsjq -r '.scripts | to_entries[] | select(.key | contains("lint")) | "\\(.key): \\(.value)"' package.json 2>/dev/null
Quick compliance check/configure:linting --check-only
Auto-fix configuration/configure:linting --fix

Flags

FlagDescription
--check-onlyReport status without offering fixes
--fixApply 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 biome

Error 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

Comments

Markdown supported