7.2 KiB
Aide 用户流程图生成
你正在执行 Aide 用户流程图生成流程。这个命令帮助用户创建面向用户的长期维护流程图系统。
此命令支持分步执行和接续执行,适用于大型项目。
这可能是一个非常长的任务,因此规划您的工作可能会很有益。**建议花费您的整个输出上下文来处理任务 - 只需确保您不会在有大量未提交的工作时用尽上下文。**继续系统地工作,直到您完成此任务。**您的上下文窗口将在接近其限制时自动压缩,允许您从中断的地方继续无限期地工作。因此,不要因为令牌预算问题而提前停止任务。**当您接近令牌预算限制时,在上下文窗口刷新前将您当前的进度和状态保存到内存中。始终尽可能坚持和自主,并完全完成任务,即使您的预算即将用尽。无论剩余上下文如何,永远不要人为地提前停止任何任务。
前置准备
首先检查项目文档是否存在。
aide config get docs.path
如果项目文档目录(.aide/project-docs/)不存在:
用户流程图依赖项目文档来了解项目结构。建议先执行
/aide:docs和/aide:load。
使用 AskUserQuestion 询问:
- 先执行 /aide:docs(推荐)
- 继续(基于代码分析)
开始
检查计划文件
aide config get user_docs.graph_plan_path
读取配置的计划文件路径,检查文件是否存在。
根据计划文件状态决定流程:
- 计划文件不存在 → 进入分析和计划阶段
- 计划文件存在 → 进入接续执行阶段
分析和计划阶段
当 docs/graph-guide/plan.md 不存在时执行此流程。
1. 加载项目文档
读取 .aide/project-docs/ 下的项目文档:
-
读取总导览(
README.md)获取:- 项目类型(文档/程序/混合)
- 子项目/模块列表
- 技术栈信息
-
阅读相关区块文档了解详细结构
2. 区块划分
划分原则(与项目文档不同):
- 目标是呈现整体形式
- 按业务逻辑或独立开发项目划分
- 不追求深度全覆盖
区块类型:
| 类型 | 说明 | 典型内容 |
|---|---|---|
| 库项目 | 独立的库/工具包 | API 设计、核心逻辑 |
| 应用 | 可运行的程序 | 启动流程、业务逻辑 |
| 前端 | UI 相关 | 组件结构、数据流 |
| 文档 | 纯文档项目 | 内容导航、学习路径 |
3. 复杂度分析
对每个区块评估:
| 复杂度 | 特征 | 预估步骤数 |
|---|---|---|
| 低 | 单模块,逻辑简单 | 2-3 |
| 中 | 多模块,有交互 | 4-6 |
| 高 | 复杂系统,多层次 | 7+ |
4. 生成计划文档
在 docs/graph-guide/ 目录创建 plan.md:
# 用户流程图编写计划
## 项目概述
{{基于项目文档的简要描述}}
## 区块划分
| # | 区块名称 | 类型 | 复杂度 | 状态 |
|---|----------|------|--------|------|
{{BLOCKS_TABLE}}
## 执行步骤
### 区块 1: {{BLOCK_1_NAME}}
- [ ] 步骤 1.1: 分析模块结构
- [ ] 步骤 1.2: 编写 guide.puml
- [ ] 步骤 1.3: 编写 {{module}}.puml
...
### 区块 2: {{BLOCK_2_NAME}}
- [ ] 步骤 2.1: ...
...
## 当前进度
- 当前区块:0(未开始)
- 当前步骤:-
- 最后更新:{{TIMESTAMP}}
## 备注
(执行过程中的记录)
5. 创建目录结构
aide config get user_docs.graph_path
创建流程图目录和子目录:
docs/graph-guide/
├── plan.md
└── {{block_name}}/ # 每个区块一个目录
6. 用户确认
流程图编写计划已生成。
区块划分: {{BLOCKS_SUMMARY}}
预估步骤:共 {{TOTAL_STEPS}} 步
是否开始执行?
选项:
- 开始执行(推荐)
- 调整计划
- 稍后执行
如选择开始执行,进入步骤执行流程。
接续执行阶段
当 docs/graph-guide/plan.md 存在时执行此流程。
1. 读取计划文档
解析 plan.md 获取:
- 区块列表和状态
- 当前进度(区块和步骤)
- 历史备注
2. 显示进度
流程图编写进度
当前区块:{{CURRENT_BLOCK}} 当前步骤:{{CURRENT_STEP}} 已完成步骤:{{COMPLETED_STEPS}}/{{TOTAL_STEPS}} 上次更新:{{LAST_UPDATE}}
3. 确认继续
使用 AskUserQuestion:
是否从当前进度继续执行?
选项:
- 继续执行(推荐)
- 查看计划详情
- 重新开始(清空进度)
步骤执行流程
执行单个步骤
对于每个步骤:
-
显示当前任务:
正在执行:{{STEP_DESCRIPTION}}
-
执行步骤:
- 分析相关代码/文档
- 生成/更新 puml 文件
-
更新计划文档:
- 标记步骤完成
- 更新当前进度
- 记录时间戳
-
保存产出:
- 写入 puml 文件
- 调用 PlantUML 生成 PNG(如配置)
步骤间询问
每完成一个步骤后询问:
步骤 {{STEP_ID}} 已完成。
是否继续下一步?
选项:
- 继续(推荐)
- 查看产出
- 暂停(保存进度)
如选择暂停,保存进度后结束本次执行。
流程图内容规范
总导览流程图(guide.puml)
每个区块的 guide.puml 应包含:
- 模块概览
- 调用关系
- 数据流向
详细流程图(module.puml)
不含程序的项目
- 内容导航图
- 学习路径图
- 概念关系图
含程序的项目
参考 /aide:run 中的程序逻辑流图规范:
- 入口点:从程序入口开始
- 控制结构:体现顺序、分支、循环
- 语义化抽象:人类可理解的业务描述
- 模块化表示:
- 函数/模块表示为"盒子"
- 标注输入输出
- 层次化组织:
- 主流程图 + 详细子图
PlantUML 模板
@startuml guide
!theme plain
skinparam backgroundColor #FFFFFF
title {{区块名称}} - 导览
' 模块定义
package "{{Module A}}" {
[Component 1]
[Component 2]
}
package "{{Module B}}" {
[Component 3]
}
' 关系
[Component 1] --> [Component 2]
[Component 2] --> [Component 3]
@enduml
目录结构
最终生成的目录结构:
docs/graph-guide/
├── plan.md # 计划和进度文档
├── guide.puml # 总导览流程图(可选)
├── {{block-1}}/ # 区块 1
│ ├── guide.puml # 区块导览
│ ├── module-a.puml # 模块 A 流程图
│ └── module-b.puml # 模块 B 流程图
├── {{block-2}}/ # 区块 2
│ ├── guide.puml
│ └── ...
└── ...
配置项
| 配置项 | 默认值 | 说明 |
|---|---|---|
user_docs.graph_path |
docs/graph-guide |
流程图目录路径 |
user_docs.graph_plan_path |
docs/graph-guide/plan.md |
计划文件路径 |
注意事项
- 分步执行:大型项目建议分多次对话完成
- 进度持久化:进度保存在 plan.md,可随时接续
- PNG 生成:需要配置 PlantUML(参考
[plantuml]配置) - 与项目文档关联:依赖项目文档了解项目结构
- 用户参与:关键决策需用户确认