Files
zkxw/AGENTS.md
T
zlwu 0e98593671 docs(agents): confirm application scope before implementation
Ask which applications to change when task scope is unclear, reuse confirmed scope, and confirm shared API impact before expanding it. Refs #4.
2026-10-30 18:32:04 +08:00

61 lines
6.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# AGENTS.md — 中科兴皖一体化门户(zkxw)
## 工程与查阅范围
共享 FastAPI 后端的四应用仓库。项目说明见 [README](README.md),文档入口见 [docs/README](docs/README.md)。
| 目录 | 职责 | 专用规则 |
| --- | --- | --- |
| `backend/` | API、权限、业务数据、工作流与 OA 引擎 | [backend/AGENTS.md](backend/AGENTS.md) |
| `web-admin/` | Vue 3 管理端 | [web-admin/AGENTS.md](web-admin/AGENTS.md) |
| `mobile-h5/` | HBuilderX uni-app,小程序及移动宿主 | [mobile-h5/AGENTS.md](mobile-h5/AGENTS.md) |
| `mobile-oa-h5/` | Vue/Vant H5,OA 表单与市场业务 | [mobile-oa-h5/AGENTS.md](mobile-oa-h5/AGENTS.md) |
修改前阅读目标目录规则;跨端改动同时阅读涉及端的规则。
## 工作方式
- 用户使用中文时用简体中文沟通;代码命名、注释、格式遵循所在模块。
- 仅做任务必要的改动,不夹带无关重构或全仓库格式化;保留用户已有改动。
- **不得自行停止、启动或重启 `web-admin` 开发服务与 `backend` 服务。** 需要重启时告知用户,由用户操作。
- 提交使用 Conventional Commits,完整说明“改了什么、为什么”。
- 需求开发与 Bug 修复:用户给出 Gitea 工单编号或链接时,先读取该工单描述、评论和验收条件再处理;未给编号时,先在当前工程 Gitea 仓库创建工单,再开发。继续当前已关联任务时复用原工单,不重复创建;已有授权下由 AI 创建和回写,不再要求用户代建。
- 修改端不明确时,先查当前任务和工单的已确认范围;仍不明确则询问修改 Web、小程序、移动 OA、后端中的哪些端,还是所有相关端。确认前仅只读定位、回写工单待确认范围,不修改业务代码;截图不能代替确认。已有明确范围直接沿用,答复“所有端”须记录具体应用清单;共享后端/API 影响范围外的端时,说明影响并确认扩展后再实施。
- 默认由 Agent 测试:自动进入任务分支/worktree,核对实际运行版本,完成测试与审查后合入 `V2.0`、提交推送、同步本地主分支并关闭 Gitea 工单。用户已授予这条常规收尾链路持续授权,不逐次询问合并;打 tag、部署与服务启停仍分别受原有授权限制。
- 用户明确“我来测试”时,该任务由用户测试:Agent 不运行测试或构建,仍完成代码审查和 Git 核对;交付时提醒切换到具体分支,提供 worktree 路径、提交、前后端配套入口和验证要点。用户确认通过后直接合并推送、关闭工单;未确认或失败时不合并、不关闭。
- 合并前核对验收提交与最新目标;目标更新或冲突处理改变代码时,按原测试责任补验,用户模式仍交用户验证。合并后代码树与验收版本一致不重复测试;确认远端同步成功后回写验收结果、合并提交和 PR 并关单。
- 不把真实凭据、业务导出、虚拟环境、构建产物和工具临时状态新增到版本管理。
- 清理文件前核查代码、测试、脚本、部署及文档引用;不能只凭名称、日期或搜索无结果删除。
## 跨端数据与权限底线
- 业务查询必须按当前用户 `tenant_no` 隔离并应用数据权限;写入租户来自认证上下文,不信任客户端覆盖。多租户管理例外须有安全评审。
- 菜单和数据权限使用所有有效角色的**并集**;选中子菜单必须包含祖先菜单。Web 与移动菜单使用各自 `parent_id=0` 的虚拟根。
- 租户管理仅 `super_admin` 可访问,其他系统管理运行在租户上下文。
- 业务数据软删除(`del_flag=1`),查询默认排除已删除数据。
- 保存子行使用 `backend/app/crud/child_row_sync.py`:原行更新、新行插入、只软删除移除行,禁止全删重建。拒绝其他父记录或租户的 ID;复制时生成新 ID。
- 细胞存储样本跨表匹配使用 **`tenant_no + sample_code`**,不用可变化的协议关联 ID 作为匹配键。
- 业务附件使用 MinIO;单字段多附件按英文逗号分隔 URL,前后端解析一致。
- 数据库变更维护 `docs/sql/`,同时检查 API Schema、CRUD、前端字段及类型;不绕过鉴权、加密、审计中间件。
## 规范入口
- 工程 SHALL 要求:[OpenSpec 工程标准](openspec/changes/zkxw-engineering-standards/specs/)。按改动范围查阅 API、数据库、权限、编码、架构、工作流及 UI 专题。
- Web UI:[Fresh Mint 规范](docs/web-admin-ui-spec-fresh-mint.md)、[P01–P27 模式索引](docs/web-admin-ui-pattern-index.md)。主色 `#10b981`,不得混入移动端主色。
- 移动 UI:[移动端规范](docs/miniprogram-ui-spec-sanqiang.md)。规范品牌绿 `#0a9f6d`;现有 Token 存在差异,按各端 AGENTS 记录处理,禁止直接套用 Web 主色。
- Cursor 配置仅作入口,不再独立维护另一套规则。规范与实现冲突需查明依据,不以代码现状默认为新规范。
- OpenSpec 长期规范尚未完成归档;不要因 `openspec/specs/` 目录存在就认定其中已有基线。
## 验证与交付
- 按任务测试责任验证,报告实际结果和未执行项:Agent 模式按改动范围检查文档链接或业务测试与构建;用户模式记录用户验收结论,不由 Agent 运行测试和构建。
- CRUD 字段一致性按 [开发指南](docs/dev-field-consistency.md) 检查;根目录命令是 `python backend/scripts/check_field_consistency.py`。该工具仅覆盖注册实体,已知失效路径见该指南。
- 使用源码、引用检索和测试核对影响范围。已移除的 graphify 不再是开发依赖或交付步骤,不安装、运行或恢复其自动 hook。
## 维护边界
- 当前 SQL 初始化基线不完整,部分测试引用的迁移文件已缺失;未验证前不宣称可从空库部署。
- 业务历史方案、执行计划、Demo 与整理报告已清理;保留四个应用目录、现行工程规范及被部署或脚本读取的 SQL、SOP 等资源。
- 文档优先更新现有 README 或规范入口,避免重复生成历史业务方案和整理报告。
- 更改规则应同步唯一的对应入口,不在多个文件复制完整细则。