Back to skills
extension
Category: Development & EngineeringNo API key required

auto-build

A skill to automatically detect the project type and execute a build. It suggests a build after code changes, and if an error occurs, it offers a fix. Supports Node.js, Rust, Python, Go, and Makefile projects.

personAuthor: jakexiaohubgithub

自動ビルドスキル

プロジェクトの設定を自動検出し、適切なビルドコマンドを実行します。

自動提案のタイミング

| 状況 | 提案内容 | |------|----------| | コード変更後 | 「ビルドしますか?」 | | 依存関係追加後 | 「依存関係をインストールしてビルドしますか?」 | | 設定ファイル変更後 | 「クリーンビルドを実行しますか?」 | | ビルドエラー発生時 | 「エラーを修正してリビルドしますか?」 | | テスト前 | 「先にビルドを確認しますか?」 |

プロジェクトタイプの自動検出

| ファイル | プロジェクトタイプ | パッケージマネージャー | |----------|-------------------|----------------------| | package.json | Node.js | npm/yarn/pnpm | | Cargo.toml | Rust | cargo | | pyproject.toml | Python | pip/poetry | | go.mod | Go | go | | pom.xml | Java (Maven) | mvn | | build.gradle | Java (Gradle) | gradle | | Makefile | 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

ビルドフロー

┌─────────────────┐
│ プロジェクト検出 │
└────────┬────────┘
         ↓
┌─────────────────┐
│ 依存関係確認    │ ──→ なければインストール
└────────┬────────┘
         ↓
┌─────────────────┐
│ ビルド実行      │
└────────┬────────┘
         ↓
    ┌────┴────┐
    ↓         ↓
┌───────┐ ┌───────┐
│ 成功  │ │ 失敗  │ ──→ エラー分析・修正提案
└───────┘ └───────┘

エラーハンドリング

一般的なエラーと対処

| エラー | 原因 | 対処 | |--------|------|------| | MODULE_NOT_FOUND | 依存関係不足 | npm install を実行 | | Type error | TypeScript型エラー | 型定義を修正 | | Syntax error | 構文エラー | 該当箇所を修正 | | Out of memory | メモリ不足 | NODE_OPTIONS=--max-old-space-size=4096 |

エラー分析の流れ

  1. エラーメッセージを解析
  2. エラータイプを特定
  3. 該当ファイル・行を特定
  4. 修正案を提示
  5. ユーザー確認後に修正・リビルド

使用シナリオ

シナリオ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環境との整合性を考慮