Files
agent-aide/aide-marketplace/aide-plugin/commands/user-graph.md

330 lines
7.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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. **用户参与**:关键决策需用户确认