Files
lijiaoqiao/AGENTS.md

120 lines
4.4 KiB
Markdown
Raw Normal View History

# 立交桥项目规则
## 项目定位
立交桥处于从 Demo 向生产级产品重构的阶段。这里的默认标准不是“功能能跑”,而是“能长期稳定上线、可维护、可观测、可扩展、可审计”。
任何改动都应优先服务于生产质量提升:稳定性、性能、安全性、可维护性、可验证性。演示型写法、一次性修补和无法长期维护的捷径都应谨慎对待。
## 根级工作原则
1. 生产主链路优先。
只要一个能力没有接进真实运行主链路、没有验证关键路径、没有覆盖错误场景,就不要轻易定义为“已完成”。
2. 先澄清影响面,再改。
立交桥包含多个子模块。修改前先识别影响的是哪个边界:`gateway/``internal/``platform-token-runtime/``supply-api/``sql/``scripts/``tests/`
3. 质量闭环优先于代码数量。
优先补齐验证、接口契约、异常处理、日志与健康检查,而不是仅追求功能增量。
4. 最小必要改动。
生产级重构要控制变更半径。优先做局部可验证优化,而不是大范围重写。
## 模块协作规则
- 根目录 `AGENTS.md` 负责全局工程目标、质量标准和交付口径。
- 如果某个子目录存在更具体的上下文文件,进入该子目录后必须叠加遵守。
- 当前已知局部规则文件:
- [CLAUDE.md](/home/long/project/立交桥/supply-api/CLAUDE.md)
尤其在 `supply-api/` 下工作时,必须同时遵守该文件中的 Go、审计、健康检查、错误处理与接口规范。
## 默认工作流
### 1. 接任务先判断类型
- 缺陷修复:先复现,再定位根因,再补验证
- 重构优化:先确定是否触及公共契约、数据库、接口行为
- 新能力开发:先定义边界、非目标、失败处理和验证策略
- 文档完善:必须围绕真实运行主链路组织,而不是只写静态介绍
### 2. 对每项改动至少回答
- 改的是什么问题
- 根因是什么
- 影响哪些模块和接口
- 有哪些风险和回归点
- 如何验证主路径与失败路径
## 质量门槛
### 稳定性
- 关键路径要有明确错误处理
- 不能依赖静默失败或“日志里写一下就算处理”
- 外部依赖异常时,必须明确 fail-open 或 fail-closed 策略
### 性能
- 涉及核心路径时,关注响应时间、并发竞争、数据库访问次数、缓存命中和超时边界
- 性能优化必须建立在测量或明确瓶颈判断上,不做拍脑袋优化
### 安全
- 不暴露内部实现细节、敏感数据、密钥和隐私字段
- 审计、鉴权、幂等、配额、状态机类改动要格外谨慎
- 高风险默认拒绝“假成功”
### 可维护性
- 命名、接口、日志、错误码、迁移脚本要保持一致
- 不引入一次性“补丁风格”代码路径
- 复杂逻辑必须让下一位维护者能读懂
## 测试与验证
### 完成标准默认包含
- 至少一条主路径验证
- 至少一条关键失败路径验证
- 如涉及公共接口、存储、并发、审计、权限或计费,必须提高验证强度
### 不算完成的情况
- 代码写了,但主链路未接入
- 只过了编译,没有跑关键验证
- 只测了 happy path没有测约束/异常/冲突场景
- 只写了文档或注释,没有修复行为本身
## 目录级关注点
- `gateway/`:协议边界、鉴权、路由、可观测性、退化策略
- `internal/`:领域边界、内部服务、公共库稳定性
- `platform-token-runtime/`:运行时状态、令牌/资源约束、异常恢复
- `supply-api/`:遵守子目录局部规则,重视契约和审计
- `sql/`:迁移安全、兼容性、回滚路径
- `scripts/`:部署/运维脚本幂等性与可重复执行
- `tests/`:优先覆盖真实风险点,不追求无意义覆盖率
## 文档要求
- 记录真实系统行为,而不是理想化状态
- 部署、排障、接口、重构说明应围绕实际操作路径组织
- 对未完成能力要明确标注状态,避免误导为“已经上线可用”
## 禁止事项
- 不要把 Demo 级实现包装成生产完成
- 不要用“大概可用”替代验证
- 不要在没有迁移与回归考虑时随意调整接口或数据结构
- 不要为了短期推进牺牲长期可维护性,除非明确标注为临时方案
<claude-mem-context>
# Memory Context
# [立交桥] recent context, 2026-04-25 11:41pm GMT+8
No previous sessions found.
</claude-mem-context>