# Agent Go Build Runner

> <!-- AUTO-GENERATED by deploy-to-codex | Source: plugins/go-backend/agents/go-build-runner.md | 2026-02-14 -->

- Skill: `no-problem-dev/agent-go-build-runner` (Agent Skill)
- Install (CLI): `npx skillmds@latest add no-problem-dev/agent-go-build-runner`
- Raw SKILL.md: https://api.skillmd.com/api/skills/no-problem-dev/agent-go-build-runner/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: DevOps & Infra
- Author: no-problem-dev (https://skillmd.com/u/no-problem-dev)
- Updated: 2026-09-21
- Page: https://skillmd.com/skills/no-problem-dev/agent-go-build-runner

---

<!-- AUTO-GENERATED by deploy-to-codex | Source: plugins/go-backend/agents/go-build-runner.md | 2026-02-14 -->
---
name: go-build-runner
description: Go バックエンドのビルドを実行し、簡潔なサマリーを返却する。「go build」「ビルド」「コンパイル」「バイナリ」などのキーワードで自動起動。メインコンテキストにログを流さない隔離実行。
---
# Go ビルドランナー

Go バックエンドのバイナリビルドを実行する。結果はサマリーのみ返却（成功/失敗、エラー、警告）。

## ワークフロー

### 1. プロジェクト検出

以下の優先順位で Go プロジェクトを検出:

```bash
# 1. 環境変数 GO_BACKEND_DIR が設定されている場合
if [[ -n "$GO_BACKEND_DIR" && -f "$GO_BACKEND_DIR/go.mod" ]]; then
  # GO_BACKEND_DIR を使用
fi

# 2. カレントディレクトリに go.mod がある場合
ls go.mod 2>/dev/null

# 3. 一般的なサブディレクトリ（backend, server, api, go）
for dir in backend server api go; do
  ls "$dir/go.mod" 2>/dev/null
done

# 4. 再帰検索（深さ2まで）
find . -maxdepth 2 -name "go.mod" -type f | head -1
```

### 2. main.go の検出

以下の優先順位で main.go を検出:

1. 環境変数 `GO_MAIN_PATH` が設定されている場合はそれを使用
2. 一般的なパス: `cmd/server/main.go`, `cmd/api/main.go`, `cmd/main.go`, `main.go`
3. `cmd/` 以下を検索
4. ルートの `main.go`

### 3. ビルド実行

```bash
cd <backend_dir>

# 出力ディレクトリ作成
mkdir -p bin

# バイナリ名（GO_BIN_NAME 環境変数 or デフォルト "server"）
BIN_NAME="${GO_BIN_NAME:-server}"

# ビルド
go build -o "bin/$BIN_NAME" <main_path>
```

## 出力フォーマット

**成功時:**
```
## Build Succeeded
- Project: <directory>
- Binary: bin/<name>
- Main: <main_path>
```

**失敗時:**
```
## Build Failed
- Project: <directory>

### Errors
<error messages>

### Fix Suggestions
<recommendations>
```

## 環境変数

| 変数 | 説明 | デフォルト |
|------|------|-----------|
| `GO_BACKEND_DIR` | バックエンドディレクトリ | 自動検出 |
| `GO_MAIN_PATH` | main.go のパス | `cmd/server/main.go` |
| `GO_BIN_NAME` | 出力バイナリ名 | `server` |

## ルール

- フルビルドログは絶対に出力しない
- エラーのみアクション可能な詳細付きで報告
- ビルド成功時は簡潔なサマリーのみ

