.agents/skills/operating-qt/SKILL.md
SonarQube によるコード品質管理を支援。ローカル SonarQube のセットアップ、スキャン実行、Quality Gate 確認、イシュー分析、メトリクス確認を行う。「SonarQube をセットアップしたい」「コード品質を分析したい」「Quality Gate を確認したい」「静的解析を実行したい」「SonarQube のイシューを確認したい」「コードの重複を調べたい」「カバレッジを SonarQube で見たい」といった場面で発動する。CI/CD パイプラインの品質ゲートチェックにも使用する。
npx skillsauth add k2works/getting-started-algorithm operating-qtInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
SonarQube を使った静的コード解析環境の構築と運用を支援する。SonarQube は Bug・Vulnerability・Code Smell・重複コード・カバレッジを一元的に可視化し、Quality Gate で品質基準を自動判定する。コード品質を継続的に計測することで、技術的負債の蓄積を早期に検知できる。
@docs/reference/SonarQubeローカル環境セットアップ手順書.md にセットアップの詳細手順がある。環境構築時はこのドキュメントを参照する。
vm.max_map_count=524288 が設定済み| コンポーネント | コンテナ名 | ポート | イメージ |
|--------------|-----------|-------|---------|
| SonarQube | sonarqube | 9000 | sonarqube:community |
| PostgreSQL | sonarqube-db | 内部 | postgres:16-alpine |
Docker Compose ファイルは ops/docker/sonarqube-local/docker-compose.yml に配置する。
既存の ops/scripts/sonar_local.js で以下のタスクが利用可能。
セットアップ:
npx gulp sonar-local:setup # 初回セットアップ(Docker Compose 配置→起動→ヘルスチェック)
コンテナ操作:
npx gulp sonar-local:start # 起動
npx gulp sonar-local:stop # 停止
npx gulp sonar-local:restart # 再起動
npx gulp sonar-local:status # 状態確認
npx gulp sonar-local:logs # ログ表示
npx gulp sonar-local:open # ダッシュボードをブラウザで開く
スキャン・分析:
npx gulp sonar-local:scan # 全プロジェクトのスキャン実行
npx gulp sonar-local:gate # Quality Gate ステータス確認
npx gulp sonar-local:issues # メトリクス・イシュー・重複コード詳細
npx gulp sonar-local:check # スキャン → Quality Gate の一連フロー
管理:
npx gulp sonar-local:clean # 環境完全削除(データ含む)
npx gulp sonar-local:help # ヘルプ表示
プロジェクトルートに sonarqube.config.json を配置して複数プロジェクトのスキャンを設定する。
{
"projects": [
{
"name": "backend",
"label": "Backend",
"projectKey": "fleur-memoire-backend",
"scanType": "sonar-scanner",
"srcDir": "apps/backend"
},
{
"name": "frontend",
"label": "Frontend",
"projectKey": "fleur-memoire-frontend",
"scanType": "sonar-scanner",
"srcDir": "apps/frontend"
}
]
}
scanType は sonar-scanner(Node.js)、sbt、maven、gradle に対応。
.env に以下を設定する。
| 変数 | 説明 | デフォルト |
|------|------|----------|
| LOCAL_SONAR_PORT | SonarQube ポート | 9000 |
| LOCAL_SONAR_DB_PASSWORD | DB パスワード | sonarqube_password |
| SONAR_HOST_URL | SonarQube URL | http://localhost:9000 |
| SONAR_TOKEN | 分析トークン(スキャン時必須) | — |
| SONAR_PROJECT_KEY | Quality Gate / Issues 対象キー | — |
npx gulp sonar-local:setup でコンテナを構築・起動http://localhost:9000 にアクセス(初期認証: admin / admin).env に SONAR_TOKEN=<生成したトークン> を追加sonarqube.config.json を作成(複数プロジェクト対応時)npx gulp sonar-local:scan でスキャン実行テスト戦略(@docs/design/test_strategy.md)で定義されたカバレッジ目標と SonarQube の Quality Gate を連携する。
| メトリクス | 目標 | |-----------|------| | カバレッジ | ドメイン層 90%、全体 80% | | 重複率 | 3% 未満 | | Bug | 0 件 | | Vulnerability | 0 件 | | Code Smell | 可能な限り 0 件 |
GitHub Actions で SonarQube スキャンを実行する場合は operating-cicd スキルを参照する。ローカルの SonarQube はあくまで開発中の品質確認用で、CI/CD では SonarCloud や別途ホスティングされた SonarQube を使用する。
| 症状 | 原因 | 対処 |
|------|------|------|
| コンテナ起動後すぐ停止 | vm.max_map_count 不足 | WSL2 / Docker VM で 524288 に設定 |
| ヘルスチェックがタイムアウト | メモリ不足 | Docker Desktop の RAM 割り当てを増やす |
| スキャン時 401 エラー | トークン未設定 or 無効 | .env の SONAR_TOKEN を確認 |
| DOCKER_HOST 接続エラー | 環境変数の干渉 | cleanDockerEnv() を使用(shared.js) |
operating-script — 運用スクリプト作成ガイドに準拠したスクリプト作成operating-cicd — CI/CD パイプラインでの品質ゲート連携operating-setup — 環境構築の段階的実行orchestrating-operation — 運用フェーズ全体のワークフローtools
イテレーション計画と上流設計ドキュメント群(ユーザーストーリー、ドメインモデル、データモデル、UI 設計)との整合性を検証する。「イテレーション計画を検証したい」「計画の整合性をチェックして」「イテレーション計画を作成した」「計画と設計ドキュメントの不整合を確認したい」といった場面で発動する。planning-releases でイテレーション計画を作成した直後にも積極的に使用すること。計画作成後に必ず本検証を実施することで、開発着手前にドキュメント間の不整合を検知・修正できる。
tools
プロジェクトの開発進捗を多角的に分析しレポートを生成。イテレーション達成度、技術実装状況、品質メトリクスを確認し、計画ドキュメントを自動更新する。「進捗を確認したい」「プロジェクトの状態を知りたい」「イテレーションの達成度を分析したい」「進捗ドキュメントを更新したい」といった場面で発動する。定期的な進捗可視化により、遅延や品質低下を早期に発見しプロジェクトの透明性を確保する。
testing
リリース計画を GitHub Project・Issue・Milestone に反映し一元管理。初回の一括同期から差異検出・自動同期まで対応する。「GitHub Project に同期したい」「Issue を作成したい」「計画と GitHub の差異を確認したい」「Milestone を設定したい」といった場面で発動する。計画ドキュメントを Single Source of Truth とし GitHub に自動反映することで、二重管理の手間と不整合を排除する。
development
テスト駆動開発から始めるプログラミング入門」の対話式チュートリアル。FizzBuzz を題材に TDD の Red-Green-Refactor サイクルを 14 言語で体験する。「TDD を練習したい」「FizzBuzz で TDD を学びたい」「テスト駆動開発の入門をしたい」「Java で TDD を体験したい」「Python で TDD を始めたい」「プログラミング入門チュートリアルをやりたい」「getting-start-tdd をやりたい」「TDD のハンズオンがしたい」「Red-Green-Refactor を体験したい」といった場面で発動する。TDD チュートリアルやプログラミング入門の要望があれば積極的に使用すること。