makefile-generation について
makefile-generation は、Python、Rust、TypeScript プロジェクト向けに標準的な開発ターゲットを含む Makefile を作成または更新するスキルです。言語を判定し、生成したターゲットを検証します。
主な機能
- 01Python、Rust、TypeScript の判定
- 02言語別の標準ターゲット生成
- 03ビルドと品質チェックのコマンド追加
- 04make help とドライランでの検証
活用シーン
- 01プロジェクトへの Makefile 追加
- 02開発コマンドの標準化
- 03ビルド自動化ターゲットの更新
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ athola/ claude-night-market --skill makefile-generationインストール後、Claude Code で/makefile-generationを入力して読み込まれたか確認します。
詳細
Makefile 生成スキル
Python、Rust、または TypeScript プロジェクト向けに、標準的な開発用ターゲットを備えた Makefile を生成します。
使用する場面
- Makefile がないプロジェクトに Makefile が必要な場合
- 新しいターゲットを追加して Makefile を更新する場合
- プロジェクト間でビルド自動化を標準化する場合
- 開発ワークフロー用のコマンドを設定する場合
- 言語固有のビルドターゲットを作成する場合
使用しない場面
- Makefile がすでに存在し、最新の状態である場合
- プロジェクトで別のビルドシステムのみを使用している場合(例:npm scripts のみ)
- 標準的なパターンに当てはまらない複雑なカスタムビルドプロセスの場合
- 既存の Makefile の更新には、代わりに
/attune:upgrade-projectを使用してください
標準ターゲット
Python Makefile
一般的なターゲット:
help- 使用可能なターゲットを表示install- uv で依存関係をインストールlint- ruff でリントを実行format- ruff でコードをフォーマットtypecheck- mypy で型チェックを実行test- pytest を実行test-coverage- カバレッジレポート付きでテストを実行check-all- すべての品質チェックを実行clean- 生成ファイルとキャッシュを削除build- 配布パッケージをビルドpublish- PyPI に公開
Rust Makefile
一般的なターゲット:
help- 使用可能なターゲットを表示fmt- rustfmt でフォーマットlint- clippy を実行check- Cargo のチェックを実行test- テストを実行build- リリースバイナリをビルドclean- ビルド成果物をクリーンアップ
TypeScript Makefile
一般的なターゲット:
help- 使用可能なターゲットを表示install- npm の依存関係をインストールlint- ESLint を実行format- Prettier でフォーマットtypecheck- tsc で型チェックを実行test- Jest のテストを実行build- 本番用にビルドdev- 開発サーバーを起動
ワークフロー
1. 言語を検出する
# Check for language indicators
if [ -f "pyproject.toml" ]; then
LANGUAGE="python"
elif [ -f "Cargo.toml" ]; then
LANGUAGE="rust"
elif [ -f "package.json" ]; then
LANGUAGE="typescript"
fi
検証: コマンドに --help フラグを付けて実行し、使用可能であることを確認します。
2. テンプレートを読み込む
from pathlib import Path
template_path = Path("plugins/attune/templates") / language / "Makefile.template"
検証: コマンドに --help フラグを付けて実行し、使用可能であることを確認します。
3. プロジェクト情報を収集する
metadata = {
"PROJECT_NAME": "my-project",
"PROJECT_MODULE": "my_project",
"PYTHON_VERSION": "3.10",
}
検証: コマンドに --help フラグを付けて実行し、使用可能であることを確認します。
4. テンプレートをレンダリングする
from template_engine import TemplateEngine
engine = TemplateEngine(metadata)
engine.render_file(template_path, Path("Makefile"))
検証: コマンドに --help フラグを付けて実行し、使用可能であることを確認します。
5. 検証する
make help
検証: make --dry-run を実行し、ビルド設定を確認します。
カスタマイズ
ユーザーは、生成されたターゲットの後にカスタムターゲットを追加できます。
# ============================================================================
# CUSTOM TARGETS
# ============================================================================
deploy: build ## Deploy to production
./scripts/deploy.sh
検証: コマンドに --help フラグを付けて実行し、使用可能であることを確認します。
関連スキル
Skill(attune:project-init)- プロジェクトの完全な初期化/abstract:make-dogfoodコマンド - Makefile のテストと検証
完了条件
- プロジェクトのルートに
Makefileが作成され、最低限helpターゲットと、検出された言語の標準ターゲットがすべて含まれている(Python:install/lint/format/typecheck/test、Rust:fmt/lint/check/test/build、TypeScript:install/lint/format/typecheck/test/build)。 -
make helpがエラーなく実行され、生成されたすべてのターゲットと説明を一覧表示する。 - 各標準ターゲットに対して
make --dry-run <target>が終了コード 0 で終了し、レシピの構文が有効であることを確認できる。 - 言語が検出されない場合(
pyproject.toml、Cargo.toml、またはpackage.jsonがない場合)、スキルは検出に失敗したことを報告して処理を停止し、空の Makefile を生成しない。
コメント
Markdown 対応