Claude Code Plugins

Community-maintained marketplace

Feedback

.claude/skills/linting-formatting-automation/SKILL.md

@mattnigh/skills_collection
0
0

|

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name .claude/skills/linting-formatting-automation/SKILL.md
description コード品質とフォーマット自動化の専門スキル。 ESLint、Prettier、Biome、Stylelintなどのリンターとフォーマッターのセットアップ、 設定、CI/CD統合、pre-commitフック構築、エディタ統合を提供します。 📚 リソース参照: このスキルには以下のリソースが含まれています。 必要に応じて該当するリソースを参照してください: - `.claude/skills/linting-formatting-automation/resources/eslint-config-guide.md`: ESLint設定ガイド(ルール選択、プラグイン統合、カスタムルール) - `.claude/skills/linting-formatting-automation/resources/prettier-biome-comparison.md`: Prettier vs Biome 比較(パフォーマンス、機能、移行戦略) - `.claude/skills/linting-formatting-automation/resources/pre-commit-hook-setup.md`: pre-commitフックセットアップ(husky、lint-staged統合) - `.claude/skills/linting-formatting-automation/resources/ci-cd-integration.md`: CI/CD統合ガイド(GitHub Actions、GitLab CI) - `.claude/skills/linting-formatting-automation/scripts/setup-linter.sh`: リンター自動セットアップスクリプト - `.claude/skills/linting-formatting-automation/templates/eslintrc-template.json`: ESLint設定テンプレート - `.claude/skills/linting-formatting-automation/templates/prettier-config-template.json`: Prettier設定テンプレート - `.claude/skills/linting-formatting-automation/templates/biome-config-template.json`: Biome設定テンプレート 使用タイミング: - 新規プロジェクトのリンター/フォーマッター初期設定時 - 既存プロジェクトのコード品質改善時 - CI/CDパイプラインへのリント追加時 - pre-commitフック構築時 - ESLint → Biomeなどのツール移行時 関連スキル: - `.claude/skills/prettier-integration/SKILL.md` - Prettier詳細統合 - `.claude/skills/code-quality/SKILL.md` - コード品質基準と評価 - `.claude/skills/github-actions-workflows/SKILL.md` - GitHub Actions CI/CD Use proactively when setting up linting/formatting tools, integrating code quality checks into CI/CD, or configuring pre-commit hooks for consistent code style enforcement.
version 1.0.0

リンティング・フォーマット自動化スキル

概要

このスキルは、コード品質を自動的に維持するためのリンティングツールと フォーマッターの設定・統合に関する知識を提供します。 一貫したコードスタイルとエラー防止を実現します。

主要な価値:

  • 一貫したコードスタイルの自動維持
  • 潜在的なバグの早期発見
  • コードレビューの効率化(スタイル議論の削減)

対象ユーザー:

  • .claude/agents/code-quality.mdエージェント
  • フロントエンド開発者
  • バックエンド開発者
  • DevOpsエンジニア

いつ使うか

シナリオ 1: 新規プロジェクトセットアップ

状況: 新しいプロジェクトでコード品質ツールを設定する

適用条件:

  • プロジェクトの言語/フレームワークが決定している
  • チームのコードスタイルガイドがある(またはデフォルト使用)
  • パッケージマネージャーが利用可能

期待される成果: 一貫したリンティング/フォーマット環境

シナリオ 2: CI/CD統合

状況: プルリクエスト時に自動でコード品質をチェックしたい

適用条件:

  • CI/CDプラットフォームが利用可能
  • リンターの設定が完了している
  • テストとの統合方針が決定している

期待される成果: 自動化されたコード品質ゲート

シナリオ 3: ツール移行

状況: ESLint + Prettier から Biome に移行する等

適用条件:

  • 移行理由が明確(パフォーマンス、設定簡素化等)
  • 既存ルールの移行計画がある
  • チームの合意が取れている

期待される成果: スムーズなツール移行と設定継承

主要ツール比較

JavaScript/TypeScript

ツール 用途 特徴
ESLint リンティング 最も成熟、豊富なプラグイン
Prettier フォーマッティング オピニオネイテッド、設定少
Biome 両方 高速、Rust製、設定簡素

推奨組み合わせ

シンプル志向:
  - Biome (リンティング + フォーマッティング)
  - メリット: 設定が少ない、高速
  - デメリット: ESLintほどのプラグインエコシステムがない

成熟志向:
  - ESLint + Prettier
  - メリット: 豊富なプラグイン、カスタマイズ性
  - デメリット: 設定が複雑になりがち

セットアップガイド

ESLint + Prettier (TypeScript)

# パッケージインストール
pnpm add -D eslint prettier eslint-config-prettier \
  @typescript-eslint/parser @typescript-eslint/eslint-plugin

# 設定ファイル作成
touch eslint.config.js .prettierrc

eslint.config.js (Flat Config):

import tseslint from "@typescript-eslint/eslint-plugin";
import tsparser from "@typescript-eslint/parser";
import prettier from "eslint-config-prettier";

export default [
  {
    files: ["**/*.ts", "**/*.tsx"],
    languageOptions: {
      parser: tsparser,
      parserOptions: {
        project: "./tsconfig.json",
      },
    },
    plugins: {
      "@typescript-eslint": tseslint,
    },
    rules: {
      ...tseslint.configs.recommended.rules,
      "@typescript-eslint/no-unused-vars": "error",
      "@typescript-eslint/explicit-function-return-type": "warn",
    },
  },
  prettier,
];

.prettierrc:

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

Biome (オールインワン)

# インストール
pnpm add -D @biomejs/biome

# 初期化
pnpm biome init

biome.json:

{
  "$schema": "https://biomejs.dev/schemas/1.9.0/schema.json",
  "organizeImports": {
    "enabled": true
  },
  "linter": {
    "enabled": true,
    "rules": {
      "recommended": true,
      "style": {
        "useConst": "error",
        "noVar": "error"
      }
    }
  },
  "formatter": {
    "enabled": true,
    "indentStyle": "space",
    "indentWidth": 2,
    "lineWidth": 100
  }
}

Pre-commitフック設定

Husky + lint-staged

# インストール
pnpm add -D husky lint-staged

# Husky初期化
pnpm exec husky init

# pre-commitフック作成
echo "pnpm lint-staged" > .husky/pre-commit

package.json:

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

Biome版

{
  "lint-staged": {
    "*.{ts,tsx,js,jsx,json}": ["biome check --write"]
  }
}

CI/CD統合

GitHub Actions

name: Code Quality

on:
  pull_request:
    branches: [main]

jobs:
  lint:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: pnpm/action-setup@v4
      - uses: actions/setup-node@v4
        with:
          node-version: 20
          cache: "pnpm"

      - run: pnpm install

      # ESLint + Prettier
      - name: Lint
        run: pnpm eslint . --max-warnings 0
      - name: Check Format
        run: pnpm prettier --check .

      # または Biome
      - name: Biome Check
        run: pnpm biome ci .

トラブルシューティング

問題 1: ESLintとPrettierの競合

症状: フォーマット後にESLintエラーが発生

原因: PrettierとESLintのルールが競合

解決策:

# eslint-config-prettierを最後に適用
# eslint.config.js で prettier を配列の最後に追加

問題 2: pre-commitが遅い

症状: コミット時に数十秒待つ

原因: 全ファイルをチェックしている

解決策:

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

--cacheオプションで差分のみチェック

問題 3: VS Codeで自動フォーマットが効かない

症状: 保存時にフォーマットされない

解決策 (.vscode/settings.json):

{
  "editor.formatOnSave": true,
  "editor.defaultFormatter": "esbenp.prettier-vscode",
  "[typescript]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  "editor.codeActionsOnSave": {
    "source.fixAll.eslint": "explicit"
  }
}

ベストプラクティス

すべきこと

  1. 段階的に厳格化: 最初は警告、安定したらエラーに
  2. キャッシュ活用: eslint --cacheでパフォーマンス改善
  3. エディタ統合: 保存時自動フォーマットを設定
  4. CI必須化: PRマージ前のリントチェック必須

避けるべきこと

  1. 過度なカスタマイズ: 標準ルールセットを尊重
  2. ルールの無効化乱用: eslint-disableは最小限に
  3. フォーマット議論: Prettierのオピニオンを受け入れる

チェックリスト

初期設定時

  • リンター/フォーマッターをインストール
  • 設定ファイルを作成
  • package.jsonにスクリプト追加
  • エディタ設定を追加(.vscode/settings.json)
  • .gitignoreにキャッシュファイル追加

pre-commit設定時

  • husky + lint-stagedをインストール
  • pre-commitフックを作成
  • lint-staged設定を追加
  • 全員がフックを有効化(postinstall)

CI/CD設定時

  • ワークフローファイルを作成
  • キャッシュを設定(node_modules、ESLintキャッシュ)
  • 失敗時のPRブロックを設定
  • エラーレポートのフォーマット調整

関連スキル

  • .claude/skills/code-style-guides/SKILL.md (.claude/skills/code-style-guides/SKILL.md): コードスタイルガイドライン
  • .claude/skills/clean-code-practices/SKILL.md (.claude/skills/clean-code-practices/SKILL.md): クリーンコード原則

参考文献