configure-makefile について
プロジェクトの Makefile を定められた規約に照らして確認・設定するスキルです。Makefile の導入や監査を行うチーム向けで、問題の報告や修正に対応します。
主な機能
- 01プロジェクト種別とサービス指標の検出
- 02必須および条件付きターゲットの確認
- 03構造とコマンドの適合状況を報告
- 04Makefile の作成・更新
- 05プロジェクト規約の追跡情報を更新
活用シーン
- 01既存 Makefile の不足ターゲットを監査
- 02検出した種別に応じた Makefile の作成
- 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: プロジェクトの種類を検出する
コンテキストの値を読み取り、次の順序でプロジェクトの種類を判定します。
- Python:
pyproject.tomlまたはrequirements.txtが存在する - Node:
package.jsonが存在する - Rust:
Cargo.tomlが存在する - Go:
go.modが存在する - 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 を指定した場合、またはユーザーが確認した場合)
- Makefile がない場合:検出されたプロジェクトタイプに応じて、標準テンプレートから作成します
- ターゲットが不足している場合:言語に適したコマンドを使用してターゲットを追加します
- デフォルト設定が不足している場合:
.DEFAULT_GOAL、.PHONY、カラー変数を追加します - ヘルプがない場合:awk によるコメント解析を使用して、自動生成されるヘルプターゲットを追加します
以下の言語別コマンドを使用します。
Python(uv ベース):
lint:@uv run ruff check .format:@uv run ruff format .test:@uv run pytestbuild:@docker build -t {{PROJECT_NAME}} .clean:@find . -type f -name "*.pyc" -delete+ キャッシュディレクトリを削除
Node.js:
lint:@npm run lintformat:@npm run formattest:@npm testbuild:@npm run buildclean:@rm -rf node_modules/ dist/ .next/ .turbo/
Rust:
lint:@cargo clippy -- -D warningsformat:@cargo fmttest:@cargo nextest runbuild:@cargo build --releaseclean:@cargo clean
Go:
lint:@golangci-lint runformat:@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 の設定
コメント
Markdown 対応