go-service-creatorlisted
Install: claude install-skill afine907/skills
# Go Service — Go 微服务脚手架生成
自然语言描述 → 完整 Go 项目目录(代码 + 配置 + Dockerfile + Makefile),一次输出。
不适用:纯 CLI 工具(用 shell-command);Go 库/包开发(非服务);已有项目的重构。
## Goal
Go 微服务脚手架生成器。自然语言描述 → 完整 Go 项目目录
## Trigger
- 用户说"创建 Go 服务"、"初始化 Go 项目"、"搭建 Go 后端"
- 用户要求生成 Go 微服务脚手架、Go API 项目
- 用户提到 gin、echo、fiber 等 Go 框架并需要新建项目
## 工作流程
```
描述需求 → 选择框架 → 确认配置 → 生成项目 → 验证构建
```
### Step 1: 收集需求
从用户描述中提取:
- **服务名称**:用于目录名和 module 名
- **框架偏好**:Gin(默认)/ Echo / Fiber
- **端口**:默认 8080
- **数据库**:MySQL / PostgreSQL / SQLite / 无
- **功能模块**:用户提到的业务实体
如果信息不足,询问 1-2 个关键问题(框架、端口),不要过度追问。
### Step 2: 选择框架
| 框架 | 适用场景 | 特点 |
|------|----------|------|
| **Gin** (默认) | 通用 API 服务 | 性能好,生态丰富,社区最大 |
| **Echo** | 需要丰富中间件 | 轻量,API 设计优雅 |
| **Fiber** | 极致性能 | Express 风格,基于 fasthttp |
读取对应的模板文件获取代码模式:
- Gin → [references/gin-template.md](references/gin-template.md)
- Echo → [references/echo-template.md](references/echo-template.md)
- Fiber → [references/fiber-template.md](references/fiber-template.md)
### Step 3: 生成项目文件
标准目录布局(参考 [references/project-layout.md](references/project-layout.md)):
```
<service-name>/
├── cmd/
│ └── server/
│ └── main.go # 入口:路由注册 + graceful shutdown
├── internal/
│ ├── config/
│ │ └── config.go # 配置管理(envconfig)
│ ├── handler/
│ │ └── <entity>.go # HTTP handlers
│ ├── model/
│ │ └── <entity>.go # 数据模型
│ └── service/
│ └── <entity>.go # 业