mcpField
B
build-project

build-project

github.com/seqraセキュリティ17058 回インストール3 日前に更新
リポジトリ

build-project について

build-projectは、対象コードベースからOpenTaintのプロジェクトモデルを作成するスキルです。ビルド方式を特定してプロジェクトをコンパイルし、生成したモデルと依存関係を確認します。

主な機能

  1. 01プロジェクトのビルド方式を特定
  2. 02可能な範囲で無効なモジュールを有効化
  3. 03opentaint compileでモデルを作成
  4. 04必要に応じて手動でモデルを作成
  5. 05モデルのスコープと依存関係を確認

活用シーン

  1. 01OpenTaint解析用にコードベースを準備
  2. 02プロジェクト変更後にモデルを再構築

インストール

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

$npx skills add https://github.com/seqra/opentaint --skill build-project

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

同梱ファイルreferences/java.md

詳細

スキル:プロジェクトのビルド

対象プロジェクトを opentaint のプロジェクトモデルに変換します。プロジェクトをビルドし、必要に応じて依存関係を解決します。ビルドツール、ツールチェーン、スコープフラグは言語ごとに異なります。プロジェクトのビルドファイルから対象言語を特定し、対応する references/<language>.md を読み、以下の手順に対応する番号付きのステップに従ってください。

入力

呼び出し元から提供されます。省略された場合はデフォルト値を使用してください。必須の入力が欠けており、妥当なデフォルト値もない場合に限り、確認してください。

  • project-root(任意)— 対象プロジェクトのルートです。Opentaint はすべての解析成果物を固定の <project-root>/.opentaint/ ディレクトリ配下に保持するため、以下のすべての .opentaint/... パスはそこを基準に解決されます。デフォルト:現在のディレクトリ
  • build-hints(任意)— 必要なツールチェーンのバージョン、有効にするモジュールやプロファイル、プロジェクト固有のビルド方法など、このプロジェクトのビルドに関する既知の情報です。

ワークフロー

1. 出力をリセットする

古いモデルのファイルが新しいモデルに混入しないよう、既存の .opentaint/project を先に削除します。

2. ビルド方法を特定する

プロジェクトのビルド方法、つまり使用するビルドツール、またはコンパイル済みの成果物が提供されているかどうかを特定します。

3. すべてのモジュールを有効にする

プロジェクトで無効になっているモジュールをすべて再び有効にし、そのコードをモデルに含めてからビルドします。無効なモジュールを有効にするのは設定の編集であり、ソースの変更ではないため、モデルは引き続き現在のコミットを表します。妥当な範囲で試しても特定のモジュールをコンパイルできない場合に限り、そのモジュールのみを除外します。有効にしたモジュールと、除外したモジュール(あれば)を報告してください。

4. Autobuilder — 主な方法
opentaint compile <project-root> -o .opentaint/project

opentaint compile はプロジェクト本来のビルドを実行するため、依存関係グラフ全体と実際のモジュールリアクターを自動的に解決します。依存関係やスコープを手作業で列挙する必要はありません。まず、プロジェクトに必要なビルドツールチェーンを設定してください。ほとんどの場合、この方法を使用します。

フィードバックループ:ここでの失敗は、ほぼ常に修正可能なビルドの問題であり、この方法を断念する理由にはなりません。また、autobuilder のラッパーメッセージは簡潔なので、それだけで修正可能かどうか判断しないでください。プロジェクト本来のビルドを直接実行して実際のエラーを明らかにし、修正してから opentaint compile を再実行してください。

5. 手動ビルド + opentaint project — 最終手段

プロジェクト本来のビルドをどうしても通せない場合に限り、成果物を手動でビルドしてから、opentaint project を使って解析対象をプロジェクトのコードに限定したモデルを作成します。どのコードがプロジェクトに属し、どのコードがサードパーティーパッケージに属するかをアナライザーに示す必要があります。スコープのルートは、ビルド設定やフォルダー構成ではなく、コードで実際に宣言されている内容に基づいて指定してください。メソッドの最終リストを注意深く確認してください。すべてのサードパーティーパッケージを列挙することが非常に重要です。

6. 検証する

.opentaint/project/project.yaml が存在し、空ではなく、モジュールとスコープのエントリーがプロジェクト自身のコードで宣言されているすべてのルートを網羅していることを確認します。複数モジュールのプロジェクトの場合は、想定した数のモジュールが含まれていることを確認してください。また、.opentaint/project/dependencies の依存関係が正しく解決され、ダウンロードされていることを確認します。

7. エスカレーションする

約3回修正してもビルドが収束しない場合は、収束しなかったことを報告し、オーケストレーターが対応できるようビルドの段階を保留のままにします。

出力

実施内容を簡潔に報告します。

成果物:
  • .opentaint/project/ — opentaint のプロジェクトモデル
概要:
  • モデルのパス、および複数モジュールのプロジェクトの場合は対象となるモジュール数
  • 選択したリファレンスで定義されている言語固有のビルド項目と、ビルド成功時に使用した値
  • モデルの作成方法(autobuilder または手動)、およびビルドのために変更したビルド設定(モジュールの再有効化など)
  • opentaint project を使用した場合は、正確なビルドコマンドと引数
  • ビルドが収束しなかった場合は、阻害しているエラーと試した修正を添えて、保留のままにしたこと

制約

  • .opentaint/project 配下にプロジェクトモデルのみを書き込み、ほかのファイルは作成しないでください。このスキルは追跡状態を書き込まず、「出力」に従って情報を返すだけです。
  • モデルは opentaint によって生成されます。project.yaml やモデルディレクトリ配下のファイルを手動で編集しないでください。解析対象を変更するには、コマンドを修正して再ビルドしてください。

コメント