Claude-skill-registry auto-build
プロジェクトタイプを自動検出してビルドを実行するスキル。コード変更後にビルドを提案、エラー発生時は修正案を提示。Node.js、Rust、Python、Go、Makefileプロジェクトに対応。
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/auto-build" ~/.claude/skills/majiayu000-claude-skill-registry-auto-build && rm -rf "$T"
manifest:
skills/data/auto-build/SKILL.mdsource content
自動ビルドスキル
プロジェクトの設定を自動検出し、適切なビルドコマンドを実行します。
自動提案のタイミング
| 状況 | 提案内容 |
|---|---|
| コード変更後 | 「ビルドしますか?」 |
| 依存関係追加後 | 「依存関係をインストールしてビルドしますか?」 |
| 設定ファイル変更後 | 「クリーンビルドを実行しますか?」 |
| ビルドエラー発生時 | 「エラーを修正してリビルドしますか?」 |
| テスト前 | 「先にビルドを確認しますか?」 |
プロジェクトタイプの自動検出
| ファイル | プロジェクトタイプ | パッケージマネージャー |
|---|---|---|
| Node.js | npm/yarn/pnpm |
| Rust | cargo |
| Python | pip/poetry |
| Go | go |
| Java (Maven) | mvn |
| Java (Gradle) | gradle |
| Make | make |
パッケージマネージャーの検出(Node.js)
# 優先順位 if [ -f "pnpm-lock.yaml" ]; then PM="pnpm" elif [ -f "yarn.lock" ]; then PM="yarn" elif [ -f "bun.lockb" ]; then PM="bun" else PM="npm" fi
ビルドコマンド
Node.js プロジェクト
# 依存関係インストール(必要な場合) $PM install # 標準ビルド $PM run build # プロダクションビルド $PM run build:prod # または NODE_ENV=production $PM run build # クリーンビルド rm -rf dist node_modules/.cache && $PM run build
Rust プロジェクト
# 依存関係解決 cargo fetch # デバッグビルド cargo build # リリースビルド cargo build --release # クリーンビルド cargo clean && cargo build --release
Python プロジェクト
# 仮想環境(pyproject.tomlの場合) poetry install # または pip install -e . # ビルド python -m build # wheel作成 pip wheel .
Go プロジェクト
# 依存関係取得 go mod download # ビルド go build # プロダクションビルド CGO_ENABLED=0 go build -ldflags="-s -w"
Makefile プロジェクト
# 標準ビルド make # クリーンビルド make clean && make # 特定ターゲット make build make release
ビルドフロー
┌─────────────────┐ │ プロジェクト検出 │ └────────┬────────┘ ↓ ┌─────────────────┐ │ 依存関係確認 │ ──→ なければインストール └────────┬────────┘ ↓ ┌─────────────────┐ │ ビルド実行 │ └────────┬────────┘ ↓ ┌────┴────┐ ↓ ↓ ┌───────┐ ┌───────┐ │ 成功 │ │ 失敗 │ ──→ エラー分析・修正提案 └───────┘ └───────┘
エラーハンドリング
一般的なエラーと対処
| エラー | 原因 | 対処 |
|---|---|---|
| 依存関係不足 | を実行 |
| TypeScript型エラー | 型定義を修正 |
| 構文エラー | 該当箇所を修正 |
| メモリ不足 | |
エラー分析の流れ
- エラーメッセージを解析
- エラータイプを特定
- 該当ファイル・行を特定
- 修正案を提示
- ユーザー確認後に修正・リビルド
使用シナリオ
シナリオ1: コード変更後
AI: コードを変更しました。ビルドを実行しますか? # 検出結果 プロジェクトタイプ: Node.js (TypeScript) パッケージマネージャー: pnpm # 実行 pnpm run build
シナリオ2: 依存関係追加後
AI: 新しい依存関係を追加しました。インストールしてビルドしますか? # 実行 pnpm install && pnpm run build
シナリオ3: ビルドエラー発生時
AI: ビルドエラーが発生しました。 エラー: Cannot find module '@types/node' 修正案: 1. @types/node をインストール 2. リビルド 実行しますか? # 実行 pnpm add -D @types/node && pnpm run build
シナリオ4: クリーンビルド
AI: 設定ファイルが変更されました。クリーンビルドを推奨します。 # 実行 rm -rf dist .cache && pnpm run build
プロジェクト固有の設定
CLAUDE.md または PROJECT.md にビルド設定を記載可能:
## ビルド設定 - ビルドコマンド: `npm run custom-build` - テストコマンド: `npm run test:all` - プロダクションビルド: `npm run build:prod` - 前処理: `npm run prebuild`
判断基準
ビルドを提案する条件
- ソースコード(.ts, .js, .rs, .py, .go)が変更された
- 設定ファイル(tsconfig.json, Cargo.toml等)が変更された
- 依存関係ファイル(package.json等)が変更された
- ユーザーが「ビルド」「コンパイル」と言及
クリーンビルドを提案する条件
- ビルド設定ファイルが変更された
- 依存関係のバージョンが変更された
- 前回ビルドが失敗している
- キャッシュ関連のエラーが発生
注意事項
- ビルド前に未保存の変更がないか確認
- 長時間ビルドの場合は進捗を表示
- 複数のビルドターゲットがある場合は選択を促す
- CI/CD環境との整合性を考慮