4.4 KiB
4.4 KiB
子计划 5:用户流程图命令实现
目标
创建 /aide:user-graph 命令,实现面向用户的长期维护流程图系统,支持分步执行和接续执行。
具体步骤
5.1 添加配置项
位置:aide-program/aide/ 配置模块
新增配置项:
[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 分析和计划阶段
当计划文件不存在时:
-
加载项目文档:
- 读取
.aide/project-docs/下的项目文档 - 了解项目结构和模块
- 读取
-
区块划分(按业务逻辑整体):
- 不同于项目文档的深度全覆盖
- 目标是呈现整体形式
- 识别独立的开发项目/模块
-
复杂度分析:
- 评估每个区块的复杂度
- 估算每个区块需要的工作量
- 识别可能需要细分的大型区块
-
生成计划文档(plan.md):
# 用户流程图编写计划
## 项目概述
[基于项目文档的简要描述]
## 区块划分
| # | 区块名称 | 类型 | 复杂度 | 状态 |
|---|----------|------|--------|------|
| 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.6 流程图类型
根据项目内容决定流程图类型:
不含程序的项目:
- 引导用户了解项目的流程图
- 内容导航图
- 学习路径图
含程序的项目:
- 引导流程图(如何了解项目)
- 程序逻辑流图(参考 /aide:run 中的规范)
- 入口点
- 控制结构
- 语义化抽象
- 模块化表示
- 层次化组织
5.7 一套流程图的标准
每个开发项目/区块应包含:
-
guide.puml:子项目导览
- 模块概览
- 调用关系
- 数据流向
-
子模块 puml:详细流程
- 核心逻辑
- 关键函数
- 状态转换
5.8 分步执行机制
为支持大型项目的分步执行:
- 进度持久化:通过 plan.md 记录进度
- 接续点精确定位:通过区块+步骤编号
- 上下文恢复:每次执行前读取项目文档和计划
- 增量产出:每步完成后保存产出的 puml 文件
验证标准
- 计划文档格式正确,信息完整
- 区块划分合理,符合业务逻辑
- 接续执行能正确定位进度
- 生成的流程图符合 PlantUML 语法
- 流程图能正确生成 PNG
依赖
- 前置:子计划 4(user-docs 命令)
- 后续:无
风险评估
- 风险等级:高
- 潜在影响:
- 大型项目可能需要多次对话完成
- 区块划分不当可能导致重复工作
- 流程图质量影响用户理解
- 缓解措施:
- 完善的进度跟踪机制
- 用户确认关键决策
- 参考优秀的流程图设计