mcpField
C
configure-makefile

configure-makefile

github.com/laurigates開発5954 回インストール1 日前に更新
リポジトリ

configure-makefile について

プロジェクトの Makefile を定められた規約に照らして確認・設定するスキルです。Makefile の導入や監査を行うチーム向けで、問題の報告や修正に対応します。

主な機能

  1. 01プロジェクト種別とサービス指標の検出
  2. 02必須および条件付きターゲットの確認
  3. 03構造とコマンドの適合状況を報告
  4. 04Makefile の作成・更新
  5. 05プロジェクト規約の追跡情報を更新

活用シーン

  1. 01既存 Makefile の不足ターゲットを監査
  2. 02検出した種別に応じた Makefile の作成
  3. 03適合性の問題を自動修正

インストール

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

$npx skills add https://github.com/laurigates/claude-plugins --skill configure-makefile

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

同梱ファイルREFERENCE.md

詳細

/configure:makefile

プロジェクト標準に照らして、プロジェクトの Makefile を確認および設定します。

このスキルを使用するタイミング

このスキルを使用する場合...別の方法を使用する場合...
Make が必要なプロジェクト用に新しい Makefile を設定するときプロジェクトで Just を使用できる場合 — /configure:justfile を使用します(推奨)
既存の Makefile に標準ターゲットが不足していないか監査するとき依存関係を含む複雑なビルドルールを記述するとき — GNU Make のドキュメントを参照してください
Makefile がチームの規約(help ターゲット、PHONY、色)に従っていることを確認するときプロジェクトが言語固有のビルドシステム(cargo、go build)のみを使用しているとき
Makefile の構造に関する CI/CD 準拠チェックを実行するときMakefile から Justfile に移行するとき — 移行に対応した /configure:justfile を使用します
既存の Makefile に言語固有のビルド/テスト/lint ターゲットを追加するとき特定の Make ターゲットをデバッグするとき — make -n <target> を直接実行します

コンテキスト

  • プロジェクトルート: !pwd
  • Makefile の有無: !find . -maxdepth 1 -name 'Makefile'
  • Makefile のターゲット: !find . -maxdepth 1 -name 'Makefile' -exec grep -E '^[a-zA-Z_-]+:' {} +
  • パッケージファイル: !find . -maxdepth 1 \( -name 'package.json' -o -name 'pyproject.toml' -o -name 'Cargo.toml' -o -name 'go.mod' \)
  • Docker ファイル: !find . -maxdepth 1 \( -name 'Dockerfile' -o -name 'docker-compose.yml' -o -name 'compose.yml' \)
  • サーバーファイル: !find . -path '*/src/*' -maxdepth 2 \( -name 'server.*' -o -name 'main.*' \)

パラメーター

$ARGUMENTS から解析します。

  • --check-only: 変更せずに Makefile の準拠状況を報告します
  • --fix: 確認を求めずに修正を自動適用します

必須の Makefile ターゲット: help、test、build、clean、lint

実行

この Makefile 準拠チェックを実行します。

ステップ 1: プロジェクトの種類を検出する

コンテキストの値を読み取り、次の順序でプロジェクトの種類を判定します。

  1. Python: pyproject.toml または requirements.txt が存在する
  2. Node: package.json が存在する
  3. Rust: Cargo.toml が存在する
  4. Go: go.mod が存在する
  5. Generic: 上記のいずれも存在しない

サービスを示す要素(起動/停止が必要)を確認します。

  • docker-compose.yml または compose.yml がある -> Docker Compose サービス
  • Dockerfile と HTTP サーバーコードがある -> コンテナーサービス
  • src/server.* または src/main.* がある -> アプリケーションサービス
ステップ 2: 既存の Makefile ターゲットを分析する

Makefile が存在する場合、必須ターゲットを確認します。

すべてのプロジェクトに必須のターゲット:

ターゲット目的
help利用可能なターゲットを表示する(デフォルトのゴール)
testテストスイートを実行する
buildプロジェクトの成果物をビルドする
clean一時ファイルとビルド成果物を削除する
lintリンターを実行する

追加ターゲット(コンテキストに応じて必要):

ターゲット必要となる条件
startプロジェクトに実行可能なサービスがある場合
stopプロジェクトにバックグラウンドサービスがある場合
formatプロジェクトで自動フォーマッターを使用する場合
ステップ 3: 準拠チェックを実行する
チェック標準重大度
ファイルの有無Makefile が存在するない場合は FAIL
デフォルトゴール.DEFAULT_GOAL := helpない場合は WARN
PHONY 宣言すべてのターゲットに .PHONY を指定する不足している場合は WARN
色付き出力色の変数が定義されているINFO
Help ターゲットコメントから自動生成されるない場合は WARN
言語固有の設定コマンドがプロジェクトの種類に一致する一致しない場合は FAIL
ステップ 4: 準拠レポートを生成する

次の内容を示すレポートを出力します。

  • プロジェクトの種類(検出結果)
  • 各ターゲットの PASS/FAIL 状態と使用したコマンド
  • Makefile の構造チェック(デフォルトゴール、PHONY、色、help)
  • 不足しているターゲットの一覧
  • 問題の件数

--check-only が設定されている場合は、ここで終了します。

ステップ 5:Makefile を作成または更新する(--fix を指定した場合、またはユーザーが確認した場合)
  1. Makefile がない場合:検出されたプロジェクトタイプに応じて、標準テンプレートから作成します
  2. ターゲットが不足している場合:言語に適したコマンドを使用してターゲットを追加します
  3. デフォルト設定が不足している場合:.DEFAULT_GOAL、.PHONY、カラー変数を追加します
  4. ヘルプがない場合:awk によるコメント解析を使用して、自動生成されるヘルプターゲットを追加します

以下の言語別コマンドを使用します。

Python(uv ベース):

  • lint:@uv run ruff check .
  • format:@uv run ruff format .
  • test:@uv run pytest
  • build:@docker build -t {{PROJECT_NAME}} .
  • clean:@find . -type f -name "*.pyc" -delete + キャッシュディレクトリを削除

Node.js:

  • lint:@npm run lint
  • format:@npm run format
  • test:@npm test
  • build:@npm run build
  • clean:@rm -rf node_modules/ dist/ .next/ .turbo/

Rust:

  • lint:@cargo clippy -- -D warnings
  • format:@cargo fmt
  • test:@cargo nextest run
  • build:@cargo build --release
  • clean:@cargo clean

Go:

  • lint:@golangci-lint run
  • format:@gofmt -s -w .
  • test:@go test ./...
  • build:@go build -o bin/{{PROJECT_NAME}}
  • clean:@rm -rf bin/ dist/ + @go clean
ステップ 6:標準規約の追跡情報を更新する

.project-standards.yaml を更新します。

components:
  makefile: "2025.1"
ステップ 7:最終レポートを出力する

適用した変更と追加したターゲットの概要を出力し、確認のために make help の実行を提案します。

汎用 Makefile テンプレートの構成については、REFERENCE.md を参照してください。

エージェント向けの最適化

コンテキストコマンド
コンプライアンスを簡易チェック/configure:makefile --check-only
すべての問題を自動修正/configure:makefile --fix
既存のターゲットを一覧表示grep -E '^[a-zA-Z_-]+:' Makefile
ターゲットをドライランmake -n <target>
デフォルトのゴールを表示make -p | grep '.DEFAULT_GOAL'

フラグ

フラグ説明
--check-only修正を提案せずに状態を報告します
--fix修正を自動的に適用します

例

# Check current Makefile compliance
/configure:makefile --check-only

# Create/update Makefile for Python project
/configure:makefile --fix

# Check compliance and prompt for fixes
/configure:makefile

関連項目

  • /configure:all - すべてのコンプライアンスチェックを実行します
  • /configure:workflows - GitHub Actions ワークフロー
  • /configure:dockerfile - Docker の設定

コメント