ln-741-linter-configurator について
TypeScript、Python、.NET のリンティング、フォーマット、型チェックを設定するプロジェクト初期化用スキルです。技術スタックを判定し、設定を生成または拡張して依存関係を導入し、チェックを検証します。
主な機能
- 01TypeScript・Python・.NET の判定
- 02ツール設定の生成または拡張
- 03必要な依存関係の導入
- 04統合 scripts/lint.sh の作成
- 05リンティングの実行と検証
活用シーン
- 01新規プロジェクトへの品質チェックツール導入
- 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.mdreferences/scripts/lint_script_template.shreferences/templates/deptry_template.tomldirectory_build_props_template.xmleditorconfig_template.inieslint_template.tsimportlinter_template.tomlmypy_template.tomlprettier_template.jsonruff_template.tomlvulture_template.toml詳細
パス: ファイルパス(
references/、../ln-*)は、このスキルディレクトリからの相対パスです。
ln-741-linter-configurator
タイプ: L3 Worker カテゴリ: 7XX プロジェクトの初期設定
TypeScript、Python、.NET プロジェクト向けに、コードのリント、フォーマット、型チェックのツールを設定します。
目的と対象範囲
行うこと:
- プロジェクトの種類に基づいて、設定するリンタースタックを検出します
- 既存のリンター設定を確認します
- テンプレートから適切な設定ファイルを生成します
- 必要な依存関係をインストールします(常に最新バージョンを使用し、バージョンを固定しません)
- 統合リントスクリプト(
scripts/lint.sh)を生成します - すべてのリンターがエラーなく実行されることを確認します
行わないこと:
- pre-commit フックを設定すること(別のワーカーが担当します)
- テスト基盤をセットアップすること(別のワーカーが担当します)
- ソースコードを変更すること
対応スタック
| テクノロジー | リンター | 型チェッカー | フォーマッター | 設定ファイル |
|---|---|---|---|---|
| TypeScript | ESLint 9+(フラット設定) | TypeScript(tsc) | Prettier | eslint.config.ts、.prettierrc |
| .NET | Roslyn Analyzers | Roslyn | dotnet format | .editorconfig、Directory.Build.props |
| Python | Ruff | mypy | Ruff(組み込み) | ruff.toml、mypy.toml(または pyproject.toml) |
フェーズ 1:既存の設定を確認する
設定を生成する前に、すでに存在するものを確認します。
確認するファイル:
| スタック | 設定ファイル | Glob パターン |
|---|---|---|
| TypeScript | ESLint 設定 | eslint.config.*、.eslintrc* |
| TypeScript | Prettier 設定 | .prettierrc*、prettier.config.* |
| .NET | エディター設定 | .editorconfig |
| .NET | ビルドプロパティ | Directory.Build.props |
| Python | Ruff 設定 | ruff.toml、pyproject.toml |
| Python | mypy 設定 | mypy.toml、mypy.ini、pyproject.toml [tool.mypy] |
判断ロジック:
- 設定が存在しない場合:テンプレートから作成します
- 設定は存在するものの不完全な場合(テンプレートよりルールやツールが少ない):テンプレートに合わせて拡張します
- 設定がテンプレートと一致する場合:スキップします(ユーザーに通知します)
完全性の確認(Python):
| 項目 | 確認内容 | テンプレートの基準 |
|---|---|---|
| Ruff のルール | select の項目数を数える | 23 以上のカテゴリ(ruff_template.toml を参照) |
| Ruff のファイル別無視設定 | テストのセクションが存在する | tests/**/*.py に対して S101、S105、S106、T201 |
| Ruff の高度な設定 | mccabe、flake8-bugbear、isort | すべて設定済み |
| MyPy | strict = true | 有効 |
| 高度なツール | 開発用依存関係に import-linter、deptry、vulture が含まれる | すべてインストール済み |
| リントスクリプト | 7 つのチェックを含む scripts/lint.sh | 7 つすべて有効 |
| .editorconfig | ファイルが存在する | 存在する |
フェーズ 2:設定を生成する
references/ フォルダーのテンプレートを使用します。プロジェクトに合わせてプレースホルダーをカスタマイズしてください。
TypeScript:
eslint_template.tsをプロジェクトのルートにeslint.config.tsとしてコピーしますprettier_template.jsonを.prettierrcとしてコピーします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"
- React プロジェクトの場合:テンプレート内の React セクションのコメントを解除します
.NET:
editorconfig_template.iniを.editorconfigとしてコピーしますdirectory_build_props_template.xmlをDirectory.Build.propsとしてコピーします- アナライザーが含まれていることを確認します(SDK 5 以降ではデフォルトで含まれています)
Python:
ruff_template.tomlをruff.tomlとしてコピーします- または、既存の
pyproject.tomlの[tool.ruff]の下にマージします
- または、既存の
mypy_template.tomlをmypy.tomlとしてコピーします- または、既存の
pyproject.tomlの[tool.mypy]の下にマージします
- または、既存の
- isort 設定の
known-first-partyを更新し、プロジェクトのパッケージ名に合わせます - mypy 設定の
filesを更新し、プロジェクトのソースディレクトリに合わせます pyproject.tomlに高度なツールの設定を生成します:importlinter_template.tomlから[tool.importlinter]を作成します。root_packagesとコントラクトをプロジェクトのレイヤー構造に合わせて調整しますvulture_template.tomlから[tool.vulture]を作成します。pathsをプロジェクトのソースディレクトリに合わせて調整しますdeptry_template.tomlから[tool.deptry]を作成します。extend_excludeを調整します
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 を生成します。
lint_script_template.shをscripts/lint.shにコピーします- 検出されたスタックに該当するすべてのチェック行(基本ツールと高度なツールの両方)のコメントを解除します:
| スタック | チェック | 合計 |
|---|---|---|
| Python | ruff check, ruff format, mypy, lint-imports, deptry, vulture, pip-audit | 7 |
| TypeScript | typecheck, eslint, prettier, knip, depcruise | 5 |
| .NET | dotnet build, dotnet format | 2 |
- 有効なチェックの数に合わせて
TOTALを設定します --fixブロック内の該当する自動修正コマンドのコメントを解除します- 実行可能にします:
chmod +x scripts/lint.sh - 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 を実行して、すべての違反を確認します。
bash scripts/lint.sh --fixを実行し、ruff で自動修正できるものを修正します- 残りのエラーを手動で修正します(ファイルごと)
- 現時点ではリファクタリングできない関数で C901 が発生する場合:
# noqa: C901を追加します - deptry の誤検出の場合:
[tool.deptry.per_rule_ignores]のエントリーを追加します 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.ts | ESLint フラット設定テンプレート(TypeScript) |
| prettier_template.json | Prettier 設定テンプレート |
| ruff_template.toml | Python Ruff 設定テンプレート |
| mypy_template.toml | Python mypy 設定テンプレート |
| lint_script_template.sh | 統合 lint スクリプトテンプレート |
| editorconfig_template.ini | .NET editorconfig テンプレート |
| directory_build_props_template.xml | .NET アナライザーテンプレート |
| importlinter_template.toml | Python import-linter 設定テンプレート |
| vulture_template.toml | Python vulture 設定テンプレート |
| deptry_template.toml | Python 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