コードのレビュー、監査、健全性確認は、通常、別途リンターを実行し、チェックリストを読み、数十ファイルにわたってQt固有のパターンを手動で検証するという作業を伴います。QtコードレビュースキルはAIエージェントを使ってコードレビューフェーズの一部を自動化します。AIエージェントが決定論的なリンターを実行し、続いて6つの並列深層分析エージェントを起動して実際の問題とその対策を数分で提示するため、開発者はすべてのファイルを手動で精査する手間を省けます。
これらのレビュースキルの基本的な考え方はシンプルです。リンターは権威ある情報源であり、エージェントがその判断を覆すことはありません。信頼度スコアが80/100を超えた指摘のみが確定済みの問題として報告され、スキルは読み取り専用でコードを変更しません。
Qt C++レビュースキルはQt6のC++ソースファイルとヘッダーを対象とします。QMLレビュースキルはQt6のQMLファイルを対象とし、型レベルのチェックにシステムのqmllintをオプションで呼び出すこともできます。どちらのスキルも単一コミット、ディレクトリ、またはプロジェクト全体に対して動作し、同じ3フェーズ分析アーキテクチャを共有しています。
どちらのスキルもQt6ソースを対象とします。C++レビュースキルは.cpp、.h、.hppファイルを処理し、QMLレビュースキルは.qmlファイルを処理してオプションでシステムのqmllintによる型レベルチェックを呼び出します。どちらも単一コミット、ディレクトリ、またはプロジェクト全体をレビューでき、同じ3フェーズパイプラインを共有しています。
Qtコードレビュースキルは、開発者がコードのreview、check、audit、sanity-checkを依頼したとき、またはコミット前にレビューを促されたときにAIエージェントが使用します。「変更内容をレビューして」「このモジュールを監査して」「プッシュ前に確認して」「コードレビュー」といった表現で起動します。また、スコープが狭いか(diffや特定コミットのみ)広いか(ディレクトリ全体やコードベース全体)を自動判断し、対象範囲を適切に調整します。
起動後、スキルは本来であれば開発者が個別にリンターを実行し、チェックリストを読み、数十ファイルにわたってQt固有のパターンを手動で検討するようなワークフローを引き受けます。各ステップで行われる処理を以下に説明します。
スキルはまずレビュー対象を決定します。「このコミット」と指定された場合はgit diff HEAD~1..HEADを実行し、「自分の変更」と指定された場合はステージ済み・未ステージのdiffを合算します。いずれの場合も、変更行と前後±50行のコンテキストをレビュー対象とし、変更行内の問題のみを報告します。ファイル、ディレクトリ、またはプロジェクト全体が指定された場合は、対象スコープ内のすべての.cpp、.h、.hppファイル(C++スキル)またはすべての.qmlファイル(QMLスキル)を検索します。
スコープ内のすべてのファイルに対してシングルパスのPythonリンターが実行されます。C++リンターは、インクルード順序、非推奨クラスの使用、アンチパターン、QAbstractItemModelのコントラクト違反、エラーハンドリング、ライフサイクル、API命名、ヘッダー、タイムアウト、条件分岐、値クラスの衛生、三項演算子のスタイルなど、60以上の機械的に検証可能なルールをカバーしています。
QMLリンターは、インポート順序、属性順序、プロパティバインディング、レイアウトとアンカー、Loaderパターン、デリゲートの安全性、状態、画像読み込み、パフォーマンスのアンチパターン、スタイル規約、シグナルハンドラーの構文、エラーとセキュリティのパターン(ハードコードされたhttp://、非移植パスなど)、JavaScriptスタイルを含む47以上のチェックをカバーしています。どちらのリンターも決定論的かつ権威ある情報源であり、その出力は次のステップに直接渡され、エージェントが再審議することはありません。
PythonリンターのあとでQMLスキルはシステムのqmllintがPATH上で利用可能な場合、オプションでJSON出力付きで実行します。qmllintは未解決の型、互換性のないプロパティ代入、エイリアスのサイクルといった型レベルチェックを権威をもって処理し、一方でPythonリンターはqmllintが検出しないスタイル、順序、パフォーマンスパターンをカバーします。両者の出力はマージされ、重複が除去されます。
リンターの出力をコンテキストとして、6つの専門エージェントが並列で起動します。各エージェントは明確なスコープと専用のチェックリストを持ち、リンターがすでにフラグを立てた内容と重複しません。
Qt C++スキルのエージェントは以下の領域をカバーします。
QAbstractItemModelのシグナルプロトコル、ロールシステム、インデックスの有効性、プロキシモデルの正確性QObjectアクセス、ミューテックスの整合性、ワーカースレッドからのシグナル送出noexceptの正確性QFile、QJsonDocument、QNetworkReply、SSL、ユーザー入力に対するエラーチェックの欠落QMLスキルの6つのエージェントは以下の領域をカバーします。
readonly宣言の欠落、pragma ComponentBehavior: BoundのカバレッジPropertyChangesの正確性、トランジションのカバレッジ、StateGroupの使用、Qt5→6移行パターン(Binding.restoreMode、Connectionsハンドラー構文、QtGraphicalEffects→MultiEffect)MouseArea対ポインターハンドラー、デリゲート内の親nullチェック、再利用可能コンポーネントのサイジングスキルはリンターとエージェントの出力をすべてマージし、ファイルと行レベルで重複を除去して信頼度スコアを適用します。80/100の信頼度しきい値を超えた指摘のみが確定済みの問題として報告されます。60〜79の指摘は調査対象として別セクションに表示され、レポート全体で最大10件に制限されます。60未満は抑制されます。確定済みの各指摘には、ファイルと行番号、ルールカテゴリ、問題の説明、および具体的な対策が含まれ、コードパッチではなく文章で記述されます。
このスキルは従来の静的・動的解析ツールの代替ではありません。コンポーネント境界、レイヤリング、依存グラフの健全性を検証するアーキテクチャ検証には、ファイル単位のリンティングやエージェントレビューを超えた専用ツールと人間の判断が必要です。同様に、既知の脆弱性パターンのセキュリティスキャン、CVEマッチングによる依存関係チェック、サプライチェーン分析は、専用のセキュリティレビュースキルまたは外部スキャナーで処理する必要があります。これらはQtコードレビュースキルを補完するものであり、代替ではなく併用して使用してください。
分析はレビューセッション内でエージェントが読み取れる範囲に限定されます。クロスリポジトリの依存関係、生成されたコード、ソースツリーに存在しないサードパーティヘッダーは分析されません。リンク時やランタイムにのみ現れる問題、つまり特定の入力シーケンスによってトリガーされる未定義動作、特定のスレッドインターリーブを要する競合状態、ランタイムに動的に接続されたQtシグナルなどは静的レビューのスコープ外です。
信頼度しきい値によって不確実な指摘は抑制されるため、一部の実際の問題はレポートに現れません。セーフティクリティカルまたはセキュリティ上重要なコードをレビューする開発者は、レポートを上限ではなく下限として扱い、手動レビューと組み合わせてください。
Qt C++コードレビュースキルはバンドルされたリンターの実行にPython 3が必要ですが、標準ライブラリ以外の追加パッケージは不要です。diff範囲のレビューにはGitがPATH上で利用可能である必要があります。スキルはQt6のC++コードベースを対象としており、Qt5プロジェクトでもほぼ動作しますが、一部のチェックはQt6固有です。
QMLコードレビュースキルもリンターにPython 3が必要です。オプションとして、Qt6インストールのqmllintにより型レベルチェックが有効になります。スキルは$QT_HOST_PATH/bin/またはシステムPATHから自動検出し、見つからない場合はスキップします。
本スキルはClaude Code CLI、Claude Desktop、およびVS Code上のGitHub Copilotでテスト済みです。Claude Sonnet 4.6、GPT 5.4、Gemini 3.1 Proで良好な結果が得られています。これらのテスト済みモデル以外でも、高度なタスクには常に最新のフロンティアモデルの使用を推奨します。
QtエージェントスキルはGitHubリポジトリから入手できます。
https://github.com/TheQtCompanyRnD/agent-skills
または、Claudeのマーケットプレイスからプラグインとして公式Qtコードレビュースキルを直接インストールすることもできます(「qt-development」で検索してください)。