configure-linting について
JavaScript/TypeScript、Python、RustプロジェクトのLint設定を確認・構成するコーディングエージェント向けスキルです。不足をレポートし、LintツールやCI連携を設定できます。
主な機能
- 01言語と既存Lintツールの検出
- 02ルール、フォーマッター、除外設定の確認
- 03準拠レポートと推奨事項の作成
- 04Lintツールとnpmスクリプトの設定
- 05pre-commitとCIチェックの設定
- 06確認のみ、自動修正、Lintツール指定
活用シーン
- 01新規プロジェクトのLint設定
- 02ESLintやFlake8からの移行
- 03フォーマッター、pre-commit、CI連携の確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ laurigates/ claude-plugins --skill configure-lintingインストール後、Claude Code で/configure-lintingを入力して読み込まれたか確認します。
同梱ファイルREFERENCE.md
詳細
/configure:linting
最新のベストプラクティスに基づいて、リンティングツールを確認および設定します。
このスキルを使うタイミング
| 次の場合にこのスキルを使います… | 次の場合は別の方法を使います… |
|---|---|
| 最新のリンティング(Biome、Ruff、Clippy)をセットアップするとき | リンターを実行するだけの場合(/lint:check スキルを使います) |
| ESLint/Prettier から Biome に移行するとき | リンターがすでに適切に設定されている場合 |
| リンター設定を検証するとき | 特定の lint エラーを修正するとき(リンターを実行して修正します) |
| 言語固有のベストプラクティスを徹底するとき | リンティングが不要なシンプルなスクリプトの場合 |
| pre-commit の lint 統合を設定するとき | リンターの問題をデバッグするとき(リンターのログを確認します) |
コンテキスト
- プロジェクトルート:!
pwd - Biome 設定:!
find . -maxdepth 1 -name 'biome.json' -o -name 'biome.jsonc' - Ruff 設定:!
grep -l 'tool.ruff' pyproject.toml - Clippy 設定:!
grep -l 'lints.clippy' Cargo.toml - 旧式リンター:!
find . -maxdepth 1 \( -name '.eslintrc*' -o -name '.flake8' -o -name '.pylintrc' \) - パッケージファイル:!
find . -maxdepth 1 \( -name 'package.json' -o -name 'pyproject.toml' -o -name 'Cargo.toml' \) - pre-commit 設定:!
find . -maxdepth 1 -name '.pre-commit-config.yaml' - CI ワークフロー:!
find .github/workflows -maxdepth 1 -name '*.yml'
パラメーター
$ARGUMENTS から解析します:
--check-only:変更せずにリンティングの準拠状況を報告します--fix:確認を求めず、すべての修正を自動で適用します--linter <biome|ruff|clippy>:自動検出を上書きし、指定したリンターを強制的に使用します
最新のリンティングに関する推奨事項:
- JavaScript/TypeScript:Biome(リンターとフォーマッターを統合、高速)
- Python:Ruff(flake8、isort、pyupgrade を置き換えます)
- Rust:ワークスペースの lint 設定を使った Clippy
実行
次のリンティング設定チェックを実行します:
ステップ 1:プロジェクトの言語と既存のリンターを検出する
上記のコンテキスト値を読み取り、次のように判定します:
| 指標 | 言語 | 検出されたリンター |
|---|---|---|
biome.json | JavaScript/TypeScript | Biome |
pyproject.toml [tool.ruff] | Python | Ruff |
.flake8 | Python | Flake8(旧式) |
Cargo.toml [lints.clippy] | Rust | Clippy |
--linter フラグが設定されている場合は、検出結果にかかわらず指定されたリンターを使います。
ステップ 2:ツールの最新バージョンを確認する
WebSearch または WebFetch を使って、現在のバージョンを確認します:
- Biome:biomejs.dev または GitHub releases を確認します
- Ruff:docs.astral.sh/ruff または GitHub releases を確認します
- Clippy:Rust releases を確認します
ステップ 3:現在のリンター設定を分析する
検出された各リンターについて、設定が完全かどうかを確認します:
Biome(JS/TS 向け):
- lint ルールを含む設定ファイルがある
- フォーマッターが設定されている
- ファイルパターンと除外設定がある
- 推奨ルールが有効になっている
Ruff(Python 向け):
pyproject.tomlに[tool.ruff]セクションがある- ルール(E、F、I、N など)が選択されている
- 行の長さと対象の Python バージョンが設定されている
Clippy:
Cargo.tomlに[lints.clippy]セクションがある- Pedantic lint が有効になっている
- 該当する場合、ワークスペースレベルの lint が設定されている
ステップ 4:準拠レポートを生成する
次の項目を含む準拠レポートを出力します:
- 設定ファイルの状態(存在/不足)
- リンターの有効状態
- ルール設定(推奨/最小限/不足)
- フォーマッターの統合
- 除外パターン
- package.json / Makefile 内の lint スクリプト
- pre-commit フックの統合
- CI/CD チェックの統合
最後に、問題の総数と推奨事項を示します。
--check-only が設定されている場合は、ここで終了します。
ステップ 5:リンティングを設定する(--fix が指定されている場合、またはユーザーが確認した場合)
REFERENCE.md のテンプレートを使って設定を適用します。
Biome(JS/TS)の場合:
- 開発依存関係として Biome をインストールする
- 推奨ルールを含む
biome.jsonを作成する - npm スクリプト(
lint、lint:fix、format、check)を追加する
Ruff(Python)の場合:
uv add --group dev ruffで Ruff をインストールするpyproject.tomlに[tool.ruff]セクションを追加する- ルール、行の長さ、対象バージョンを設定する
Clippy(Rust)の場合:
Cargo.tomlに[lints.clippy]セクションを追加する- pedantic lint を有効にする
- 該当する場合は、ワークスペースレベルの lint を設定する
レガシーなリンター(ESLint、Flake8 など)が検出された場合は、移行を提案します。REFERENCE.md の移行ガイドを参照してください。
ステップ 6:pre-commit と CI の統合を設定する
- リンターの pre-commit フックを
.pre-commit-config.yamlに追加する - リンターの CI チェックを GitHub Actions ワークフローに追加する
- REFERENCE.md のテンプレートを使う
ステップ 7:標準の追跡を更新する
.project-standards.yaml を更新します。
components:
linting: "2025.1"
linting_tool: "[biome|ruff|clippy]"
linting_pre_commit: true
linting_ci: true
ステップ 8:最終的な準拠レポートを出力する
適用したすべての変更、追加したスクリプト、設定した統合、およびユーザーの次の手順の概要を出力します。
詳細な設定テンプレート、移行ガイド、CI 統合のパターンについては、REFERENCE.md を参照してください。
エージェント向け最適化
| コンテキスト | コマンド |
|---|---|
| リンター設定を検出 | find . -maxdepth 1 \( -name 'biome.json' -o -name 'ruff.toml' -o -name '.eslintrc*' \) 2>/dev/null |
| Biome 設定を確認 | test -f biome.json && jq -c '.linter' biome.json 2>/dev/null |
| pyproject の Ruff を確認 | grep -A5 '\[tool.ruff\]' pyproject.toml 2>/dev/null |
| lint スクリプトを一覧表示 | jq -r '.scripts | to_entries[] | select(.key | contains("lint")) | "\\(.key): \\(.value)"' package.json 2>/dev/null |
| 準拠状況を簡易確認 | /configure:linting --check-only |
| 設定を自動修正 | /configure:linting --fix |
フラグ
| フラグ | 説明 |
|---|---|
--check-only | 修正を提案せずにステータスを報告する |
--fix | 確認を求めずにすべての修正を自動で適用する |
--linter <linter> | リンターの検出方法を上書きする(biome、ruff、clippy) |
例
# 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
エラー処理
- 複数のリンターを検出した場合:競合について警告し、移行を提案する
- パッケージマネージャーが見つからない場合:リンターをインストールできないため、エラーとする
- 設定が無効な場合:解析エラーを報告し、テンプレートへの置き換えを提案する
- 依存関係が不足している場合:必要なパッケージのインストールを提案する
関連項目
/configure:formatting- コードフォーマットを設定する/configure:pre-commit- pre-commit フックを設定する/configure:all- すべての準拠チェックを実行する- Biome のドキュメント:https://biomejs.dev
- Ruff のドキュメント:https://docs.astral.sh/ruff
- Clippy のドキュメント:https://doc.rust-lang.org/clippy