mcpField
L
ln-741-linter-configurator

ln-741-linter-configurator

github.com/levnikolaevichテスト・品質584381 回インストール2 日前に更新
リポジトリ

ln-741-linter-configurator について

TypeScript、Python、.NET のリンティング、フォーマット、型チェックを設定するプロジェクト初期化用スキルです。技術スタックを判定し、設定を生成または拡張して依存関係を導入し、チェックを検証します。

主な機能

  1. 01TypeScript・Python・.NET の判定
  2. 02ツール設定の生成または拡張
  3. 03必要な依存関係の導入
  4. 04統合 scripts/lint.sh の作成
  5. 05リンティングの実行と検証

活用シーン

  1. 01新規プロジェクトへの品質チェックツール導入
  2. 02テンプレートに沿った既存設定の補完

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/levnikolaevich/claude-code-skills --skill ln-741-linter-configurator

インストール後、Claude Code で/ln-741-linter-configuratorを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
linter_guide.md
references/scripts/
lint_script_template.sh
references/templates/
deptry_template.toml
directory_build_props_template.xml
editorconfig_template.ini
eslint_template.ts
importlinter_template.toml
mypy_template.toml
prettier_template.json
ruff_template.toml
vulture_template.toml

詳細

パス: ファイルパス(references/、../ln-*)は、このスキルディレクトリからの相対パスです。

ln-741-linter-configurator

タイプ: L3 Worker カテゴリ: 7XX プロジェクトの初期設定

TypeScript、Python、.NET プロジェクト向けに、コードのリント、フォーマット、型チェックのツールを設定します。


目的と対象範囲

行うこと:

  • プロジェクトの種類に基づいて、設定するリンタースタックを検出します
  • 既存のリンター設定を確認します
  • テンプレートから適切な設定ファイルを生成します
  • 必要な依存関係をインストールします(常に最新バージョンを使用し、バージョンを固定しません)
  • 統合リントスクリプト(scripts/lint.sh)を生成します
  • すべてのリンターがエラーなく実行されることを確認します

行わないこと:

  • pre-commit フックを設定すること(別のワーカーが担当します)
  • テスト基盤をセットアップすること(別のワーカーが担当します)
  • ソースコードを変更すること

対応スタック

テクノロジーリンター型チェッカーフォーマッター設定ファイル
TypeScriptESLint 9+(フラット設定)TypeScript(tsc)Prettiereslint.config.ts、.prettierrc
.NETRoslyn AnalyzersRoslyndotnet format.editorconfig、Directory.Build.props
PythonRuffmypyRuff(組み込み)ruff.toml、mypy.toml(または pyproject.toml)

フェーズ 1:既存の設定を確認する

設定を生成する前に、すでに存在するものを確認します。

確認するファイル:

スタック設定ファイルGlob パターン
TypeScriptESLint 設定eslint.config.*、.eslintrc*
TypeScriptPrettier 設定.prettierrc*、prettier.config.*
.NETエディター設定.editorconfig
.NETビルドプロパティDirectory.Build.props
PythonRuff 設定ruff.toml、pyproject.toml
Pythonmypy 設定mypy.toml、mypy.ini、pyproject.toml [tool.mypy]

判断ロジック:

  1. 設定が存在しない場合:テンプレートから作成します
  2. 設定は存在するものの不完全な場合(テンプレートよりルールやツールが少ない):テンプレートに合わせて拡張します
  3. 設定がテンプレートと一致する場合:スキップします(ユーザーに通知します)

完全性の確認(Python):

項目確認内容テンプレートの基準
Ruff のルールselect の項目数を数える23 以上のカテゴリ(ruff_template.toml を参照)
Ruff のファイル別無視設定テストのセクションが存在するtests/**/*.py に対して S101、S105、S106、T201
Ruff の高度な設定mccabe、flake8-bugbear、isortすべて設定済み
MyPystrict = true有効
高度なツール開発用依存関係に import-linter、deptry、vulture が含まれるすべてインストール済み
リントスクリプト7 つのチェックを含む scripts/lint.sh7 つすべて有効
.editorconfigファイルが存在する存在する

フェーズ 2:設定を生成する

references/ フォルダーのテンプレートを使用します。プロジェクトに合わせてプレースホルダーをカスタマイズしてください。

TypeScript:

  1. eslint_template.ts をプロジェクトのルートに eslint.config.ts としてコピーします
  2. prettier_template.json を .prettierrc としてコピーします
  3. package.json にスクリプトを追加します:
    • "lint": "eslint ."
    • "lint:fix": "eslint . --fix"
    • "format": "prettier --write ."
    • "format:check": "prettier --check ."
    • "typecheck": "tsc --noEmit"
    • "lint:all": "npm run typecheck && npm run lint && npm run format:check"
  4. React プロジェクトの場合:テンプレート内の React セクションのコメントを解除します

.NET:

  1. editorconfig_template.ini を .editorconfig としてコピーします
  2. directory_build_props_template.xml を Directory.Build.props としてコピーします
  3. アナライザーが含まれていることを確認します(SDK 5 以降ではデフォルトで含まれています)

Python:

  1. ruff_template.toml を ruff.toml としてコピーします
    • または、既存の pyproject.toml の [tool.ruff] の下にマージします
  2. mypy_template.toml を mypy.toml としてコピーします
    • または、既存の pyproject.toml の [tool.mypy] の下にマージします
  3. isort 設定の known-first-party を更新し、プロジェクトのパッケージ名に合わせます
  4. mypy 設定の files を更新し、プロジェクトのソースディレクトリに合わせます
  5. pyproject.toml に高度なツールの設定を生成します:
    • importlinter_template.toml から [tool.importlinter] を作成します。root_packages とコントラクトをプロジェクトのレイヤー構造に合わせて調整します
    • vulture_template.toml から [tool.vulture] を作成します。paths をプロジェクトのソースディレクトリに合わせて調整します
    • deptry_template.toml から [tool.deptry] を作成します。extend_exclude を調整します
  6. editorconfig_template.ini から .editorconfig を生成します。max_line_length を ruff の line-length に合わせて調整します

フェーズ 3:依存関係をインストールする

必要なパッケージをインストールします。必ず最新バージョンをインストールしてください。バージョンは固定しないでください。

TypeScript:

npm install -D eslint @eslint/js typescript-eslint eslint-config-prettier prettier eslint-plugin-unicorn jiti

React プロジェクトの場合は、こちらもインストールします:npm install -D eslint-plugin-react eslint-plugin-react-hooks

jiti に関する注意: Node.js < 22.10 で eslint.config.ts を使用する場合に必要です。Node.js 22.10 以降では TypeScript 設定が標準でサポートされています。

.NET:

  • アナライザーは SDK 5 以降に含まれているため、別途インストールする必要はありません

Python:

uv add --dev ruff mypy import-linter deptry vulture pip-audit
# OR without uv:
pip install ruff mypy import-linter deptry vulture pip-audit

フェーズ 4:Lint スクリプトを生成する

検出されたスタックのすべてのチェックを含めて、lint_script_template.sh から scripts/lint.sh を生成します。

  1. lint_script_template.sh を scripts/lint.sh にコピーします
  2. 検出されたスタックに該当するすべてのチェック行(基本ツールと高度なツールの両方)のコメントを解除します:
スタックチェック合計
Pythonruff check, ruff format, mypy, lint-imports, deptry, vulture, pip-audit7
TypeScripttypecheck, eslint, prettier, knip, depcruise5
.NETdotnet build, dotnet format2
  1. 有効なチェックの数に合わせて TOTAL を設定します
  2. --fix ブロック内の該当する自動修正コマンドのコメントを解除します
  3. 実行可能にします:chmod +x scripts/lint.sh
  4. TypeScript の場合:package.json に "lint:all" スクリプトがあることを確認します

フェーズ 5:セットアップを検証する

設定後、すべてが正常に動作することを確認します。

TypeScript:

npx tsc --noEmit
npx eslint .
npx prettier --check .

.NET:

dotnet format --verify-no-changes

Python:

ruff check .
ruff format --check .
mypy

一括検証:

bash scripts/lint.sh

期待値:すべてのチェックで終了コード 0。

失敗した場合: エラー出力を確認し、設定を調整してから、もう一度検証します。


フェーズ 6:Lint エラーを修正する

すべての設定を生成してツールをインストールした後、bash scripts/lint.sh --all を実行して、すべての違反を確認します。

  1. bash scripts/lint.sh --fix を実行し、ruff で自動修正できるものを修正します
  2. 残りのエラーを手動で修正します(ファイルごと)
  3. 現時点ではリファクタリングできない関数で C901 が発生する場合:# noqa: C901 を追加します
  4. deptry の誤検出の場合:[tool.deptry.per_rule_ignores] のエントリーを追加します
  5. bash scripts/lint.sh が失敗 0 件で通るまで繰り返します

重要なルール

ルール 1: ESLint と Prettier を併用する場合は、必ず eslint-config-prettier を設定の最後に含めてください。

ルール 2: ESLint のフラット設定形式(eslint.config.ts)を使用してください。レガシーな .eslintrc は使用しないでください。

ルール 3: Ruff は Black、isort、flake8 をはじめとする多くの Python ツールを置き換えます。これらを個別にインストールしないでください。

ルール 4: ドキュメントに記載された理由がない限り、厳格な TypeScript ルールを無効にしないでください。

ルール 5: Python プロジェクトでは、必ず Ruff と併せて mypy を実行してください。Ruff はスタイルとバグを、mypy は型の安全性をチェックします。

ルール 6: ESLint のデフォルトには recommended だけでなく、recommendedTypeChecked を使用してください。必要に応じて、個々のルールの厳格さを下げてください。

ルール 7: インストールコマンドで依存関係のバージョンを固定しないでください。常に最新バージョンをインストールしてください。

ルール 8: 高度な静的解析ツール(import-linter、deptry、vulture、pip-audit)は、Python プロジェクトでは任意ではなく必須です。


Monitor(2.1.98+): lint/型チェックの検証コマンドに 30 秒を超える時間がかかると予想される場合は、Monitor を使用してください。代替手段:Bash(run_in_background=true)。

完了の定義

  • 検出されたスタックに適した設定ファイルが作成されている
  • 依存関係がインストールされている(最新バージョン)
  • スタックに適したチェックを含む scripts/lint.sh が生成されている
  • lint コマンドがプロジェクトのソースに対してエラーなく実行される
  • フォーマットコマンドがエラーなく実行される
  • 型チェッカーがエラーなく実行される(Python は mypy、TypeScript は tsc)
  • ESLint と Prettier の競合がない(eslint-config-prettier がインストールされている)
  • 高度なツールがインストールされ、設定されている(import-linter、deptry、vulture、pip-audit)
  • scripts/lint.sh がすべてのチェック(Python は 7 項目)を実行し、終了コード 0 を返す
  • Ruff の設定に一致する設定を含む .editorconfig が作成されている
  • 利用できる lint/フォーマットコマンドがユーザーに案内されている

参照ファイル

ファイル用途
eslint_template.tsESLint フラット設定テンプレート(TypeScript)
prettier_template.jsonPrettier 設定テンプレート
ruff_template.tomlPython Ruff 設定テンプレート
mypy_template.tomlPython mypy 設定テンプレート
lint_script_template.sh統合 lint スクリプトテンプレート
editorconfig_template.ini.NET editorconfig テンプレート
directory_build_props_template.xml.NET アナライザーテンプレート
importlinter_template.tomlPython import-linter 設定テンプレート
vulture_template.tomlPython vulture 設定テンプレート
deptry_template.tomlPython deptry 設定テンプレート
linter_guide.md詳細な設定ガイド

エラー処理

エラー原因解決方法
ESLint/Prettier の競合eslint-config-prettier がないインストールして、設定の最後に追加する
ESLint の projectService エラー設定ファイルが tsconfig に含まれていないallowDefaultProject リストに追加する
ESLint の .ts 設定が失敗するjiti がないnpm install -D jiti
TypeScript の解析エラーパーサーのバージョン不一致typescript-eslint を TS のバージョンに合わせる
mypy にスタブがないサードパーティライブラリに型情報がないignore_missing_imports を指定した [[mypy.overrides]] を追加する
mypy の strict 設定が厳しすぎる初回実行で数百件のエラーが発生するまず緩めの設定で始め、徐々に strict を有効にする
Ruff が見つからないインストールされていないpip install ruff または uv add ruff
dotnet format が失敗するSDK がない.NET SDK をインストールする

バージョン: 4.0.0 最終更新日: 2026-03-18

コメント