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 命令)
|
||
- 后续:无
|
||
|
||
## 风险评估
|
||
|
||
- **风险等级**:高
|
||
- **潜在影响**:
|
||
- 大型项目可能需要多次对话完成
|
||
- 区块划分不当可能导致重复工作
|
||
- 流程图质量影响用户理解
|
||
- **缓解措施**:
|
||
- 完善的进度跟踪机制
|
||
- 用户确认关键决策
|
||
- 参考优秀的流程图设计
|