mcpField
C
code-checker

code-checker

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

code-checker について

code-checkerは、C/C++コードの保守性を調べる開発者向けのスキルです。大きすぎるファイルや関数をスキャンし、ディレクトリモジュール間の循環依存を検出します。

主な機能

  1. 01ファイルと関数の規模を分析
  2. 02モジュール間の循環依存を検出
  3. 03GNビルドファイルのインクルードパスを解析
  4. 04しきい値設定とレポート出力
  5. 05リファクタリングの参考資料

活用シーン

  1. 01大きすぎるソースファイルや関数の特定
  2. 02モジュール間の循環インクルードの確認
  3. 03コードチェックレポートの作成

インストール

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

$npx skills add https://github.com/openharmonyinsight/openharmony-skills --skill code-checker

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

同梱ファイル

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

references/
circular-deps.md
refactoring.md
scripts/
circular_header_check.py
scan_cpp_size.py

詳細

C/C++ コードチェッカー

C/C++ コードを分析し、保守性に関する問題を特定します。対象は、極端に大きなファイルや関数、モジュール間の循環依存です。

ワークフロー

  1. スキャン対象を特定する - ユーザーがファイルやディレクトリを指定していない場合は、「スキャンするディレクトリまたはファイルを指定してください」と尋ねます。
  2. チェックの種類を決める - 実行するチェックを尋ねるか、推測します。
    • ファイル/関数のサイズ分析
    • 循環依存の検出
    • 両方(詳細分析のデフォルト)
  3. スキャンを実行する - 適切なスクリプトを実行します。
  4. 結果を提示する - レポートを表示し、主な問題を要約します。
  5. サポートを申し出る - リファクタリングのサポートが必要か尋ねます。

サイズ分析

極端に大きなファイルや関数をスキャンします。

scripts/scan_cpp_size.py <path> [options]

オプション:

  • -o, --output <file> - レポートをファイルに出力します
  • -f, --file-threshold <n> - 大きなファイルと判定するしきい値(デフォルト:実効行数 2000 行)
  • -F, --function-threshold <n> - 大きな関数と判定するしきい値(デフォルト:実効行数 50 行)

例:

scripts/scan_cpp_size.py ./src --file-threshold 1500 --function-threshold 40 -o size_report.md

循環依存の検出

ディレクトリモジュール間の循環依存を検出します。

scripts/circular_header_check.py <path> [options]

オプション:

  • -o, --output <file> - レポートをファイルに出力します
  • -v, --verbose - 詳細な出力を表示します
  • --no-gn - GN ビルドファイルの解析をスキップします

例:

scripts/circular_header_check.py ./src -o circular_report.md

循環依存チェッカーは、以下を実行します。

  • GN ビルドファイル(BUILD.gn、*.gni)を解析してインクルードパスを取得します
  • ファイルをディレクトリモジュールごとにグループ化します(src/ と include/ は同じコンポーネントとして扱います)
  • モジュール A がモジュール B のファイルをインクルードし、モジュール B がモジュール A のファイルをインクルードするケースを検出します

問題が見つかった場合

問題が見つかった場合:

  1. 影響度に基づいて優先順位を付ける - 最も大きな問題から取り組みます
  2. 背景を把握する - コードを読み、その責務を理解します
  3. ユーザーに尋ねる - 「このリファクタリングをお手伝いしましょうか?」

リファクタリングの指針

問題の種類参考資料
大きな関数references/refactoring.md
循環依存references/circular-deps.md を参照してください

「大きい」と見なされる基準

カテゴリデフォルトのしきい値理由
ファイル実効行数 2000 行移動や理解が難しくなります
関数実効行数 50 行認知的な把握の範囲を超え、テストが難しくなります

実効行数には、空行、コメント、プリプロセッサディレクティブは含まれません。

スキャン対象のファイル拡張子

.c、.cpp、.cc、.cxx、.c++、.h、.hpp、.hh、.hxx、.h++、.inl、.inc

コメント