195 lines
4.4 KiB
Markdown
195 lines
4.4 KiB
Markdown
|
|
# 子计划 5:用户流程图命令实现
|
|||
|
|
|
|||
|
|
## 目标
|
|||
|
|
|
|||
|
|
创建 `/aide:user-graph` 命令,实现面向用户的长期维护流程图系统,支持分步执行和接续执行。
|
|||
|
|
|
|||
|
|
## 具体步骤
|
|||
|
|
|
|||
|
|
### 5.1 添加配置项
|
|||
|
|
|
|||
|
|
**位置**:`aide-program/aide/` 配置模块
|
|||
|
|
|
|||
|
|
**新增配置项**:
|
|||
|
|
|
|||
|
|
```toml
|
|||
|
|
[user_docs]
|
|||
|
|
# 用户流程图目录路径(相对于项目根目录)
|
|||
|
|
graph_path = "docs/graph-guide"
|
|||
|
|
|
|||
|
|
# 流程图计划文件路径
|
|||
|
|
graph_plan_path = "docs/graph-guide/plan.md"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 5.2 创建命令文件
|
|||
|
|
|
|||
|
|
**位置**:`aide-marketplace/aide-plugin/commands/user-graph.md`
|
|||
|
|
|
|||
|
|
**命令流程**:
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
开始
|
|||
|
|
│
|
|||
|
|
├─ 检查计划文件是否存在
|
|||
|
|
│ │
|
|||
|
|
│ ├─ 不存在 → 进入分析和计划阶段
|
|||
|
|
│ │
|
|||
|
|
│ └─ 存在 → 进入接续执行阶段
|
|||
|
|
│
|
|||
|
|
└─ 结束
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 5.3 流程图目录结构设计
|
|||
|
|
|
|||
|
|
以用户示例为参考(api-lib + api + user-interface):
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
docs/graph-guide/
|
|||
|
|
├── plan.md # 计划和进度文档
|
|||
|
|
├── guide.puml # 总导览流程图
|
|||
|
|
├── api-lib/ # 子项目 1
|
|||
|
|
│ ├── guide.puml # 子项目导览
|
|||
|
|
│ ├── module-a.puml # 模块 A 流程图
|
|||
|
|
│ └── module-b.puml # 模块 B 流程图
|
|||
|
|
├── api/ # 子项目 2
|
|||
|
|
│ ├── guide.puml
|
|||
|
|
│ └── ...
|
|||
|
|
└── user-interface/ # 子项目 3
|
|||
|
|
├── guide.puml
|
|||
|
|
└── ...
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 5.4 分析和计划阶段
|
|||
|
|
|
|||
|
|
当计划文件不存在时:
|
|||
|
|
|
|||
|
|
1. **加载项目文档**:
|
|||
|
|
- 读取 `.aide/project-docs/` 下的项目文档
|
|||
|
|
- 了解项目结构和模块
|
|||
|
|
|
|||
|
|
2. **区块划分**(按业务逻辑整体):
|
|||
|
|
- 不同于项目文档的深度全覆盖
|
|||
|
|
- 目标是呈现整体形式
|
|||
|
|
- 识别独立的开发项目/模块
|
|||
|
|
|
|||
|
|
3. **复杂度分析**:
|
|||
|
|
- 评估每个区块的复杂度
|
|||
|
|
- 估算每个区块需要的工作量
|
|||
|
|
- 识别可能需要细分的大型区块
|
|||
|
|
|
|||
|
|
4. **生成计划文档**(plan.md):
|
|||
|
|
|
|||
|
|
```markdown
|
|||
|
|
# 用户流程图编写计划
|
|||
|
|
|
|||
|
|
## 项目概述
|
|||
|
|
[基于项目文档的简要描述]
|
|||
|
|
|
|||
|
|
## 区块划分
|
|||
|
|
|
|||
|
|
| # | 区块名称 | 类型 | 复杂度 | 状态 |
|
|||
|
|
|---|----------|------|--------|------|
|
|||
|
|
| 1 | api-lib | 库项目 | 高 | pending |
|
|||
|
|
| 2 | api | 应用 | 中 | pending |
|
|||
|
|
| 3 | user-interface | 前端 | 中 | pending |
|
|||
|
|
|
|||
|
|
## 执行步骤
|
|||
|
|
|
|||
|
|
### 区块 1: api-lib
|
|||
|
|
- [ ] 步骤 1.1: 分析模块结构
|
|||
|
|
- [ ] 步骤 1.2: 编写 guide.puml
|
|||
|
|
- [ ] 步骤 1.3: 编写 module-a.puml
|
|||
|
|
- [ ] 步骤 1.4: 编写 module-b.puml
|
|||
|
|
...
|
|||
|
|
|
|||
|
|
### 区块 2: api
|
|||
|
|
...
|
|||
|
|
|
|||
|
|
## 当前进度
|
|||
|
|
- 当前区块:1
|
|||
|
|
- 当前步骤:1.1
|
|||
|
|
- 最后更新:[时间戳]
|
|||
|
|
|
|||
|
|
## 备注
|
|||
|
|
[执行过程中的记录]
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
5. **用户确认**:
|
|||
|
|
- 展示计划摘要
|
|||
|
|
- 询问是否开始执行
|
|||
|
|
|
|||
|
|
### 5.5 接续执行阶段
|
|||
|
|
|
|||
|
|
当计划文件存在时:
|
|||
|
|
|
|||
|
|
1. **读取计划文档**
|
|||
|
|
2. **定位当前进度**
|
|||
|
|
3. **继续执行未完成的步骤**
|
|||
|
|
4. **每完成一个步骤,更新计划文档**
|
|||
|
|
|
|||
|
|
### 5.6 流程图类型
|
|||
|
|
|
|||
|
|
根据项目内容决定流程图类型:
|
|||
|
|
|
|||
|
|
**不含程序的项目**:
|
|||
|
|
- 引导用户了解项目的流程图
|
|||
|
|
- 内容导航图
|
|||
|
|
- 学习路径图
|
|||
|
|
|
|||
|
|
**含程序的项目**:
|
|||
|
|
- 引导流程图(如何了解项目)
|
|||
|
|
- 程序逻辑流图(参考 /aide:run 中的规范)
|
|||
|
|
- 入口点
|
|||
|
|
- 控制结构
|
|||
|
|
- 语义化抽象
|
|||
|
|
- 模块化表示
|
|||
|
|
- 层次化组织
|
|||
|
|
|
|||
|
|
### 5.7 一套流程图的标准
|
|||
|
|
|
|||
|
|
每个开发项目/区块应包含:
|
|||
|
|
|
|||
|
|
1. **guide.puml**:子项目导览
|
|||
|
|
- 模块概览
|
|||
|
|
- 调用关系
|
|||
|
|
- 数据流向
|
|||
|
|
|
|||
|
|
2. **子模块 puml**:详细流程
|
|||
|
|
- 核心逻辑
|
|||
|
|
- 关键函数
|
|||
|
|
- 状态转换
|
|||
|
|
|
|||
|
|
### 5.8 分步执行机制
|
|||
|
|
|
|||
|
|
为支持大型项目的分步执行:
|
|||
|
|
|
|||
|
|
1. **进度持久化**:通过 plan.md 记录进度
|
|||
|
|
2. **接续点精确定位**:通过区块+步骤编号
|
|||
|
|
3. **上下文恢复**:每次执行前读取项目文档和计划
|
|||
|
|
4. **增量产出**:每步完成后保存产出的 puml 文件
|
|||
|
|
|
|||
|
|
## 验证标准
|
|||
|
|
|
|||
|
|
- [ ] 计划文档格式正确,信息完整
|
|||
|
|
- [ ] 区块划分合理,符合业务逻辑
|
|||
|
|
- [ ] 接续执行能正确定位进度
|
|||
|
|
- [ ] 生成的流程图符合 PlantUML 语法
|
|||
|
|
- [ ] 流程图能正确生成 PNG
|
|||
|
|
|
|||
|
|
## 依赖
|
|||
|
|
|
|||
|
|
- 前置:子计划 4(user-docs 命令)
|
|||
|
|
- 后续:无
|
|||
|
|
|
|||
|
|
## 风险评估
|
|||
|
|
|
|||
|
|
- **风险等级**:高
|
|||
|
|
- **潜在影响**:
|
|||
|
|
- 大型项目可能需要多次对话完成
|
|||
|
|
- 区块划分不当可能导致重复工作
|
|||
|
|
- 流程图质量影响用户理解
|
|||
|
|
- **缓解措施**:
|
|||
|
|
- 完善的进度跟踪机制
|
|||
|
|
- 用户确认关键决策
|
|||
|
|
- 参考优秀的流程图设计
|