Files
2026-07-06 22:03:22 +08:00

4.1 KiB
Raw Permalink Blame History

AGENTS.md — AI 辅助开发协作规范

本文件定义 AI 辅助开发(Windsurf Cascade / 其他 AI Agent)在本项目中的协作规则。 所有 AI Agent 必须同时遵守 .windsurfrules.windsurfrules.DEV-RULES 和本文件。


1. 文档阅读顺序

开始任何开发任务前,AI Agent 必须按以下顺序阅读文档:

  1. .windsurfrules — 精简规则,了解技术栈和禁止事项
  2. .windsurfrules.DEV-RULES §0 — 文档骨架,了解项目文档结构
  3. pmdocs/2-task.md — 查看当前任务状态和进度
  4. pmdocs/1-prd-finance-v1.md — 了解要开发的功能需求
  5. pmdocs/changes/CHANGELOG.md — 查看需求变更历史
  6. run.md — 了解如何启动和测试
  7. 对应模块的现有代码 — 了解代码风格和模式

2. 代码修改原则

2.1 最小改动

  • 优先最小化修改,不重写已有代码
  • 不删除与本次修改无关的代码和注释
  • 不创建随机文件,除非任务明确需要

2.2 遵循现有模式

  • 后端:遵循模块三件套(Controller + Service + Table)模式
  • 前端:遵循现有页面结构(列表页/详情页/表单页模板)
  • 复用公共组件,禁止重复造轮子

2.3 同步更新文档

  • 修改代码涉及行为变更 → 更新 pmdocs/2-task.md 任务状态
  • 修改 DB 结构 → 更新 run.md 数据库命令
  • 修改技术栈版本 → 更新 run.md §1 和 .windsurfrules
  • 新增/修改 API → 更新 pmdocs/1-prd-finance-v1.md(如有接口说明)

3. 任务管理

3.1 任务状态标记

标记 含义
[ ] 未开始
[~] 进行中
[x] 已完成
[!] 阻塞/有问题

3.2 任务编号

  • T1-W1-xx1期第1周第 xx 个任务
  • T1-W2-xx1期第2周第 xx 个任务
  • T2-W3-xx2期第3周第 xx 个任务

4. 测试纪律

  • 修 bug 必先写复现测试
  • 禁止删测试、禁止 @skip/it.only 进 PR
  • 后端测试用真实 PostgreSQLruchu_finance_test),禁止 mock DB
  • 测试覆盖率目标:70% 单元 / 20% 集成 / 10% E2E

测试命令

# 后端
java -cp apps/api/gradle/wrapper/gradle-wrapper.jar org.gradle.wrapper.GradleWrapperMain -p apps/api test

# 前端单元
cd apps/web && npm run test

# 前端 E2E
cd apps/web && npm run test:e2e

⚠️ ./gradlew 脚本有 bug,用上述 java -cp 命令替代。


5. 提交规范

5.1 Git 提交信息

<type>(<scope>): <subject>

<body>
  • typefeat(新功能) / fix(修复) / refactor(重构) / docs(文档) / test(测试) / chore(杂项)
  • scope:模块名(contracts/payments/refunds/commissions/exchanges/insurances/salaries/workers/customers/reconcile/dashboard/auth/users/roles/permissions
  • subject:简短描述(中文)

示例:

feat(contracts): 合同列表页增加月份筛选
fix(payments): 退款金额校验允许零元
refactor(auth): 权限码从 user:manage 拆分为细粒度权限

5.2 禁止提交

  • 禁止提交 .env 文件(仅提交 .env.example
  • 禁止提交 build/ 目录
  • 禁止提交 node_modules/
  • 禁止提交敏感信息(密钥、密码、Token)

6. 已知问题

问题 影响 解决方案
gradlew 脚本 escape_args bug 后端启动/测试失败 java -cp 命令替代(详见 .windsurfrules.DEV-RULES §5.2
Flyway checksum 不匹配 后端启动失败 手动更新 flyway_schema_history(详见 .windsurfrules.DEV-RULES §5.2
业务 Controller 缺少 @PreAuthorize 权限控制不完整 新增 Controller 必须加 @PreAuthorize,存量逐步补充

7. AI Agent 行为约束

  • 不猜测:不确定时用工具查证,不编造 API/函数/参数
  • 不越权:不修改未经授权的文件,不执行有副作用的命令
  • 不遗漏:修改代码后同步更新相关文档和测试
  • 不简化:不跳过错误处理、不删除边界检查、不忽略安全校验
  • 用中文沟通:所有回复和注释使用中文