Files
gh-zeff01-zeff-claude-setup/commands/misc/lint.md
2025-11-30 09:08:22 +08:00

3.6 KiB

description, model
description model
Run linting and fix code quality issues claude-sonnet-4-5

Run linting and fix code quality issues in the codebase.

Target

$ARGUMENTS

Lint Strategy for Solo Developers

1. Run Linting Commands

# ESLint (JavaScript/TypeScript)
npm run lint
npx eslint . --fix

# TypeScript Compiler
npx tsc --noEmit

# Prettier (formatting)
npx prettier --write .

# All together
npm run lint && npx tsc --noEmit && npx prettier --write .

2. Common ESLint Issues

TypeScript Errors

  • Missing type annotations
  • any types used
  • Unused variables
  • Missing return types

React/Next.js Issues

  • Missing keys in lists
  • Unsafe useEffect dependencies
  • Unescaped entities in JSX
  • Missing alt text on images

Code Quality

  • Unused imports
  • Console.log statements
  • Debugger statements
  • TODO comments

Best Practices

  • No var, use const/let
  • Prefer const over let
  • No nested ternaries
  • Consistent return statements

3. Auto-Fix What You Can

Safe Auto-Fixes

# Fix formatting
prettier --write .

# Fix ESLint auto-fixable rules
eslint --fix .

# Fix import order
eslint --fix --rule 'import/order: error' .

Manual Fixes Needed

  • Type annotations
  • Logic errors
  • Missing error handling
  • Accessibility issues

4. Lint Configuration

ESLint Config (.eslintrc.json)

{
  "extends": [
    "next/core-web-vitals",
    "plugin:@typescript-eslint/recommended"
  ],
  "rules": {
    "@typescript-eslint/no-explicit-any": "error",
    "@typescript-eslint/no-unused-vars": "error",
    "no-console": "warn"
  }
}

Prettier Config (.prettierrc)

{
  "semi": false,
  "singleQuote": true,
  "tabWidth": 2,
  "trailingComma": "es5"
}

5. Priority Fixes

High Priority (fix immediately)

  • Type errors blocking build
  • Security vulnerabilities
  • Runtime errors
  • Broken accessibility

Medium Priority (fix before commit)

  • Missing type annotations
  • Unused variables
  • Code style violations
  • TODO comments

Low Priority (fix when convenient)

  • Formatting inconsistencies
  • Comment improvements
  • Minor refactoring opportunities

Install Husky + lint-staged

npm install -D husky lint-staged
npx husky init

Configure (.husky/pre-commit)

npx lint-staged

lint-staged config (package.json)

{
  "lint-staged": {
    "*.{js,jsx,ts,tsx}": [
      "eslint --fix",
      "prettier --write"
    ]
  }
}

7. VSCode Integration

Settings (.vscode/settings.json)

{
  "editor.formatOnSave": true,
  "editor.codeActionsOnSave": {
    "source.fixAll.eslint": true
  },
  "typescript.tsdk": "node_modules/typescript/lib"
}

What to Generate

  1. Lint Report - All issues found
  2. Auto-Fix Results - What was automatically fixed
  3. Manual Fix Suggestions - Issues requiring manual intervention
  4. Priority List - Ordered by severity
  5. Configuration Recommendations - Improve lint setup

Common Fixes

Remove Unused Imports

// Before
import { A, B, C } from 'lib'

// After
import { A, C } from 'lib'  // B was unused

Add Type Annotations

// Before
function process(data) {
  return data.map(x => x.value)
}

// After
function process(data: DataItem[]): number[] {
  return data.map(x => x.value)
}

Fix Missing Keys

// Before
{items.map(item => <div>{item.name}</div>)}

// After
{items.map(item => <div key={item.id}>{item.name}</div>)}

Focus on fixes that improve code quality and prevent bugs. Run linting before every commit.