mcpField
M
megalinter

megalinter

github.com/oxsecurityテスト・品質2.6k84 回インストール今日更新
リポジトリ

megalinter について

リポジトリで MegaLinter のチェックと修正、再検証を進めるスキルです。コーディングエージェントにローカル実行または CI の利用を案内し、ブランチ操作やルール変更に制限を設けます。

主な機能

  1. 01MegaLinter 設定と CI 状態の検出
  2. 02ローカルチェックまたは CI の監視
  3. 03エラー修正と再チェック
  4. 04修正と確認を最大 3 回実施
  5. 05利用可能なサブエージェントへの委任

活用シーン

  1. 01リポジトリの lint エラーの診断
  2. 02CI で見つかったエラーの修正と再確認
  3. 03編集後の対象を絞ったチェック

インストール

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

$npx skills add https://github.com/oxsecurity/megalinter --skill megalinter

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

詳細

MegaLinter オーケストレーター

このリポジトリで MegaLinter をオーケストレーションします。MegaLinter は 100 以上のリンターを集約したメガリンターで、Docker イメージとして(ローカルでは npx mega-linter-runner を使用)または CI ジョブとして実行されます。

ワークフロー

  1. リポジトリの状態を検出する:
    • .mega-linter.yml も MegaLinter の CI ワークフローファイルもない → まず megalinter-setup スキルを実行します。
    • 設定がある → ステップ 2 に進みます。
  2. megalinter-check スキルでエラーを収集する:
    • 現在のブランチ/PR に対する MegaLinter の CI ジョブが実行中、または直前に失敗した場合 → その監視モードを使用します。
    • それ以外の場合 → ローカルモードを使用します(コンテナーエンジン(docker または podman)が必要です。ない場合は、スキルがインストール/起動するようユーザーに確認します)。ローカル実行はリソースを消費します(MegaLinter は Docker ベースであり、高性能なコンピューターと良好なインターネット接続が必要で、数 GB のイメージをダウンロードする場合があります)。そのため、CI 実行も可能な場合(リポジトリに MegaLinter の CI ワークフローがある場合。たとえば、ブランチをプッシュするか PR を作成するなど)、通常は CI の使用を推奨します。ローカル実行にするか CI 実行にするかユーザーに確認してください(プラットフォームに選択式の質問機能がある場合は、CI を先に表示し、推奨します)。
  3. エラーが見つかった場合は、収集したエラー一覧を使って megalinter-fix スキルを実行します。
  4. 再チェックする:修正後、megalinter-check を再度実行します。ローカルモードでは、対象を絞った再チェック(以前失敗したリンターと修正済みファイルに限定した、リンター単体の並列実行)を優先します。
  5. ステップ 3~4 を最大 3 回まで繰り返します。3 回の反復後もエラーが残る場合は、処理を停止し、残りのエラーと推奨対応(手動で修正、ルールを無効化、またはリンターを無効化)を報告します。
  6. パフォーマンス:megalinter-check が slow_linters を報告した場合(実行が成功していても)、ループの最後にパフォーマンス改善の提案をユーザーに伝えます。速度改善策は提案のみとし、同意を得る前に適用してはいけません。

ルール

  • デフォルトブランチ(main/master)では、コミットもプッシュも行わないでください。先に megalinter/fix-<topic> のようなブランチを作成してください。
  • リンターやルールを無効化する前、およびコミットをプッシュする前に、ユーザーに確認してください。
  • 強制プッシュは決して行わないでください。ただし、MegaLinter 自身が監視対象のブランチに [MegaLinter] Apply linters fixes コミットをプッシュした場合を除きます。この場合、megalinter-check はコミットメッセージの先頭に 🤖 を追加して修正し、CI チェックを再実行するために --force-with-lease で再プッシュします(条件については、「MegaLinter auto-fix commits」セクションを参照してください)。通常の --force は決して使わず、この場合以外に強制プッシュを行わないでください。
  • 各フェーズの後に、簡潔な状況(見つかったエラー、適用した修正、残っているエラー)をユーザーに伝えてください。

最適化:サブエージェント(Claude Code および互換エージェント)

環境がサブエージェントの起動(Task/Agent ツールなど)に対応しており、megalinter-watcher、megalinter-runner、megalinter-fixer のエージェント定義が利用可能な場合:

  • エージェントプラグイン(Claude Code、Cursor、Copilot)としてインストールされている場合、これらはプラグインに含まれています。プラットフォームによっては名前空間付きの名前(megalinter:megalinter-watcher)で表示され、別のプラットフォームでは名前空間なしで表示されます。
  • スキルとしてインストールされている場合、megalinter-setup スキルがこれらをプラットフォームのエージェントフォルダー(例:.claude/agents/、.opencode/agent/、ファイル名が .agent.md で終わる .github/agents/)に、名前空間なしでコピーします。

プラットフォームで実際に表示される方を使用し、どちらも利用できない場合はインライン実行に切り替えてください。

続いて:

  • CI の監視は megalinter-watcher に、ローカル実行は megalinter-runner に委任します。これにより、大きなログをコンテキストに取り込まず、簡潔なエラー一覧だけを受け取れます。
  • 失敗したリンターごとに megalinter-fixer を 1 つ割り当て、複数のリンターを並行して修正します。

サブエージェントが利用できない場合は、スキルの指示に従ってすべてのステップをインラインで実行してください。

コメント