- GitHubスター
- 1,061
- ファイル
- 3
- 最終コミット
- 2026年8月26日
- ライセンス
- —
- 許可されたツール
- —
go-dev skillは何をしますか
go-devはAgent Skillsです。 命名規則、エラーハンドリング、並行処理パターン、テスト手法を含むGoの開発標準を強制します。.
skillのSKILL.mdから生成された要約。
go-dev skill について
このSKILLは、業界標準を厳格に遵守することで、高品質なGoのコードベースを維持することを可能にします。開発者はこれを利用して、.go、go.mod、go.sumファイル全体にわたる特定の命名規則、エラーハンドリングパターン、および並行処理の安全性を強制できます。エージェントがこのSKILLをロードすると、Effective GoやUber Goのガイドラインに従っているかを確認する専門のレビュアーとして機能します。
このSKILLは、フォーマット用のgoimports、静的解析用のgo vet、包括的なチェック用のgolangci-lintといった、不可欠なツールチェーンのコマンドを統合しています。また、race検出やカバレッジフラグを伴うgo testを活用することで、テストプロトコルも管理します。これらのルールを適用することで、エージェントは、未処理のエラー、不適切なgoroutineのライフサイクル、ループ内での非効率な文字列結合といった、よくある落とし穴を回避したコードを生成します。さらに、utilやbaseのような意味のないパッケージ名の使用を防ぎながら、cmd、internal、pkgといった標準的なディレクトリ構成でプロジェクトを構造化する支援をします。
エージェントができること
- 1並行処理の問題を検出goroutineがcontextを使用して管理されているかを確認し、テスト中にデータレースをチェックします。
skill の SKILL.md から作成されています。すべてのユースケースは、その引用と照合されています。
go-dev skillのインストール方法
各コマンドはskillフォルダをクライアントのskillsディレクトリにコピーします。読み込むには、クライアントを再起動するか新しいセッションを開始してください。プラグインにgo-dev skillをインストールする
/plugin marketplace add doccker/cc-use-exp /plugin install cc-use-exp@cc-use-exp
Claude Codeにgo-dev skillをインストールする
~/.claude/skills/go-dev/SKILL.md
$ npx degit doccker/cc-use-exp/skills/go-dev ~/.claude/skills/go-devClaude Code (project)にgo-dev skillをインストールする
.claude/skills/go-dev/SKILL.md
$ npx degit doccker/cc-use-exp/skills/go-dev .claude/skills/go-devCodexにgo-dev skillをインストールする
~/.agents/skills/go-dev/SKILL.md
$ npx degit doccker/cc-use-exp/skills/go-dev ~/.agents/skills/go-devGemini CLIにgo-dev skillをインストールする
~/.gemini/skills/go-dev/SKILL.md
$ npx degit doccker/cc-use-exp/skills/go-dev ~/.gemini/skills/go-devClaude.aiにgo-dev skillをインストールする
npx degit doccker/cc-use-exp/skills/go-dev go-dev && zip -r go-dev.zip go-dev # claude.ai → Customize → Skills → + → Create skill → Upload a skill → go-dev.zip
自動チェック
実行日 2026年11月15日完全なレポート →まだ検証されていません。スキルにはスコア 80、重大な指摘なし、チェックに十分なデータが必要です。 チェックの仕組み · 点数を上げるための改善点
- ソースリポジトリがリンクされており、アクセス可能doccker/cc-use-exp/skills/go-dev is public and reachablegithub.com/doccker/cc-use-exp/tree/HEAD/skills/go-dev ↗合格
- オープンソースライセンス (OSI)No license検出事項
- 過去1年以内にコミットまたはリリースありLast commit 2026-08-26github.com/doccker/cc-use-exp/commits ↗合格
- スクリプトにダウンロード実行や認証情報の窃取がないNo scripts in the skill folder合格
- SKILL.md に隠れた指示がないNo override phrases, safeguard switches, credential requests or hidden charactersgithub.com/doccker/cc-use-exp/blob/HEAD/skills/go-dev/SKILL. ↗合格
- 事前許可ツールが限定されているNo pre-approved tools; the agent asks before using onegithub.com/doccker/cc-use-exp/blob/HEAD/skills/go-dev/SKILL. ↗合格
- SKILL.md が Agent Skills の形式に従っているthe description does not say when to use the skill; the description is only 30 charactersgithub.com/doccker/cc-use-exp/blob/HEAD/skills/go-dev/SKILL. ↗検出事項
SKILL.md
GitHubで表示Go 开发规范
参考来源: Effective Go、Go Code Review Comments、uber-go/guide
工具链
goimports -w . # 格式化并整理 import
go vet ./... # 静态分析
golangci-lint run # 综合检查
go test -v -race -cover ./... # 测试(含竞态检测和覆盖率)
命名约定
| 类型 | 规则 | 示例 |
|---|---|---|
| 包名 | 小写单词,不用下划线 | user, orderservice |
| 变量/函数 | 驼峰命名,缩写词一致大小写 | userID, HTTPServer |
| 常量 | 导出用驼峰,私有可驼峰或全大写 | MaxRetryCount |
| 接口 | 单方法用方法名+er | Reader, Writer |
禁止: common, util, base 等无意义包名
import 顺序
import (
"context" // 标准库
"fmt"
"github.com/gin-gonic/gin" // 第三方库
"project/internal/model" // 项目内部
)
错误处理
必须处理错误,不能忽略:
// ✅ 好:添加上下文
if err != nil {
return fmt.Errorf("failed to query user %d: %w", userID, err)
}
// ❌ 差:忽略错误
result, _ := doSomething()
错误包装: 使用 %w 保留错误链,用 errors.Is() / errors.As() 检查
并发编程
基本原则:
- 优先使用 channel 通信
- 启动 goroutine 前考虑:谁来等待它?怎么停止它?
- 使用
context.Context控制生命周期
// ✅ 好:使用 context 控制
func process(ctx context.Context) error {
done := make(chan error, 1)
go func() { done <- doWork() }()
select {
case err := <-done:
return err
case <-ctx.Done():
return ctx.Err()
}
}
数据竞争: 使用 go test -race 检测
测试规范
// 表驱动测试
func TestAdd(t *testing.T) {
tests := []struct {
name string
a, b int
expected int
}{
{"positive", 1, 2, 3},
{"zero", 0, 0, 0},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
got := Add(tt.a, tt.b)
if got != tt.expected {
t.Errorf("Add(%d, %d) = %d, want %d", tt.a, tt.b, got, tt.expected)
}
})
}
}
性能优化
| 陷阱 | 解决方案 |
|---|---|
| 循环中拼接字符串 | 使用 strings.Builder |
| 未预分配 slice | make([]T, 0, cap) |
| N+1 查询 | 批量查询 + 预加载 |
| 无限制并发 | 使用 semaphore 或 worker pool |
| Raw SQL 别名用了保留字 | 避免 year_month/order/status/rank 等 MySQL 保留字做别名 |
# 性能分析
go test -cpuprofile=cpu.prof -bench=.
go tool pprof cpu.prof
项目结构
project/
├── cmd/ # 可执行文件入口
├── internal/ # 私有代码
│ ├── handler/
│ ├── service/
│ ├── repository/
│ └── model/
├── pkg/ # 公共代码
├── go.mod
└── go.sum
详细参考
| 文件 | 内容 |
|---|---|
references/go-style.md |
命名约定、错误处理、并发、测试、性能 |
references/date-time.md |
日期加减、账期计算、AddDate 溢出处理 |
📋 本回复遵循:
go-dev- [具体章节]
このスキルのファイル
3go-dev skillに関する質問
Claude Codeにgo-dev skillをインストールするには
npx degit doccker/cc-use-exp/skills/go-dev ~/.claude/skills/go-devを実行してください。Claude Codeは~/.claude/skills(すべてのプロジェクト)または.claude/skills(単一プロジェクト)からskillsを読み込み、説明がタスクに一致する場合にskillを使用します。
go-dev skillはどのクライアントで使用できますか
Agent Skills形式を読み込むすべてのクライアントで使用できます: Claude Code、Codex、Gemini CLI、claude.ai(ZIPとしてアップロード)。skill内のスクリプトは、クライアントがコード実行を許可した場合にのみ実行されます。