From 244e8c8f050c6a3b2f3c5c44b90b58ea84016c31 Mon Sep 17 00:00:00 2001 From: "sayurinana(vm)" Date: Mon, 15 Dec 2025 17:45:21 +0800 Subject: [PATCH] =?UTF-8?q?[aide]=20task-optimize:=20=E6=95=B4=E5=90=88?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E5=86=B3=E7=AD=96=EF=BC=8C=E7=94=9F=E6=88=90?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E7=BB=86=E5=88=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .aide/flow-status.json | 10 +- .aide/flow-status.lock | 2 +- .aide/task-spec.md | 310 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 320 insertions(+), 2 deletions(-) create mode 100644 .aide/task-spec.md diff --git a/.aide/flow-status.json b/.aide/flow-status.json index 5a953d1..64ce082 100644 --- a/.aide/flow-status.json +++ b/.aide/flow-status.json @@ -1,7 +1,7 @@ { "task_id": "2025-12-15T17-28-53", "current_phase": "task-optimize", - "current_step": 3, + "current_step": 4, "started_at": "2025-12-15T17:28:53+08:00", "history": [ { @@ -26,6 +26,14 @@ "step": 3, "summary": "任务优化完成,生成待定项", "git_commit": "2bc86b1d893d57e24083775cd51437de6adc46bf" + }, + { + "timestamp": "2025-12-15T17:43:38+08:00", + "action": "next-step", + "phase": "task-optimize", + "step": 4, + "summary": "用户完成待定项确认", + "git_commit": "5cf5a5810c4bd45f4aa18758e1a1e4475e03c175" } ] } diff --git a/.aide/flow-status.lock b/.aide/flow-status.lock index 5b3e06c..33f25e5 100755 --- a/.aide/flow-status.lock +++ b/.aide/flow-status.lock @@ -1 +1 @@ -105261 \ No newline at end of file +106310 \ No newline at end of file diff --git a/.aide/task-spec.md b/.aide/task-spec.md new file mode 100644 index 0000000..2aefdc2 --- /dev/null +++ b/.aide/task-spec.md @@ -0,0 +1,310 @@ +# 任务细则:Aide 工作流体系重构 + +## 任务目标 + +对 Aide 工作流体系进行全面重构,包括: +1. Commands 体系重组(拆分 init、合并 prep+exec、新增文档管理) +2. aide flow 功能增强(状态查看、流程图集成) +3. 配置系统完善(自文档化、新增配置项) +4. 项目文档体系建立(面向 LLM 的区块化文档系统) +5. 任务分析阶段增强(复杂度评估、子计划拆分) + +## 成功标准 + +1. **Commands 重组完成** + - `/aide:setup` 命令实现环境依赖分析、配置、检测、修复功能 + - `/aide:load` 命令实现项目文档按需载入功能 + - `/aide:docs` 命令实现项目文档创建和维护功能 + - `/aide:run` 命令整合原 prep 和 exec 功能,支持流程状态检测和续接 + +2. **aide flow 增强完成** + - 支持 `aide flow status` 查看当前任务状态 + - 支持 `aide flow list` 查看所有任务列表 + - 支持 `aide flow show ` 查看详细状态 + - flow-design 阶段强制 PlantUML 流程图,集成校验和构建 + +3. **配置系统完善** + - 配置文件完全自文档化(所有配置项含注释说明) + - 新增 `.gitignore` 忽略 `.aide` 目录的可配置选项 + - 新增项目文档路径配置项 + - 新增流程图目录路径配置项 + - PlantUML jar 路径配置 + +4. **项目文档体系建立** + - 文档结构规范设计完成 + - 区块划分规则制定完成 + - 支持总导览 + 多子区块的文档结构 + - 支持增量更新(无需了解全局即可修改局部) + +5. **任务分析增强完成** + - 复杂度评估指导原则制定 + - 复杂任务自动拆分为子计划 + - 子计划循环执行机制实现 + +--- + +## 技术决策 + +### 1. Commands 命名方案 +| 命令 | 功能 | 独立运行 | +|------|------|----------| +| `/aide:setup` | 环境依赖分析、配置、检测、修复 | 是 | +| `/aide:load` | 项目文档按需载入,了解项目脉络 | 否(由 run 调用) | +| `/aide:docs` | 项目文档创建和维护 | 是 | +| `/aide:run` | 任务准备 + 任务执行(合并 prep+exec) | 否 | + +### 2. 流程图要求 +- **强制要求**:所有任务必须有流程图,无例外 +- **目的**:规范化思考,方便用户审阅,早期发现逻辑错误 + +### 3. PlantUML 依赖处理 +- **方式**:本地 java + 本地 jar +- **来源**:复制 `/home/user/env-hub/jar/plantuml.jar` 到 `aide-program/` 目录 +- **配置**:jar 路径写入 aide 程序配置 + +### 4. 任务复杂度判断 +- **方式**:LLM 综合判断 +- **依据**:详细的指导原则(见附录) + +### 5. prep+exec 合并命令 +- **命名**:`/aide:run` +- **行为**:启动时检查 flow 状态,根据状态决定新建或续接 + +--- + +## 执行步骤 + +本任务拆分为 **6 个子计划**,按依赖顺序执行: + +### 子计划 1:配置系统增强 + +**目标**:完善 aide 配置系统,为后续功能提供基础支持 + +**步骤**: +1. 修改 `aide-program/aide/core/config.py`,增加新配置项支持 +2. 更新配置文件模板,添加完整注释(自文档化) +3. 新增配置项: + - `[general]` 节:`gitignore_aide = true/false` + - `[docs]` 节:`path = "..."`, `block_plan_path = "..."` + - `[flow]` 节:`diagram_path = "..."` + - `[plantuml]` 节:`jar_path = "..."` +4. 修改 `aide init` 逻辑,根据 `gitignore_aide` 配置决定是否添加忽略项 +5. 复制 plantuml.jar 到 aide-program 目录 +6. 更新相关设计文档 + +**交付物**: +- 更新后的 `config.py` +- 自文档化的配置文件模板 +- `aide-program/lib/plantuml.jar` + +--- + +### 子计划 2:aide flow 状态查看功能 + +**目标**:支持查看流程信息,为 `/aide:run` 续接功能提供依赖 + +**步骤**: +1. 设计 flow 状态数据存储格式(`.aide/flow-status.json` 增强) +2. 实现 `aide flow status` 子命令: + - 显示当前任务进度(环节、简述、时间戳、git 提交标识) +3. 实现 `aide flow list` 子命令: + - 列出所有任务的名称和 task_id +4. 实现 `aide flow show ` 子命令: + - 显示指定任务的详细状态历史 +5. 更新 skill 文档(aide skill) +6. 更新设计文档 + +**交付物**: +- flow 子命令增强实现 +- 更新后的 skill 文档 + +--- + +### 子计划 3:aide flow 流程图集成 + +**目标**:在 flow-design 阶段集成 PlantUML 校验和构建 + +**步骤**: +1. 创建 PlantUML 环境检测模块 `aide-program/aide/env/modules/plantuml.py` +2. 实现 PlantUML 语法校验功能 +3. 实现 PlantUML 构建功能(生成 PNG) +4. 修改 flow 相关逻辑: + - `next-step` 在 flow-design 阶段校验流程图目录下的 .puml 文件 + - `next-part impl` 时先校验,通过后批量构建 PNG + - 校验失败时记录状态并提交 git,返回错误提示 +5. 更新设计文档 + +**交付物**: +- `plantuml.py` 环境模块 +- flow 流程图集成逻辑 +- 相关设计文档 + +--- + +### 子计划 4:项目文档体系设计与实现 + +**目标**:建立面向 LLM 的区块化项目文档体系 + +**步骤**: +1. 设计文档结构规范: + - 总导览文档格式 + - 子区块文档格式 + - 区块划分规则 +2. 设计文档创建流程: + - 目录探索 → 区块划分 → 逐区块深度了解 → 文档生成 +3. 设计文档更新流程: + - 分区块验证 → 差异检测 → 增量更新 +4. 创建 `/aide:docs` command 执行文件 +5. 更新相关 skill 文档 +6. 更新设计文档 + +**交付物**: +- 文档结构规范文档 +- `/aide:docs` command +- 相关 skill 和设计文档 + +--- + +### 子计划 5:Commands 重组 + +**目标**:重新组织 aide-plugin 的 commands + +**步骤**: +1. 创建 `/aide:setup` command: + - 强制触发 env-config skill + - 专注环境依赖分析、配置、检测、修复 + - 独立运行设计 +2. 创建 `/aide:load` command: + - 项目文档按需载入 + - 初次仅了解项目脉络 + - 支持后续按需深入 +3. 重构 `/aide:run` command(合并 prep + exec): + - 启动时检查 flow 状态 + - flow 为空或已 finish:启动新 flow(从 task-optimize 开始) + - flow 未完成:分析进度,按需载入文档,续接任务 + - 强制触发 aide skill +4. 删除或重命名原 init/prep/exec commands +5. 更新 plugin.json +6. 更新设计文档 + +**交付物**: +- `/aide:setup` command +- `/aide:load` command +- `/aide:docs` command(子计划 4 产出) +- `/aide:run` command +- 更新后的 plugin.json + +--- + +### 子计划 6:任务分析阶段增强 + +**目标**:支持复杂任务识别和拆分 + +**步骤**: +1. 制定任务复杂度评估指导原则(见附录) +2. 设计子计划结构: + - 任务计划总导览格式 + - 子计划细则格式 +3. 实现复杂任务拆分逻辑(在 `/aide:run` 的 task-optimize 阶段) +4. 实现子计划循环执行机制: + - task-optimize → [flow-design → impl → verify → docs] × N → finish +5. 更新 `/aide:run` command +6. 更新设计文档 + +**交付物**: +- 复杂度评估指导原则文档 +- 子计划相关格式规范 +- 更新后的 `/aide:run` command + +--- + +## 约束与边界 + +### 范围内 +- aide-plugin 的 commands 和 skills 修改 +- aide-program 的功能增强 +- 相关设计文档更新 + +### 范围外 +- 现有环境检测模块(python, uv, rust, node 等)的修改 +- aide decide 功能的修改 +- docs/ 下的教程文档(如自定义斜杠命令指南等) + +### 技术约束 +- Python >= 3.11 +- 使用 uv 管理虚拟环境 +- 输出使用 `core/output.py` 格式 +- PlantUML 使用本地 java + jar 方式 + +--- + +## 附录:任务复杂度评估指导原则 + +### 一、评估维度 + +#### 1. 结构维度 +- **模块数量**:涉及多少个独立的功能模块或代码区块? +- **文件数量**:预计需要创建或修改多少个文件? +- **依赖关系**:模块之间的依赖关系是否复杂?是否存在循环依赖? + +#### 2. 逻辑维度 +- **业务逻辑**:是否涉及复杂的业务规则或算法? +- **状态管理**:是否需要管理复杂的状态转换? +- **边界条件**:是否存在大量需要处理的边界情况? + +#### 3. 集成维度 +- **外部依赖**:是否需要集成外部服务或 API? +- **数据格式**:是否涉及复杂的数据转换或格式处理? +- **兼容性**:是否需要考虑向后兼容或多版本支持? + +#### 4. 风险维度 +- **技术风险**:是否涉及不熟悉的技术栈或新框架? +- **影响范围**:修改是否会影响现有功能的稳定性? +- **回滚难度**:如果出错,是否容易回滚? + +### 二、复杂度等级 + +| 等级 | 描述 | 特征 | 处理方式 | +|------|------|------|----------| +| **简单** | 单一明确的小任务 | 单文件或少量文件修改,逻辑清晰,无复杂依赖 | 直接执行 | +| **中等** | 涉及多个相关组件 | 2-4 个模块,有一定依赖关系,需要协调修改 | 直接执行,注意顺序 | +| **复杂** | 跨多个子系统的任务 | 5+ 模块,复杂依赖,涉及架构调整 | **必须拆分为子计划** | +| **超大** | 系统性重构或新系统 | 10+ 模块,全面重构,涉及多个子系统 | 拆分为多个独立任务 | + +### 三、拆分判断标准 + +当满足以下任一条件时,**应当拆分为子计划**: + +1. **模块标准**:涉及 3 个以上相对独立的功能模块 +2. **阶段标准**:任务自然分为多个可独立交付的阶段 +3. **风险标准**:存在高风险环节,需要阶段性验证 +4. **依赖标准**:存在明确的前后依赖关系,前置任务完成后才能进行后续任务 +5. **上下文标准**:单次对话可能无法完成,需要多次对话续接 + +### 四、拆分原则 + +1. **独立性**:每个子计划应该有独立的目标和交付物 +2. **完整性**:每个子计划完成后应该是可验证的完整状态 +3. **顺序性**:子计划之间的依赖关系要明确,执行顺序要清晰 +4. **粒度适中**:子计划不宜过大(难以完成)或过小(增加管理开销) + +### 五、评估流程 + +``` +1. 阅读任务描述,识别所有涉及的功能点 +2. 分析功能点之间的依赖关系 +3. 按四个维度评估复杂度 +4. 确定复杂度等级 +5. 如果是复杂或超大任务: + a. 识别可独立交付的阶段 + b. 按依赖关系排序 + c. 为每个阶段制定子计划 +6. 如果是简单或中等任务: + a. 直接制定执行计划 +``` + +--- + +*文档版本:1.0.0* +*生成日期:2025-12-15* +*基于用户决策生成*