sonarqube-ai-slop-gate について
SonarQube AI Slop Gate は、AI 生成コードをゲートするために SonarQube Server をセルフホストするチーム向けの設定リファレンススキルです。エディション、AI Code Assurance、スキャナー設定に加え、問題の見落としや意図しない合格につながる既定動作を扱います。
主な機能
- 01エディションとリリース周期の説明
- 02AI Code Assurance の設定
- 03品質ゲートの測定上の盲点を特定
- 04新規コードとブランチの設定
- 05スキャナー属性とカバレッジ取り込み
- 06サーバー運用とデータ永続化
活用シーン
- 01セルフホスト版 SonarQube Server の構築やレビュー
- 02新規コード向け品質ゲートの設定
- 03CI にスキャンを組み込み不合格のマージを阻止
- 04問題の見落としや予期しない合格の調査
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ pproenca/ dot-skills --skill sonarqube-ai-slop-gateインストール後、Claude Code で/sonarqube-ai-slop-gateを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
AGENTS.mdmetadata.jsonassets/templates/_template.mdreferences/_sections.mdaica-do-not-rely-on-autodetection.mdaica-flag-projects-through-the-api.mdaica-qualify-the-gate-explicitly.mdaica-the-builtin-ai-gate-is-lenient.mdaica-use-the-agentic-profile.mdblind-fudge-factor-skips-small-changes.mdblind-java-duplication-threshold-is-fixed.mdblind-no-new-code-complexity-metric.mdblind-pull-requests-hide-file-level-issues.mdblind-suppression-comments-turn-the-gate-green.mdblind-test-code-escapes-duplication.mdnewcode-pick-the-definition-deliberately.mdnewcode-shallow-clones-break-blame.mdops-persist-data-and-skip-h2.mdops-set-host-limits-before-first-boot.mdplat-ai-features-are-edition-gated.mdplat-community-build-cannot-see-pull-requests.mdplat-versions-are-calendar-based.mdscan-declare-test-sources.mdscan-exclude-narrowly.mdscan-host-url-defaults-to-the-cloud.mdscan-import-coverage-reports.mdscan-name-the-branch.mdscan-use-project-analysis-tokens.mdscan-wait-for-the-quality-gate.md詳細
SonarQube の AI スロップゲート
セルフホスト型 SonarQube を使って AI 生成コードをゲートする際に必要となる判断と、その決め方を説明します。各ルールでは、修正対象となる誤ったデフォルト設定を明示します。モデルがすでに正しく処理できていることを対象とするルールはありません。
バージョンではなく日付を基準にしています。 SonarQube は 2 か月ごとにリリースされるため、ここに記載した内容はすべて、2026 年 7 月に SonarQube Server 2026.3(現行の LTA は 2026.1)を対象として docs.sonarsource.com で検証しました。執筆時点では 2026.4 がリリース済みでしたが、ドキュメントのデフォルトはまだ 2026.3 だったため、これらのルールでは 2026.3 を対象としています。リリースサイクル自体については plat-versions-are-calendar-based で説明しています。バージョンに関わる内容は、信頼する前に必ず再確認し、ドキュメントはバージョン指定のないパスから参照してください(/latest/<page> は解決されません)。ドキュメントの URL の末尾に .md を付けると、Markdown ソースが返されます。
このスキルが防ごうとしている障害は、あらゆる変更を通してしまうゲートです。2024 年時点の知識をもとに構成した SonarQube のセットアップでは、誤ったブランチを解析し、誤ったサーバーにアップロードし、ゲートが不合格でも終了コード 0 を返し、AI 支援による作業で最も頻繁に生じる小さなコミットでは、重複とカバレッジの条件を丸ごと省略してしまいます。こうした障害はどれも表面化せず、ダッシュボードは終始問題がないように見えます。
適用する場面
次のような場合に、このスキルを使います。
- AI 生成コードの不具合を事後に報告するのではなく、継続的に検出することを目的として、セルフホスト型 SonarQube Server を新規に構築する場合、または既存のインスタンスをレビューする場合
- 品質ゲートを設計または強化する場合。特に、新規コードと全体コードのどちらを測定するかを決める場合や、条件が暗黙のうちに評価されていない原因を調べる場合
- CI にスキャン手順を組み込む場合。スキャナーのプロパティ、トークン、ブランチおよびプルリクエストのパラメーター、カバレッジレポートのインポート、またはパイプラインで実際にマージをブロックさせる設定を行う場合
- AI Code Assurance をセットアップする場合。プロジェクトへのフラグ設定、ゲートの適格性判定、または「AI Code Assurance is off」とプロジェクトに表示される理由を調べる場合
- 重複コードやテストされていない生成コードが明らかに含まれている変更をゲートが通してしまい、その理由を誰も説明できない場合
このスキルの対象外:
- SonarQube Cloud — エディションの境界、トークンの仕組み、いくつかの AI 機能が異なります。特にエージェント型 AI ゲートのドキュメントは Cloud のみを対象としています
- IDE の接続モード、SonarLint、または SonarQube CLI のローカルなエージェント型解析
- カスタムアナライザールールやプラグインの作成 — ここで扱うのは、標準搭載のルールの設定であり、新しいルールの作成ではありません
- コードの良し悪しに関する一般的なコードレビューの判断 — ここで扱うのは、ツールに何を測定させるかを期待どおりに設定することです
ルールカテゴリ
| # | カテゴリ | プレフィックス | 対象 |
|---|---|---|---|
| 1 | エディションとバージョンの実情 | plat- | ライセンスで可能なこと、CalVer と LTA のアップグレードパス、エディションごとに必要な AI 機能 |
| 2 | AI Code Assurance | aica- | プロジェクトのフラグ、ゲートの適格性、非推奨の自動検出、エージェント型プロファイル |
| 3 | ゲートが測定しないもの | blind- | 抑制コメント、調整用の余裕、テストコードの除外、欠落したメトリクス、プルリクエストの盲点 |
| 4 | 新規コードと Blame | newcode- | 完全なクローンの要件、ブランチモデルに合った定義の選択 |
| 5 | スキャナーの設定 | scan- | 安全側に倒れないデフォルト設定のプロパティ — ホスト URL、ゲートの待機、テストの範囲、カバレッジ、除外設定 |
| 6 | サーバーの実行 | ops- | 初回起動前のカーネル制限、アップグレード後も維持されるデータベースとボリューム |
クイックリファレンス
1. エディションとバージョンの実態
plat-community-build-cannot-see-pull-requests— まず最初に解決してください。 Community Build はメインブランチのみが対象です。PR ゲートには Developer Edition が必要ですplat-versions-are-calendar-based—YYYY.N.Pであり、10.x ではありません。アップグレード時に中間の LTA をスキップすることはできませんplat-ai-features-are-edition-gated— AI Code Assurance は Developer、AI CodeFix は Enterprise、Advanced Security は別 SKU です
2. AI Code Assurance
aica-flag-projects-through-the-api—sonar.*プロパティはありません。UI またはset_contains_ai_codeを使用して、サーバーの状態として設定しますaica-qualify-the-gate-explicitly— 厳格な条件を設定しても何も付与されません。標準の「Sonar way」は適格ではなく、10.7 へのアップグレードでアシュアランスが失われますaica-do-not-rely-on-autodetection— Copilot のみが対象で、2026.1 では非推奨になります。代わりに意図的にラベルを設定してくださいaica-the-builtin-ai-gate-is-lenient— 7 つの条件、信頼性評価 C、コード全体のカバレッジ下限なしaica-use-the-agentic-profile— 2026.3 の Java、JS/TS、Python 向け「Sonar agentic AI」プロファイル。それ以外では Sonar way を使用します
3. ゲートで測定されないもの
blind-suppression-comments-turn-the-gate-green— 敵対的なケースです。NOSONARはイシューを削除しますが、それを追跡するルールは無効な状態で提供されますblind-fudge-factor-skips-small-changes— 最もコストの高い偶発的なデフォルト設定です。 新規行が 20 行未満の場合、重複とカバレッジの条件はデフォルトでスキップされますblind-test-code-escapes-duplication— テストコードでは重複がまったく測定されません。生成されたコードのコピー&ペーストが集中する箇所ですblind-no-new-code-complexity-metric—new_cognitive_complexityは存在しません。ルールS3776を通じてnew_violationsでゲートしてくださいblind-java-duplication-threshold-is-fixed—sonar.cpd.java.minimumTokensは何もしません。IaC と CSS では重複検出がまったく行われませんblind-pull-requests-hide-file-level-issues— PR ではコード全体に対する条件が実行されないため、マージが成功した直後にメインブランチが赤になることがあります
4. 新規コードと Blame
newcode-shallow-clones-break-blame—fetch-depth: 0を指定してください。指定しないと、新規コードの判定が暗黙のうちに分析タイムスタンプにフォールバックしますnewcode-pick-the-definition-deliberately— PR ゲートには参照ブランチを使用します。日数は最大 90 日で、特定の分析の指定は API でのみ可能です
5. スキャナーの設定
scan-host-url-defaults-to-the-cloud— 最新のスキャナーは localhost ではなく、https://sonarcloud.ioをデフォルトにしますscan-use-project-analysis-tokens—sonar.loginは非推奨です。CI のスコープをプロジェクト分析トークンに限定してくださいscan-wait-for-the-quality-gate— デフォルトはfalseのため、品質ゲートが赤でもパイプラインは成功しますscan-declare-test-sources—sonar.testsにデフォルト値はありません。未設定の場合、テストはプロダクションコードとして計測されますscan-import-coverage-reports— SonarQube がカバレッジを計算することはありません。インポートしないと、条件の評価対象がなくなりますscan-exclude-narrowly—sonar.exclusionsはすべてのメトリクスの分母を変えます。sonar.cpd.exclusionsを優先してくださいscan-name-the-branch— ブランチパラメーターがない場合、すべての分析が main に公開されます
6. サーバーの実行
ops-set-host-limits-before-first-boot—vm.max_map_count=524288は、古いガイドに記載された値の 2 倍ですops-persist-data-and-skip-h2— H2 にはアップグレードパスがなく、履歴が失われると、新しいコードのベースラインがすべてリセットされます
推奨される順序
カテゴリーは重要度順に記載されています。カテゴリー 1 の誤りは計画全体を無効にし、カテゴリー 6 の誤りは起動時に明確な失敗を引き起こします。ただし、実行する順序は異なります。新規にセットアップする場合は、次の順に進めてください。
1 → 6 → 5 → 4 → 2 → 3. ライセンスで必要なことが実現できるかを確認し、サーバーを起動して、スキャナーを設定し、「新規」の定義を定め、AI Code Assurance の仕組みを適用します。そして最後にカテゴリー 3 を読みます。品質ゲートの完了を宣言する前に確認してください。緑の判定が意味をなさない場合がある理由の一覧だからです。
使い方
各判断が必要になったら、該当するリファレンスファイルを読んでください。各ルールでは、修正対象となる誤ったデフォルトを示し、標準的な設定を説明しています。