AgentSkillsCN

proj-gen

统一代码生成入口,支持生成 SQL、CRUD 操作、API 接口、枚举等各类代码。

SKILL.md
--- frontmatter
name: proj-gen
description: 代码生成统一入口。生成 SQL、CRUD、API、枚举等代码。

代码生成

统一入口,根据参数生成不同类型的代码。

使用方式

code
/proj-gen sql      - 生成建表 SQL
/proj-gen crud     - 生成完整 CRUD 代码
/proj-gen api      - 生成单个接口
/proj-gen enum     - 生成枚举类
/proj-gen          - 自动模式(读取技术方案文档)

前置检查

  • 全流程任务文档已创建并可追溯
  • 技术方案已确认且路径已记录在产物清单
  • 任务清单已拆分并确认

未满足前置条件时:先补文档/确认流程,禁止生成代码。


自动模式

当存在技术方案文档时,直接执行 /proj-gen,自动:

  1. 从任务文档的产物清单读取技术方案路径
  2. 提取表结构、实体、接口等信息
  3. 按顺序生成:SQL → Entity → Mapper → DTO → Service → Controller

同步更新任务文档:

  • 流程状态总览标记“代码生成”为进行中/已完成
  • 产物清单记录生成代码清单或路径
  • 更新下一步指令为“业务开发”

触发时机:任务拆分完成后,开始编码前。

注意:自动模式生成的是代码骨架,业务逻辑仍需手动实现。


1. 生成 SQL (/proj-gen sql)

输入参数

参数必填说明示例
表名小写下划线feedback
表描述中文建议反馈
业务字段字段列表

字段类型、通用字段与建表模板

参考 SQL 字段类型参考


2. 生成 CRUD (/proj-gen crud)

输入参数

参数必填说明示例
模块名小写feedback
实体名大驼峰Feedback
表名小写下划线feedback
中文描述建议反馈
端类型Web/App/Both

生成文件清单

code
core/{module}/
├── entity/{Entity}.java
├── mapper/{Entity}Mapper.java
├── service/{Entity}Service.java
└── service/impl/{Entity}ServiceImpl.java

admin/  (Web端)
├── controller/{Entity}Controller.java
├── service/{Entity}ManageService.java
├── service/impl/{Entity}ManageServiceImpl.java
└── model/
    ├── request/{Entity}CreateRequest.java
    ├── request/{Entity}UpdateRequest.java
    ├── request/{Entity}QueryRequest.java
    └── response/{Entity}Response.java

api/  (App端)
├── controller/{Entity}Controller.java
├── service/{Entity}AppService.java
└── model/...

代码模板


3. 生成 API (/proj-gen api)

输入参数

参数必填说明示例
模块名已有模块user
端类型Web/AppWeb
HTTP方法GET/POST/PUT/DELETEPOST
路径接口路径/export
功能描述中文导出用户

常用接口模板

参考 API 接口示例


4. 生成枚举 (/proj-gen enum)

输入参数

参数必填说明示例
枚举名大驼峰FeedbackStatus
模块名所属模块feedback
描述中文反馈状态
枚举值code-desc0-待处理, 1-已处理

枚举模板

参考 枚举模板


自检清单

  • 命名符合规范(参考 CLAUDE.md)
  • 通用字段完整
  • 必填字段有校验注解
  • 写操作有 @ApiLog
  • 接口路径符合 RESTful
  • 每个字段有注释/Schema
  • 类属性赋值优先使用 BeanUtil.copyProperties
  • 返回日期字段必须添加 @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")

详细模板文件

以下模板包含完整代码示例和注意事项:

模板文件说明
SQL 建表sql-reference.md字段类型、索引规范
Entity 实体entity.md实体类模板
Mapper 接口mapper.md数据访问层
Service 服务service.md业务逻辑层
Controller 控制器controller.md接口层
DTO 传输对象dto.md请求响应对象
枚举类enum.md枚举定义

命名规范详细说明

基础命名规则

类型规则示例
类名大驼峰UserService
方法/变量小驼峰getUserById
常量大写下划线MAX_PAGE_SIZE
表名小写下划线,单数user, order_item
字段名小写下划线user_id, create_time

类命名约定

类型格式示例
实体类{Entity}User, FeedbackType
Mapper{Entity}MapperUserMapper
Service 接口{Entity}ServiceUserService
Service 实现{Entity}ServiceImplUserServiceImpl
Controller{Entity}ControllerUserController
请求DTO{Entity}CreateRequest / {Entity}UpdateRequestUserCreateRequest
响应DTO{Entity}ResponseUserResponse
枚举类{业务}Status / {业务}TypeFeedbackStatus

接口规范详细说明

URL 格式规范

标准格式/{项目}/{端类型}/v{版本}/{模块}/{资源}

端类型说明

  • web - 管理后台
  • api - App端/小程序
  • open - 开放接口

示例

  • /toy/api/v1/feedback - 小程序反馈接口
  • /toy/web/v1/user - 管理后台用户接口

RESTful 路径规范

操作HTTP方法路径格式示例
列表查询GET/{module}GET /toy/api/v1/feedback
详情查询GET/{module}/{id}GET /toy/api/v1/feedback/123
创建POST/{module}POST /toy/api/v1/feedback
更新PUT/{module}/{id}PUT /toy/api/v1/feedback/123
删除DELETE/{module}/{id}DELETE /toy/api/v1/feedback/123

响应格式规范

统一响应格式

json
{
  "code": 0,
  "message": "成功",
  "data": {}
}

分页响应格式

json
{
  "code": 0,
  "message": "成功",
  "data": {
    "records": [],
    "total": 100,
    "current": 1,
    "size": 20
  }
}