--- name: dev-scaffold description: 模块脚手架插件。新建模块时自动生成分层代码骨架。挂载在 dev 阶段,新建模块时激活。 --- # 模块脚手架插件 (dev-scaffold) ## 概述 当需要新建一个完整模块时,自动生成分层代码骨架,避免手动创建大量样板文件。 **触发条件**: - 需求需要新建数据库表 + 完整 CRUD - 开发设计文档中有"新增"类型的文件 ## Go 后端脚手架 输入模块名(如 `manual`),生成以下文件: ``` backend/ ├── models/manual.go # GORM 模型 ├── database/manual_repository.go # Repository ├── services/manual_service.go # Service ├── handlers/manual_handler.go # Handler ├── routes/manual_routes.go # Route └── migrations/YYYYMMDDHHMMSS_create_manual.up.sql # Migration ``` ### 生成规则 **Model** (`models/{name}.go`): - struct 定义 + GORM tags - TableName() 方法 - 标准字段:ID, TenantID, CreatedBy, CreatedAt, UpdatedAt, DeletedAt **Repository** (`database/{name}_repository.go`): - interface 定义 - Create, GetByID, List(分页), Update, Delete 方法 - 所有查询带 tenant_id 过滤 **Service** (`services/{name}_service.go`): - interface 定义 - 注入 Repository - 基础 CRUD + 业务校验 **Handler** (`handlers/{name}_handler.go`): - Create, Get, List, Update, Delete 方法 - 请求参数绑定 + 验证 - 统一错误处理 **Route** (`routes/{name}_routes.go`): - RESTful 路由注册 - Auth 中间件 **Migration** (`migrations/YYYYMMDDHHMMSS_create_{name}.up.sql`): - CREATE TABLE + 标准字段 + 索引 ## React 前端脚手架 输入模块名(如 `Manual`),生成: ``` frontend/src/ ├── types/manual.ts # TypeScript 类型 ├── services/manualService.ts # API Service ├── pages/ManualListPage.tsx # 列表页 └── pages/ManualDetailPage.tsx # 详情页(可选) ``` ## 使用方式 ``` 用户: "新建 manual 模块的脚手架" AI: 根据 req-design 的变更文件清单,生成所有骨架文件 ``` **注意**:脚手架只生成骨架,具体业务逻辑需在骨架基础上补充。