--- name: fix-sonarlint-issues description: SonarLint(SonarQube for IDE)がエディター上に表示した波線や Problems パネルの指摘を調査し、安全に自動修正して回帰確認する。SonarLint の警告を直す、Sonar の rule key に対応する、波線を消す、Quick Fix の代わりにコードを修正する依頼で使用する。 --- # SonarLint の指摘を修正する SonarLint が報告した具体的な指摘を基に、動作を保ちながら必要最小限の修正を行う。 ## 作業手順 1. `git status --short` を実行し、既存の変更を把握する。 2. IDE または依頼内容から、対象ファイル、行番号、メッセージ、Sonar の rule key を確認する。 3. 指摘箇所と周辺コードを読み、ルールの理由と修正による動作への影響を確認する。 4. Sonar Quick Fix が利用でき、変更内容が明確な場合は、差分を確認して適用する。利用できない場合は、同じ目的の修正をコードへ直接加える。 5. 対象に近いテストを実行し、必要に応じて `./gradlew check` を実行する。 6. ファイルを保存して SonarLint の再解析を待ち、指摘が消えたことを確認する。 7. 修正した指摘、変更内容、実行した確認を報告する。 ## 指摘を取得できない場合 波線は IDE の表示であり、通常のシェルコマンドから直接読み取れるとは限らない。利用中のクライアントから診断情報を取得できない場合は、推測で修正せず、Problems パネルから次の情報を提示してもらう。 - 対象ファイルと行番号 - 指摘メッセージ - rule key(例: `java:S1234`) このプロジェクトでは SonarQube for IDE の解析を Gradle に組み込んでいないため、`./gradlew check` の成功だけで SonarLint の指摘が解消したとは判断しない。 ## 修正時の注意 - 一つの指摘につき、必要最小限の変更を行う。 - 警告を消すためだけに、ルールを無効化したり、除外設定や抑制アノテーションを追加したりしない。 - `Accepted` や `False Positive` への変更は自動修正として扱わず、根拠と利用者の合意がある場合だけ行う。 - security hotspot、vulnerability、secret の指摘は自動的に安全と判断しない。入力境界やデータフローを確認し、判断が必要な場合は利用者へ伝える。 - 公開 API、例外処理、スレッド処理、認証、永続化などの動作が変わる修正では、既存テストと呼び出し元を確認する。 - SonarLint の指摘を直すために、関係のないフォーマット変更やリファクタリングを混ぜない。 SonarQube for IDE の設定や指摘の調査方法が必要な場合は、[SonarQube for IDE ガイド](../../docs/code-quality-tools/sonarqube-for-ide-guide.md)を参照する。