mcpField
S
sonarqube-ai-slop-gate

sonarqube-ai-slop-gate

github.com/pproencaテスト・品質21862 回インストール11 週間前に更新
リポジトリ

sonarqube-ai-slop-gate について

SonarQube AI Slop Gate は、AI 生成コードをゲートするために SonarQube Server をセルフホストするチーム向けの設定リファレンススキルです。エディション、AI Code Assurance、スキャナー設定に加え、問題の見落としや意図しない合格につながる既定動作を扱います。

主な機能

  1. 01エディションとリリース周期の説明
  2. 02AI Code Assurance の設定
  3. 03品質ゲートの測定上の盲点を特定
  4. 04新規コードとブランチの設定
  5. 05スキャナー属性とカバレッジ取り込み
  6. 06サーバー運用とデータ永続化

活用シーン

  1. 01セルフホスト版 SonarQube Server の構築やレビュー
  2. 02新規コード向け品質ゲートの設定
  3. 03CI にスキャンを組み込み不合格のマージを阻止
  4. 04問題の見落としや予期しない合格の調査

インストール

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

$npx skills add https://github.com/pproenca/dot-skills --skill sonarqube-ai-slop-gate

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

同梱ファイル

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

AGENTS.md
metadata.json
assets/templates/
_template.md
references/
_sections.md
aica-do-not-rely-on-autodetection.md
aica-flag-projects-through-the-api.md
aica-qualify-the-gate-explicitly.md
aica-the-builtin-ai-gate-is-lenient.md
aica-use-the-agentic-profile.md
blind-fudge-factor-skips-small-changes.md
blind-java-duplication-threshold-is-fixed.md
blind-no-new-code-complexity-metric.md
blind-pull-requests-hide-file-level-issues.md
blind-suppression-comments-turn-the-gate-green.md
blind-test-code-escapes-duplication.md
newcode-pick-the-definition-deliberately.md
newcode-shallow-clones-break-blame.md
ops-persist-data-and-skip-h2.md
ops-set-host-limits-before-first-boot.md
plat-ai-features-are-edition-gated.md
plat-community-build-cannot-see-pull-requests.md
plat-versions-are-calendar-based.md
scan-declare-test-sources.md
scan-exclude-narrowly.md
scan-host-url-defaults-to-the-cloud.md
scan-import-coverage-reports.md
scan-name-the-branch.md
scan-use-project-analysis-tokens.md
scan-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 機能
2AI Code Assuranceaica-プロジェクトのフラグ、ゲートの適格性、非推奨の自動検出、エージェント型プロファイル
3ゲートが測定しないものblind-抑制コメント、調整用の余裕、テストコードの除外、欠落したメトリクス、プルリクエストの盲点
4新規コードと Blamenewcode-完全なクローンの要件、ブランチモデルに合った定義の選択
5スキャナーの設定scan-安全側に倒れないデフォルト設定のプロパティ — ホスト URL、ゲートの待機、テストの範囲、カバレッジ、除外設定
6サーバーの実行ops-初回起動前のカーネル制限、アップグレード後も維持されるデータベースとボリューム

クイックリファレンス

1. エディションとバージョンの実態
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. ゲートで測定されないもの
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. サーバーの実行

推奨される順序

カテゴリーは重要度順に記載されています。カテゴリー 1 の誤りは計画全体を無効にし、カテゴリー 6 の誤りは起動時に明確な失敗を引き起こします。ただし、実行する順序は異なります。新規にセットアップする場合は、次の順に進めてください。

1 → 6 → 5 → 4 → 2 → 3. ライセンスで必要なことが実現できるかを確認し、サーバーを起動して、スキャナーを設定し、「新規」の定義を定め、AI Code Assurance の仕組みを適用します。そして最後にカテゴリー 3 を読みます。品質ゲートの完了を宣言する前に確認してください。緑の判定が意味をなさない場合がある理由の一覧だからです。

使い方

各判断が必要になったら、該当するリファレンスファイルを読んでください。各ルールでは、修正対象となる誤ったデフォルトを示し、標準的な設定を説明しています。

コメント