Files
saas-mbr/docs/agent-guide.md
T

4.4 KiB
Raw Blame History

AI 生成代码工作流与 Vibe Coding 协作指南

权威来源:docs/agent-guide.md · 编码约束详见 docs/coding-standards.md(本文件只讲"怎么协作",不重复约束)

1. 适用场景

  • 用户给界面 → AI 出代码:用户提供界面原型(图片/截图/链接/文字描述)与业务说明,AI 按 coding-standards.md §7 的步骤序列(S1~S10)生成前后端代码。
  • 团队 Vibe Coding:所有成员(人 + AI)在统一约束下开发,产出可互审、可合并、可交付。

2. "界面 → 代码"提示词协议

2.1 用户侧(发起开发请求时的最小输入)

【业务说明】<要做什么,一两句话>
【界面】<原型图 / 截图 / 链接 / 界面文字描述>
【应用名】<APP_NAME,如 example>
【服务别名】<前端 URL 首段,如 sms>
【数据库】<MySQL / SQL Server,默认 MySQL>
【子系统编码】<public/data/data.js 的 currentSubsystem,默认沿用现有>

2.2 AI 侧(开工前必须明确的默认值)

若用户未提供以下任一项,按下述默认值执行并在交付说明中标注,不得中断询问:

默认值
APP_NAME 沿用后端 bootstrap.yml 现有 spring.application.name(老系统内新增功能);新系统才要求用户确认
服务别名 沿用 window.frameBaseConfig.backendServices 中现有别名;新增服务需用户确认映射
数据库 MySQL(建表脚本需与 sqlserver.sql 双份同步)
页面归属 菜单结构按界面标题推断一级/二级菜单;无法推断时归入现有最近菜单

2.3 交付说明模板(AI 每次交付代码时附带)

## 本次交付
- 新增/修改文件清单(路径)
- 界面元素 → 实现映射(查询区/表格列/表单字段/操作按钮分别落在哪些代码位置)
- 接口清单(方法 + URL + 响应结构)
- SQL 变更(表/升级版本号)
## 已执行检查
- APP_NAME 四联检(①~④ 一致?)
- 统一响应体/异常码/分页契约/Excel 分支
- 未触碰 src/framework、pom、assembly
## 待办/风险
- 需后端菜单数据注册才能在前端菜单可见
- 需真机验证项(多数据源/定时任务/消息队列等)

3. 联调与验证纪律

  • Mock 证据不足:多数据源路由、Kafka 消费、XXL-JOB 调度、Nacos 配置拉取、真实数据库迁移等必须真机验证,不得以 mock/静态检查作为完成依据。
  • 前端 npm run dev + 后端启动的冒烟清单见 coding-standards.md §7.4
  • 交付前由 AI 执行 coding-standards.md §7.3 必须/禁止清单自检。

4. 团队协作约定

4.1 提交

  • 遵循 Conventional Commitstype(scope): subjectfeat/fix/docs/refactor/chore/test)。
  • 提交粒度:一个功能/一个修复一个提交;先 git add 相关文件再提交,禁止 git add -A 夹带无关改动。
  • 工作区单一 git 仓库(D:\workBuddySpace\member),docs/ 与两项目统一管理;发布以后端 *-bin.zip 为单元。

4.2 评审

  • 评审重点:coding-standards.md §7.3 清单项、分层依赖方向(§5.1)、SQL 双份同步、命名规范。
  • PR 描述按「变更内容 / 验证方式 / 影响范围」三段。

4.3 文档维护(单源化纪律)

  • 共享约束只改 docs/coding-standards.md;仓库内 .project.agents 的 CONVENTIONS 只允许写指针 + 本仓库特有内容,禁止复制正文
  • 功能更新同步后端 src/main/resources/doc/升级日志.md

4.4 框架演进

  • 业务自研组件/工具泛用性高 → 提交框架负责人评审后纳入 src/framework/**,再在新业务中复用;不得长期只存在于业务内。
  • 框架升级:不覆盖 publicvite.config.tssrc/subsystem

5. 常见坑(高频返工点)

规避
前端再取 .data(已自动解包) 编码时直接使用返回值
URL 首段与后端 context-path/Controller 路径不符 → 404 生成后端接口后回填前端 ts,路径逐字对齐
原生 SQL 字符串拼接 → 注入/报错 一律 ? 占位参数化
只改 mysql.sql 忘 sqlserver.sql 建表双份同步作为 S7 固定动作
新页面菜单不可见 后端菜单数据(sql/data/)注册 + dynamicRouter 匹配 url===path
手动拼主键/UUID 一律 DaoIdGenerator
新增 Util/Helper 类 遵循 §8.4:可引不可增