82 lines
2.5 KiB
Markdown
82 lines
2.5 KiB
Markdown
# AGENT_RULES
|
||
|
||
目的:为本仓库提供稳定的执行流程。
|
||
|
||
## 优先级
|
||
|
||
1. 系统/开发者指令与安全约束
|
||
2. 仓库规则:`.agents/` 与 `AGENTS.md`
|
||
3. 本文件
|
||
4. `TODO.md`
|
||
|
||
## 上下文加载(每次会话开始)
|
||
|
||
**必读文档**(按顺序):
|
||
|
||
1. `memory-bank/project-brief.md` - 项目定位、边界、约束
|
||
2. `memory-bank/tech-stack.md` - 技术栈、工具链
|
||
3. `memory-bank/architecture.md` - 架构设计、模块职责
|
||
4. `TODO.md` - 当前任务队列
|
||
5. `CONFIRM.md` - 待确认事项
|
||
|
||
**目的**:让 AI 快速理解项目全貌,避免重复解释。
|
||
|
||
## 主循环
|
||
|
||
1. 读取 `TODO.md`
|
||
2. 选择最上方的 Plan
|
||
3. **读取 `memory-bank/implementation-plan.md`**(若该 Plan 有对应说明)
|
||
4. 执行该 Plan 内所有可执行子任务
|
||
5. 校验输出结果(运行测试/检查日志)
|
||
6. **更新 `memory-bank/progress.md`**(记录已完成事项)
|
||
7. 如存在歧义/风险/决策点,记录到 `CONFIRM.md`
|
||
8. 若 Plan 已全部完成,则从 `TODO.md` 移除
|
||
9. 若 Plan 因缺少信息而阻塞,标记为 `BLOCKED` 并移到 `TODO.md` 末尾
|
||
10. 重新读取 `TODO.md`,继续下一个 Plan
|
||
|
||
## Plan 规则
|
||
|
||
- 不因等待确认而中断;记录到 `CONFIRM.md` 后继续
|
||
- 执行并验证该 Plan 中所有可执行的子任务
|
||
- 若因缺少信息/决策而阻塞:记录 `CONFIRM.md`,标记为 `BLOCKED`,移到末尾(不移除)
|
||
- 每轮只处理一个 Plan
|
||
- **小步快跑**:每个 Plan 应该可快速完成
|
||
- **可验证**:每个 Plan 必须包含验证步骤
|
||
|
||
## 执行约束
|
||
|
||
### 代码修改约束
|
||
|
||
- **必须先读文件再修改**:不读文件就提议修改是禁止的
|
||
- **必须运行测试验证**:相关测试必须通过
|
||
- **遵循换行规则**:遵循 `.gitattributes` 规则
|
||
|
||
### 决策记录约束
|
||
|
||
- **重要决策**:记录到 `memory-bank/decisions.md`(ADR 格式)
|
||
- **临时确认**:记录到 `CONFIRM.md`(会话级)
|
||
- **进度留痕**:记录到 `memory-bank/progress.md`(持久化)
|
||
|
||
## CONFIRM.md 触发条件
|
||
|
||
- 需求不明确或存在多种可行方案
|
||
- 需要行为/兼容性取舍
|
||
- 风险或约束冲突
|
||
- **架构变更**:影响多个模块的修改
|
||
- **性能权衡**:需要在性能和可维护性之间选择
|
||
- **兼容性问题**:可能破坏现有用户代码
|
||
|
||
## 验证清单
|
||
|
||
每个 Plan 完成后,必须验证:
|
||
|
||
- [ ] 代码修改符合 `.agents/` 下的规则
|
||
- [ ] 相关测试通过
|
||
- [ ] 换行符正确
|
||
- [ ] 无语法错误
|
||
- [ ] 更新了 `memory-bank/progress.md`
|
||
|
||
---
|
||
|
||
**最后更新**:{{DATE}}
|