Code Generation Skill — Forge 项目约定
核心原则(Forge 强制规则)
- Design-First: 无设计不编码。必须先读架构设计(C4/ADR)、详细设计、API 契约、数据库 Schema
- Convention-First: 编码前先加载 Foundation Skills,读 2-3 个同包已有文件了解本地模式
- 实现 + 测试同步: 每个代码单元必须同时生成测试,禁止无测试代码提交
- 增量生成: 不重写已有代码,只修改设计要求的部分,保留未变更区域的注释和格式
- 编译验证: 提交前必须验证编译通过(
./gradlew compileKotlin 或等效命令)
生成流程
读设计 → 生成清单 → 数据层 → 服务层 → API 层 → 测试 → 编译验证 → Baseline 检查
生成清单模板
| 设计元素 | 代码产出 | 测试产出 |
|---|
| Entity 类图 | Entity + Value Object | Entity 单元测试 |
| Repository 接口 | Repository 接口 + 实现 | Repository 集成测试 |
| Service 序列图 | Service 类 + 方法 | Service 单元测试 |
| Controller 端点 | Controller + DTO + Mapper | Controller 集成测试 |
| 错误场景 | Exception 类 + Handler | 错误处理测试 |
| 数据库 Schema | Migration 脚本 | Migration 验证测试 |
代码质量规则
- 编译无错误
- 所有测试通过
- 无 TODO/FIXME(必须关联 Issue)
- 无注释代码(git 有历史)
- 无未使用 import
- 有意义的命名
- 函数单一职责
- 错误消息含上下文(ID、值)
- 日志级别恰当:INFO=业务事件 / DEBUG=细节 / ERROR=故障
- 无硬编码值
增量生成检查清单
验证脚本
scripts/compile_check.py — 检测常见编译错误(括号匹配、缺失声明)
scripts/import_check.py — 检测未使用 import 和通配符 import
scripts/naming_check.py — 检测命名规范违规(PascalCase/camelCase/UPPER_SNAKE)