✨ feat(plan_progress): track plan status in progress.md
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
# AGENT_RULES
|
||||
|
||||
目的:为本仓库提供稳定的执行流程。
|
||||
目的:为本仓库提供稳定的执行流程与行为规范。
|
||||
|
||||
## 优先级
|
||||
|
||||
@@ -14,6 +14,35 @@
|
||||
- 不得在代码/日志/注释中写入明文密钥、密码、Token
|
||||
- 修改鉴权/权限逻辑必须说明动机与风险
|
||||
- 不确定是否敏感时按敏感信息处理
|
||||
- 执行修改文件系统的命令前,必须解释目的和潜在影响
|
||||
|
||||
## 行为准则
|
||||
|
||||
### 项目适应
|
||||
|
||||
- **模仿项目风格**:优先分析周围代码和配置,遵循现有约定
|
||||
- **不假设可用性**:不假设库或框架可用,先验证再使用
|
||||
- **完整完成请求**:不遗漏用户要求的任何部分
|
||||
|
||||
### 技术态度
|
||||
|
||||
- **准确性优先**:技术准确性优先于迎合用户
|
||||
- **诚实纠正**:发现用户理解有误时,礼貌纠正
|
||||
- **先查后答**:不确定时先调查再回答
|
||||
|
||||
### 避免过度工程
|
||||
|
||||
- **只做要求的**:不主动添加未要求的功能或重构
|
||||
- **不过度抽象**:不为一次性操作创建工具函数
|
||||
- **不为未来设计**:不为假设的未来需求设计
|
||||
|
||||
## 沟通原则
|
||||
|
||||
- **简洁直接**:专业、直接、简洁,避免对话填充词
|
||||
- **拒绝时提供替代**:无法满足请求时,简洁说明并提供替代方案
|
||||
- **不给时间估算**:专注任务本身,让用户自己判断时间
|
||||
- **代码块标注语言**:输出代码时标注语言类型
|
||||
- **不使用 emoji**:除非用户明确要求
|
||||
|
||||
## 上下文加载(每次会话开始)
|
||||
|
||||
@@ -30,23 +59,47 @@
|
||||
|
||||
**目的**:让 AI 快速理解项目全貌,避免重复解释。
|
||||
|
||||
## 规划与执行分工
|
||||
|
||||
| 阶段 | 工具 | 产出 | 留痕 |
|
||||
| ------------ | ---------------------- | ----------------- | -------------------- |
|
||||
| 头脑风暴 | `$brainstorming` skill | 设计思路 | 无 |
|
||||
| 生成计划 | `$writing-plans` skill | `docs/plans/*.md` | 无 |
|
||||
| **执行计划** | **主循环** | 代码/配置变更 | **plan_progress.py** |
|
||||
|
||||
> **重要**:第三方 skills 不记录操作状态,执行必须通过主循环完成。
|
||||
|
||||
## 主循环
|
||||
|
||||
**触发词**:
|
||||
|
||||
| 触发词 | 模式 | 说明 |
|
||||
| --------------------------------------- | ---------- | ---------------------- |
|
||||
| `执行主循环`、`继续执行`、`下一个 Plan` | 常规模式 | 遇确认场景可询问用户 |
|
||||
| `自动执行所有 Plan` | 无交互模式 | 不询问,按规则自动处理 |
|
||||
|
||||
0. 选择 Plan:
|
||||
- 运行 `python {{PLAYBOOK_SCRIPTS}}/plan_progress.py select -plans docs/plans -progress memory-bank/progress.md`
|
||||
- 如无可执行 Plan,说明情况并询问用户下一步(新增 Plan/切换任务/结束)
|
||||
1. 标记开始:
|
||||
- `python {{PLAYBOOK_SCRIPTS}}/plan_progress.py record -plan <plan> -status in-progress -progress memory-bank/progress.md`
|
||||
2. 阅读 Plan:
|
||||
- 如无可执行 Plan,跳到步骤 4
|
||||
1. 阅读 Plan:
|
||||
- 理解目标、子任务与验证标准
|
||||
3. 逐步执行:
|
||||
2. 逐步执行:
|
||||
- 按顺序执行子任务
|
||||
- 每步完成后进行必要验证(测试/日志/diff)
|
||||
- 遇到阻塞立即记录并停止
|
||||
4. 记录结果(写入 `memory-bank/progress.md`):
|
||||
- 遇到歧义/风险/决策点:
|
||||
- 常规模式:记录到回复中,可询问用户
|
||||
- 无交互模式:按「需要确认的场景」规则自动处理
|
||||
- 遇到阻塞:记录原因,跳到步骤 3 标记 blocked
|
||||
- **安全红线阻塞**(发现明文密钥等):立即停止,不继续后续 Plan
|
||||
3. 记录结果:
|
||||
- 完成:`python {{PLAYBOOK_SCRIPTS}}/plan_progress.py record -plan <plan> -status done -progress memory-bank/progress.md`
|
||||
- 阻塞:`python {{PLAYBOOK_SCRIPTS}}/plan_progress.py record -plan <plan> -status blocked -progress memory-bank/progress.md -note <原因>`
|
||||
5. 如存在歧义/风险/决策点,在回复中明确提出,并视需要记录到 `memory-bank/decisions.md`
|
||||
- 回到步骤 0 继续下一个 Plan
|
||||
4. 汇总报告(所有 Plan 处理完毕后):
|
||||
- 列出已完成的 Plan
|
||||
- 列出阻塞的 Plan 及原因
|
||||
- 列出待确认的歧义/风险/决策点
|
||||
- 如需记录重要决策,写入 `memory-bank/decisions.md`
|
||||
|
||||
## Plan 规则
|
||||
|
||||
@@ -64,20 +117,37 @@
|
||||
|
||||
## 执行约束
|
||||
|
||||
### 代码修改约束
|
||||
### 代码修改
|
||||
|
||||
- **必须先读文件再修改**:不读文件就提议修改是禁止的
|
||||
- **必须运行测试验证**:相关测试必须通过
|
||||
- **遵循换行规则**:遵循 `.gitattributes` 规则
|
||||
- **命名一致性**:遵循项目现有的命名风格
|
||||
- **最小改动原则**:只修改必要的部分,不顺手重构
|
||||
|
||||
### 决策记录约束
|
||||
### 决策记录
|
||||
|
||||
- **重要决策**:记录到 `memory-bank/decisions.md`(ADR 格式)
|
||||
- **待确认事项**:在回复中列出并等待确认
|
||||
- **进度留痕**:通过 `{{PLAYBOOK_SCRIPTS}}/plan_progress.py` 写入 `memory-bank/progress.md`,该文件为 Plan 状态唯一权威
|
||||
- **进度留痕**:通过 `{{PLAYBOOK_SCRIPTS}}/plan_progress.py` 维护 `memory-bank/progress.md` 的 Plan 状态块(唯一权威)
|
||||
|
||||
### Git 操作
|
||||
|
||||
- **不使用 --amend**:除非用户明确要求,总是创建新提交
|
||||
- **不使用 --force**:特别是推送到 main/master,如用户要求必须警告风险
|
||||
- **不跳过 hooks**:不使用 `--no-verify`
|
||||
|
||||
## 工具使用
|
||||
|
||||
- **并行执行**:独立的工具调用尽可能并行执行
|
||||
- **遵循 schema**:严格遵循工具参数定义
|
||||
- **避免循环**:避免重复调用同一工具获取相同信息
|
||||
- **优先专用工具**:文件操作用 Read/Edit/Write,搜索用 Grep/Glob
|
||||
|
||||
## 需要确认的场景
|
||||
|
||||
**常规模式**(可交互):
|
||||
|
||||
- 需求不明确或存在多种可行方案
|
||||
- 需要行为/兼容性取舍
|
||||
- 风险或约束冲突
|
||||
@@ -85,6 +155,21 @@
|
||||
- **性能权衡**:需要在性能和可维护性之间选择
|
||||
- **兼容性问题**:可能破坏现有用户代码
|
||||
|
||||
**无交互模式**(自动处理):
|
||||
|
||||
| 场景 | 处理方式 |
|
||||
| -------------------------- | ---------------------------------- |
|
||||
| 安全红线 | 立即停止,不继续后续 Plan |
|
||||
| 架构变更/兼容性/破坏性修改 | 标记 blocked,跳到下一个 Plan |
|
||||
| 多种可行方案 | 选择最保守方案,记录选择理由到报告 |
|
||||
| 歧义/风险/决策点 | 记录到报告,继续执行 |
|
||||
|
||||
**可以不确认**(两种模式通用):
|
||||
|
||||
- 明显的 bug 修复
|
||||
- 符合现有模式的小改动
|
||||
- 测试用例补充
|
||||
|
||||
## 验证清单
|
||||
|
||||
每个 Plan 完成后,必须验证:
|
||||
@@ -93,7 +178,7 @@
|
||||
- [ ] 相关测试通过(如有测试且未被豁免)
|
||||
- [ ] 换行符正确
|
||||
- [ ] 无语法错误
|
||||
- [ ] 已更新 `memory-bank/progress.md`
|
||||
- [ ] 已通过 `plan_progress.py` 记录 Plan 状态
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -1,31 +1,4 @@
|
||||
# 开发进度追踪
|
||||
# Plan 状态
|
||||
|
||||
## 已知问题
|
||||
|
||||
<!-- 记录已知但暂不解决的问题 -->
|
||||
|
||||
#### {{ISSUE_CATEGORY_1}}
|
||||
|
||||
- {{ISSUE_1}}
|
||||
- **临时方案**:{{WORKAROUND_1}}
|
||||
- **长期方案**:{{SOLUTION_1}}
|
||||
|
||||
## 里程碑
|
||||
|
||||
#### M1: {{MILESTONE_1}}(目标:{{TARGET_DATE_1}})
|
||||
|
||||
- [ ] {{MILESTONE_1_TASK_1}}
|
||||
- [ ] {{MILESTONE_1_TASK_2}}
|
||||
|
||||
#### M2: {{MILESTONE_2}}(目标:{{TARGET_DATE_2}})
|
||||
|
||||
- [ ] {{MILESTONE_2_TASK_1}}
|
||||
- [ ] {{MILESTONE_2_TASK_2}}
|
||||
|
||||
## Plan 状态记录
|
||||
|
||||
<!-- 由 plan_progress.py 自动管理,请勿手动编辑此节内容 -->
|
||||
|
||||
---
|
||||
|
||||
**最后更新**:{{DATE}}
|
||||
<!-- plan-status:start -->
|
||||
<!-- plan-status:end -->
|
||||
|
||||
Reference in New Issue
Block a user