Claude-skill-registry go-backend-workflow

Goバックエンドのビルド・テスト・Lintワークフロー。「Goビルド」「バックエンドテスト」「golangci-lint」「go mod」「go test」「swagger」などのキーワードで自動適用。

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/go-backend-workflow" ~/.claude/skills/majiayu000-claude-skill-registry-go-backend-workflow && rm -rf "$T"
manifest: skills/data/go-backend-workflow/SKILL.md
source content

Go Backend Workflow

Go バックエンドプロジェクトのビルド・テスト・品質管理ワークフロー。

コマンド一覧

コマンド用途実行時間
/go-backend:go-build
バイナリビルド〜30秒
/go-backend:go-test
テスト実行〜1分
/go-backend:go-lint
静的解析 (golangci-lint)〜30秒
/go-backend:go-run
開発サーバー起動即時
/go-backend:go-tidy
依存関係整理〜10秒
/go-backend:go-swagger
Swagger生成〜20秒

推奨ワークフロー

コード変更 → go-build(コンパイル確認)
    ↓ 成功
go-test(テスト実行)
    ↓ 全パス
go-lint(品質チェック)
    ↓ 問題なし
コミット・PR

プロジェクト構成の検出

このプラグインは以下の順序でプロジェクトを検出:

  1. Makefile優先:
    make test
    ,
    make lint
    等のターゲットがあれば使用
  2. go.mod検出:
    go.mod
    を探索して直接
    go
    コマンドを実行
  3. サブディレクトリ:
    backend/
    ,
    server/
    ,
    api/
    等を探索

環境変数

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

よくあるエラーと対処

go mod tidy が必要

go: modules disabled by GO111MODULE=off

対処:

export GO111MODULE=on
go mod tidy

golangci-lint が見つからない

golangci-lint: command not found

対処:

brew install golangci-lint
# または
go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest

swag が見つからない

swag: command not found

対処:

go install github.com/swaggo/swag/cmd/swag@latest

テストカバレッジ

カバレッジ付きテストの実行:

go test -cover -coverprofile=coverage.out ./...
go tool cover -html=coverage.out -o coverage.html
open coverage.html

Lint 設定

プロジェクトルートに

.golangci.yml
を配置することでLintルールをカスタマイズ可能。

推奨設定例:

linters:
  enable:
    - errcheck
    - gosimple
    - govet
    - ineffassign
    - staticcheck
    - unused

linters-settings:
  errcheck:
    check-type-assertions: true