Skip to content

Latest commit

 

History

History
89 lines (59 loc) · 3.79 KB

File metadata and controls

89 lines (59 loc) · 3.79 KB

Agent 协作指南

本文档作为 AI agent 的长期记忆和协作参考。

文档职责

本仓库遵循"代码即文档"原则:

文档 职责 原则
代码本身 具体实现逻辑 自解释,通过测试验证
docs/internal.md 架构文档 极度精简,只记 high-level
docs/dev/behaviors.md 可观测行为契约 能观测到的行为
docs/dev/todo.md 已知问题 & 待办 Bug 分析、改进计划、上游依赖
AGENTS.md 对 agent 的指导性原则 思维模式、决策框架

核心哲学

契约优先:系统演进基于 docs/dev/behaviors.md 定义的行为契约

观测性:关注可观测行为(API 响应、状态转换、UI 变化),而非实现细节

演化性:小步改进,持续优化;不必等到完美重构

验证原则

行为是契约;测试是验证。

测试应聚焦于外部可观测行为,优先用最快的确定性层验证:

  • 纯逻辑 → Unit
  • API 契约 → Integration
  • 用户旅程 → E2E

设计可测试性:当行为只能通过慢/脆弱路径测试时,考虑重构设计(引入 seams、提取纯逻辑、使异步流程可等待)

确定性优于时序:优先用显式就绪信号和可等待完成,而非固定等待

决策启发

何时重构?

当你感到犹豫不适时,就是信号:

• "我不确定改这个会影响哪里" → 耦合度高,考虑解耦 • "测试这个真麻烦" → 可测试性差,考虑引入 seams • "这个文件怎么越来越大" → 职责模糊,考虑拆分 • "为什么要这样设计?" → 缺少上下文,考虑注释或重构

何时更新文档?

契约变化(系统行为/验证方法):API/状态/UI行为 → docs/dev/behaviors.md经验积累(思维模式/原则陷阱):发现新模式/避坑指南 → AGENTS.md架构演进:技术决策、架构概述 → docs/internal.md发现脱节:文档与代码不一致 → 同步或说明原因 • 已知问题/待办:Bug 分析、改进计划、上游依赖 → docs/dev/todo.md

关键原则:当信息能帮助未来agent减少认知负担时,就应该记录。

了解历史

查看 git log --oneline -20 了解最近的修改和决策历史。Git commit message应该清楚说明"为什么"做出某个改变。

如何判断文档质量?

好的文档应该:

  • ✅ 减少认知负担(读后更清晰,而非更困惑)
  • ✅ 提供决策框架(告诉"如何判断",而非"做什么")
  • ✅ 启发主动思考(留有解释空间,而非穷尽场景)

重构文档本身

如果文档让你感到:

  • "这部分好冗长" → 考虑简化或拆分
  • "找不到重点" → 考虑增加结构或标题
  • "不确定是否适用" → 考虑增加原则性指导
  • "文档碎片化,多处重复" → 考虑规整到一处,需要的地方改为索引

设计决策

  • 版本迁移:当前无需考虑(软件未发布),直接做正确的设计
  • 技术债:优先做正确的事,避免为小改动妥协
  • 错误处理:生产代码禁止使用 unwrap(),优先用 ? 传播错误;expect() 仅限"程序无法继续"的初始化场景;unwrap_or* 系列允许使用
  • 提交前:运行相关测试集(backend/frontend/全量)
  • 代码提交:所有对 origin/main 的修改,必须通过 merge PR 的方式进行
  • Git 工作流
    • 禁止跳过 hooks:绝不使用 git commit/push --no-verify,这会绕过 pre-commit 和 pre-push hooks(代码格式化、测试运行、lint 检查),导致不合规代码进入仓库
    • 必须等待测试通过:pre-push hooks 会运行完整测试套件,必须等待测试全部通过后再推送到远程