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