/lint

Enforce automated linting across JS/TS, Python, Rust, and Go with staged validation.

8|1|Updated Jan 21, 2024
One-click install
npx skills add https://github.com/azigler/dotfiles --skill lint-azigler
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: /lint
Source: https://github.com/azigler/dotfiles/tree/main/agents/skills/lint
Command: npx skills add https://github.com/azigler/dotfiles --skill lint-azigler

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

It prevents inconsistent code quality by documenting and enforcing exactly when linting runs, which rules are safe to auto-fix, and how to handle project gaps without masking real issues.

Core Features & Use Cases

  • Lint on file write: Auto-fixes formatting and safe lint issues per language (Biome for JS/TS/JSON/CSS, Ruff for Python, rustfmt for Rust formatting, gofmt for Go formatting).
  • Commit-time gates: Fast staged-only validation to block bad commits early while pushing heavier checks to task boundaries.
  • Clear guidance for disables: A decision tree for when to inline-disable rules vs updating tool config vs changing code patterns.
  • Diagnostics recipes: Check-only commands to investigate failures without modifying files.

Quick Start

Use the lint policy to apply the correct hook behavior for your language (on-write auto-fix vs staged commit checks vs task-completed heavy validators) and follow the disable decision tree with justification.

Frequently Asked Questions about /lint

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I configure pre-commit hooks for multi-language linting with Ruff and Biome?

Pre-commit linting applies staged-only validation to block bad commits early, using Biome for JS/TS/JSON/CSS, Ruff for Python, and commit-time clippy for Rust to enforce consistent code quality across languages.

What is the best way to separate auto-fix linting from heavy validation checks?

The best approach separates write-time auto-fixes for safe formatting from task-boundary heavy checks, ensuring deterministic validator commands run staged scoping to prevent broken diffs without slowing down active development.

When should I inline-disable a linting rule versus updating the tool configuration?

Use a strict decision tree to determine when to inline-disable rules with rationale comments versus updating tool config or changing code patterns, ensuring project gaps are handled without masking real issues.

Does this linting approach work with Rust and Go continuous integration workflows?

Yes, it applies rustfmt for Rust formatting with commit-time clippy validation, and gofmt for Go formatting with commit-time golangci-lint, integrating deterministic validators into workflows that prevent broken diffs from being committed.

How do I investigate linting failures without modifying my source files?

Use documented diagnostics recipes with check-only commands to investigate linting failures, allowing you to debug and inspect errors without applying auto-fixes or modifying your source files.

Why do staged commit checks fail when I have unstaged changes in the same file?

Staged commit checks fail because staged scoping isolates validation to only the changes being committed, requiring deterministic validator commands that prevent broken diffs from mixing with unstaged modifications in the same file.