Files
user-system/AGENTS.md

89 lines
3.4 KiB
Markdown
Raw Permalink 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
本文件适用于整个仓库。
## 1. 项目目标
- 目标不是“看起来完成”,而是形成可验证、可审计、可上线的真实闭环。
- 任何“已完成”“已收口”“可上线”的表述,都必须以本地实际执行过的命令和证据为依据。
## 2. 真实边界
- 当前受支持的真实浏览器主验收路径是:
- `cd frontend/admin && npm.cmd run e2e:full:win`
- 当前可诚实宣称的是“浏览器级真实 E2E 已闭环”,不是“完整 OS 级自动化已闭环”。
- `smoke` 脚本仅用于补充诊断,不能被当成产品运行时依赖,也不能被当成主验收结论。
- `agent-browser` 目前只能辅助观察和诊断,不能替代受支持的项目 E2E 主链路。
## 3. 运行时规则
- 禁止在非测试代码中保留 `panic` 作为常规失败路径。
- 禁止运行时使用 mock provider、fake success 或“假成功返回”掩盖真实依赖缺失。
- 邮件、短信、OAuth、文件上传、外部调用必须 fail closed不能失败后伪装成功。
- 对外部副作用必须考虑回滚:
- 文件写入失败要清理半成品
- 持久化失败要回滚已创建的文件或缓存状态
- 安全敏感接口必须保持 `no-store` 等防缓存约束。
- 前端原生弹窗和弹出页视为缺陷信号:
- `window.alert`
- `window.confirm`
- `window.prompt`
- `window.open`
## 4. 设计规则
- 优先使用显式错误分类,不要依赖字符串子串猜测错误类型。
- service 层依赖接口能力,不依赖具体 repository 实现断言。
- 配置模板中的敏感值必须留空或使用占位说明,真实密钥只能通过环境变量或密钥管理系统注入。
- release 约束必须在启动期失败,而不是运行中放任危险配置继续启动。
## 5. 编码与编码问题
- 如果终端显示乱码,不要把终端渲染出来的中文直接复制回业务逻辑。
- 遇到编码不稳定场景时,优先使用:
- ASCII 文本
- `\uXXXX` 转义
- 显式错误类型
- 如果局部补丁频繁被编码噪音阻断,优先整段或整文件重写,不要继续赌字符串匹配。
## 6. 最低验证矩阵
- 只改后端时,至少执行:
- `go test ./... -count=1`
- `go vet ./...`
- `go build ./cmd/server`
- 改前端时,至少执行:
- `cd frontend/admin && npm.cmd run lint`
- `cd frontend/admin && npm.cmd run build`
- 只要改动涉及以下任一类,就必须补真实浏览器回归:
- 认证
- 会话
- 路由守卫
- 导航
- 弹窗保护
- 用户主流程
- `window` 相关防线
- 影响登录页或后台主导航的改动
- 命令:`cd frontend/admin && npm.cmd run e2e:full:win`
## 7. 文档同步规则
- 改变真实结论时,必须同步更新:
- `docs/status/REAL_PROJECT_STATUS.md`
- 沉淀长期工程约束时,优先更新:
- `docs/team/QUALITY_STANDARD.md`
- `docs/team/PRODUCTION_CHECKLIST.md`
- `docs/team/TECHNICAL_GUIDE.md`
- 形成阶段性经验总结时,沉淀到:
- `docs/team/PROJECT_EXPERIENCE_SUMMARY.md`
## 8. 对外表述规则
- 允许说:
- “浏览器级真实 E2E 已闭环”
- “本地可审计的一轮治理证据已形成”
- 不允许夸大成:
- “完整 OS 级自动化已闭环”
- “全部企业级生产治理材料都已闭环”
- 若仍缺少真实第三方 OAuth live 验证、外部 Secrets/KMS、多环境交付证据或 schema downgrade 回滚证据,必须明确说明。