mcpField
M
migrate-to-rslint

migrate-to-rslint

github.com/rstackjs開発9777 回インストール6 日前に更新
リポジトリ

migrate-to-rslint について

ESLint flat config または Oxlint から Rslint へ移行する開発者向けのスキルです。バージョン別の公式情報を確認し、変更を抑えながらルールの挙動と適用範囲を検証します。

主な機能

  1. 01ESLint flat config と Oxlint の検出
  2. 02移行元別ガイドに沿った設定変換
  3. 03スクリプト、CI、エディター設定の更新
  4. 04ルール、対象範囲、抑制の検証
  5. 05未対応ルールによる差分の報告

活用シーン

  1. 01既存の ESLint プロジェクトを Rslint に切り替える
  2. 02Oxlint 設定を移行してルール範囲を確認する
  3. 03移行後の CI とエディター連携を検証する

インストール

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

$npx skills add https://github.com/rstackjs/agent-skills --skill migrate-to-rslint

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

同梱ファイル

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

references/
eslint-flat-config.md
eslint-plugins.md
oxlint.md

詳細

Rslint への移行

目的

動作の変更を最小限に抑え、明確に検証しながら、リンティングツールを Rslint に移行します。

対応する移行元のリンター

  • ESLint flat config
  • Oxlint

移行の原則(必ず遵守)

  1. まず公式ドキュメントを確認:CLI、設定、インラインディレクティブ、VS Code の設定、ルール、プリセットには Rslint のドキュメントを使用します。インストール済みバージョンでの対応状況を確認してください。過去の移行時にあった制約や回避策が、恒久的な制限とは限りません。
  2. 変更は最小限から:ソースファイルを変更する前に、パッケージ、コマンド、設定、エディター連携を移行します。
  3. リンティングの意図を維持:Rslint が対応しているルールの重大度やオプションを維持し、対応していないルールやプラグインは、動作を黙って削除せず明示します。
  4. インライン抑制の意図を維持:有効になるディレクティブ、その対象ルール、適用範囲を維持します。ユーザーから変更の要望がない限り、互換性のあるプレフィックスは維持してください。移行元固有の構文は変換し、移行元固有のガイドでディレクティブの互換性が無効化されている場合の扱いを説明します。
  5. クリーンアップの前に検証:リンティングのエントリーポイントを Rslint に切り替え、移行対象の範囲を検証してから、不要になった移行元リンターの成果物を削除します。対応ルールの範囲の違いは、作業の妨げとしたり、別途承認を求めたりせずに報告します。

ワークフロー

  1. ソースのリンターを特定する

    • ESLint のフラット設定:eslint.config.*、eslint 依存関係、または eslint を実行するパッケージスクリプト。
    • Oxlint:.oxlintrc.json、.oxlintrc.jsonc、oxlint.config.*、oxlint 依存関係、または oxlint を実行するコマンド。
    • インストール済みのバージョン、コマンド、作業ディレクトリ、環境変数による切り替え、および移行対象の範囲を記録します。その範囲内の共有設定、ネストされた設定、ルート設定へのフォールバック動作も含めます。
    • ソースのリンターに対応するリファレンスがまだない場合は、現在の動作を調査し、専用の移行リファレンスがないことを説明します。
  2. Rslint を準備し、ソースに応じたガイドを適用する

    • ルール、設定、プラグイン API を確認する前に、リポジトリのパッケージマネージャーで使用する @rslint/core のバージョンを選択してインストールします。既存のバージョン制約を尊重し、検証用にソースのリンターも残します。
    • ESLint のフラット設定:references/eslint-flat-config.md
    • Oxlint:references/oxlint.md
    • いずれかのソースにコミュニティ製またはローカルの JS プラグインがある場合は、references/eslint-plugins.md も読みます。
  3. Lint の実行箇所を更新する

    • サポートされている rslint.config.* 形式を使用します。変換後の設定に必要なソースプラグインの依存関係は残します。
    • 移行対象の範囲にあるパッケージスクリプト、CI、フック、ステージ済みファイル向けのコマンドを更新します。Rslint CLI リファレンスを使ってフラグを変換し、作業ディレクトリ、ファイル引数、警告のしきい値、環境変数による切り替えを維持します。
    • 既存のエディター連携を、Rslint VS Code ガイドを使って更新します。無関係なエディターツールと設定はそのまま残します。
  4. 動作を検証する

    • 移行後の Lint コマンドを実行します。
    • ソースの調査結果と照らし合わせて、実効ルールとオプション、対象ファイル、抑制設定、プラグインの実行を確認します。終了コードが成功しただけでは、動作が同等であるとは判断できません。
    • 有効になっているソースルールに、検証済みのネイティブ置換または互換性のある JS プラグインによる置換がない場合は、サポートされていないターゲットキーを省略し、最終報告にルール名、影響するファイル範囲、失われるカバレッジを記録します。サポートされているルールを使って移行を続けます。
    • プロジェクトに修正コマンドがある場合は、タスクに適切なときに限り、移行後の修正コマンドを実行します。
    • クリーンアップの前に、ターゲット設定の読み込みエラー、サポートされているルールの無効なオプション、コマンドの失敗、エディター連携のエラーを解決します。
  5. クリーンアップして要約する

    • 移行対象の範囲にあるすべての Lint の実行箇所で Rslint が使われていることを確認し、検証後に不要になったソースのリンターのコマンド、設定、依存関係を削除します。
    • 切り替えと検証の完了内容を要約し、省略したルールやプラグイン、影響する範囲、カバレッジや動作の変更を明記します。

コメント