diff --git a/.aide/branches.json b/.aide/branches.json index fdcd914..d5ad0db 100644 --- a/.aide/branches.json +++ b/.aide/branches.json @@ -1,5 +1,5 @@ { - "next_number": 15, + "next_number": 16, "branches": [ { "number": 1, @@ -162,6 +162,18 @@ "status": "finished", "end_commit": "d2882c9b995ee686fac48e183191848d6071c995", "finished_at": "2025-12-18T11:53:15+08:00" + }, + { + "number": 15, + "branch_name": "aide/015", + "source_branch": "master", + "start_commit": "80ebbd4d85aaa8b3408cd83c35627c972057beda", + "task_id": "2025-12-18T12-14-13", + "task_summary": "开始任务准备: 调整 Aide 工作流流程", + "started_at": "2025-12-18T12:14:13+08:00", + "status": "finished", + "end_commit": "80ebbd4d85aaa8b3408cd83c35627c972057beda", + "finished_at": "2025-12-18T12:50:59+08:00" } ] } diff --git a/.aide/branches.md b/.aide/branches.md index f62bc37..6cc035b 100644 --- a/.aide/branches.md +++ b/.aide/branches.md @@ -1,5 +1,15 @@ # Git 分支概况 +## aide/015 + +- **任务**: 开始任务准备: 调整 Aide 工作流流程 +- **任务ID**: 2025-12-18T12-14-13 +- **源分支**: master +- **起始提交**: 80ebbd4 +- **结束提交**: 80ebbd4 +- **状态**: finished +- **时间**: 2025-12-18 12:14 ~ 12:50 + ## aide/014 - **任务**: 测试 diff --git a/.aide/config.toml b/.aide/config.toml index 842a067..13cb53d 100644 --- a/.aide/config.toml +++ b/.aide/config.toml @@ -56,6 +56,12 @@ source = "task-now.md" # /aide:exec 命令在未指定参数时读取此文件 spec = "task-spec.md" +# 复杂任务计划文档目录 +# 当任务被拆分为多个子计划时,存放: +# - guide.md: 任务计划总导览 +# - spec-01.md, spec-02.md, ...: 各子计划细则 +plans_path = ".aide/task-plans/" + ################################################################################ # [env] - 环境检测配置 ################################################################################ @@ -168,8 +174,9 @@ block_plan_path = ".aide/project-docs/block-plan.md" # impl - 迭代实现 # verify - 验证交付 # docs - 文档更新 +# confirm - 用户确认(审阅与返工) # finish - 收尾 -phases = ["task-optimize", "flow-design", "impl", "verify", "docs", "finish"] +phases = ["task-optimize", "flow-design", "impl", "verify", "docs", "confirm", "finish"] # 流程图目录路径 # 存放 PlantUML 源文件(.puml)和生成的图片(.png) diff --git a/.aide/diagrams/task-flow.png b/.aide/diagrams/task-flow.png index ffbd0e3..ceef3eb 100644 Binary files a/.aide/diagrams/task-flow.png and b/.aide/diagrams/task-flow.png differ diff --git a/.aide/diagrams/task-flow.puml b/.aide/diagrams/task-flow.puml index 4b2d675..547f307 100644 --- a/.aide/diagrams/task-flow.puml +++ b/.aide/diagrams/task-flow.puml @@ -1,45 +1,56 @@ @startuml task-flow -title 任务执行流程图:改进 aide flow 的 git 工作流 +!theme plain +title 任务执行流程图:调整 Aide 工作流流程 start -:阅读任务细则; -note right: task-spec.md -partition "代码修改" { - :修改 branch.py; - note right - - 重构 _merge_normal() - - 添加清理函数 - - 修改提交信息格式 - end note +partition "1. 准备阶段" { + :读取 config.py; + :添加 plans_path 默认配置; +} - :修改 tracker.py; +partition "2. run.md 修改 - 任务细则部分" { + :定位"1.8 生成任务细则"部分; + :增加复杂任务处理逻辑; note right - 调整 finish 触发逻辑 - (如需要) + - 判断是否为复杂任务 + - 创建 .aide/task-plans/ 目录 + - 生成 guide.md 总导览 + - 生成 spec-NN.md 子计划 end note } -partition "测试验证" { - :创建测试任务; - :执行完整 flow 流程; - :检查最终 git 历史; +partition "3. run.md 修改 - 子计划执行部分" { + :定位"复杂任务的子计划执行"部分; + :明确文档结构和操作方式; +} - if (只有 2 个提交?) then (是) - :检查文件清理结果; - if (清理正确?) then (是) - :验证通过; - else (否) - :修复清理逻辑; - -> 执行完整 flow 流程; - endif +partition "4. run.md 修改 - 插入 confirm 阶段" { + :定位"阶段 5:文档更新"之后; + :插入"阶段 6:用户确认 (confirm)"; + note right + - 报告完成信息 + - 等待用户确认 + - 返工机制说明 + end note + :将原"阶段 6:收尾"改为"阶段 7:收尾"; +} + +partition "5. aide skill 更新" { + :读取 aide.md; + :添加 plans_path 配置说明; + :更新环节列表(增加 confirm); +} + +partition "6. 验证" { + :检查所有修改点; + if (验证通过?) then (是) + :完成; else (否) - :修复合并逻辑; - -> 执行完整 flow 流程; + :修复问题; endif } -:更新文档; stop @enduml diff --git a/.aide/logs/2025-12-18T12-14-13-decisions/2025-12-18T12-18-01.json b/.aide/logs/2025-12-18T12-14-13-decisions/2025-12-18T12-18-01.json new file mode 100644 index 0000000..e548475 --- /dev/null +++ b/.aide/logs/2025-12-18T12-14-13-decisions/2025-12-18T12-18-01.json @@ -0,0 +1,174 @@ +{ + "input": { + "task": "调整 Aide 工作流流程", + "source": "task-now.md", + "items": [ + { + "id": 1, + "title": "新阶段命名", + "options": [ + { + "value": "review", + "label": "review", + "score": 90.0, + "pros": [ + "语义清晰,表示审阅", + "简洁常用" + ], + "cons": [ + "与 code review 可能混淆" + ] + }, + { + "value": "confirm", + "label": "confirm", + "score": 85.0, + "pros": [ + "明确表示确认动作", + "与任务流程含义一致" + ], + "cons": [ + "较长" + ] + }, + { + "value": "approve", + "label": "approve", + "score": 75.0, + "pros": [ + "表示批准/通过", + "正式感强" + ], + "cons": [ + "较正式,可能过于严肃" + ] + } + ], + "location": { + "file": "task-now.md", + "start": 3, + "end": 9 + }, + "context": "需要在 docs 和 finish 之间插入一个用户确认阶段。当前 flow phases 为: task-optimize, flow-design, impl, verify, docs, finish。新阶段需要一个简洁且语义明确的英文名称。", + "recommend": "review" + }, + { + "id": 2, + "title": "复杂任务文档存储位置", + "options": [ + { + "value": "aide_dir", + "label": ".aide/task-plans/", + "score": 90.0, + "pros": [ + "与现有 .aide/ 结构一致", + "集中管理", + "自动被 gitignore" + ], + "cons": [ + "路径较深" + ] + }, + { + "value": "root_dir", + "label": "项目根目录", + "score": 60.0, + "pros": [ + "访问方便" + ], + "cons": [ + "污染根目录", + "需要手动 gitignore" + ] + }, + { + "value": "spec_alongside", + "label": "与 task.spec 同目录", + "score": 75.0, + "pros": [ + "与现有细则位置一致" + ], + "cons": [ + "需要额外的命名规范" + ] + } + ], + "location": { + "file": "task-now.md", + "start": 27, + "end": 28 + }, + "context": "复杂任务需要生成任务计划总导览和多个子计划细则,每个都是独立文档。需要确定这些文档的存储位置。", + "recommend": "aide_dir" + }, + { + "id": 3, + "title": "子计划文档命名规范", + "options": [ + { + "value": "numbered", + "label": "数字编号: spec-01.md, spec-02.md", + "score": 85.0, + "pros": [ + "简洁", + "顺序清晰" + ], + "cons": [ + "无语义信息" + ] + }, + { + "value": "named", + "label": "语义命名: spec-login.md, spec-payment.md", + "score": 80.0, + "pros": [ + "语义清晰", + "易于识别" + ], + "cons": [ + "命名需要额外考虑", + "可能重名" + ] + }, + { + "value": "hybrid", + "label": "混合: spec-01-login.md, spec-02-payment.md", + "score": 90.0, + "pros": [ + "兼顾顺序和语义", + "易于排序和识别" + ], + "cons": [ + "命名较长" + ] + } + ], + "location": { + "file": "task-now.md", + "start": 27, + "end": 28 + }, + "context": "每个子计划需要独立的细则文档,需要确定命名规范以便识别和管理。", + "recommend": "hybrid" + } + ] + }, + "output": { + "decisions": [ + { + "id": 1, + "chosen": "confirm" + }, + { + "id": 2, + "chosen": "aide_dir", + "note": "需要跟source spec一样在环境配置中设置,使用时通过aide获取配置的路径,默认配置值为.aide/task-plans/" + }, + { + "id": 3, + "chosen": "numbered" + } + ] + }, + "completed_at": "2025-12-18T12:21:10+08:00" +} diff --git a/.aide/logs/2025-12-18T12-14-13-decisions/pending.json b/.aide/logs/2025-12-18T12-14-13-decisions/pending.json new file mode 100644 index 0000000..20f5f53 --- /dev/null +++ b/.aide/logs/2025-12-18T12-14-13-decisions/pending.json @@ -0,0 +1,158 @@ +{ + "task": "调整 Aide 工作流流程", + "source": "task-now.md", + "items": [ + { + "id": 1, + "title": "新阶段命名", + "options": [ + { + "value": "review", + "label": "review", + "score": 90.0, + "pros": [ + "语义清晰,表示审阅", + "简洁常用" + ], + "cons": [ + "与 code review 可能混淆" + ] + }, + { + "value": "confirm", + "label": "confirm", + "score": 85.0, + "pros": [ + "明确表示确认动作", + "与任务流程含义一致" + ], + "cons": [ + "较长" + ] + }, + { + "value": "approve", + "label": "approve", + "score": 75.0, + "pros": [ + "表示批准/通过", + "正式感强" + ], + "cons": [ + "较正式,可能过于严肃" + ] + } + ], + "location": { + "file": "task-now.md", + "start": 3, + "end": 9 + }, + "context": "需要在 docs 和 finish 之间插入一个用户确认阶段。当前 flow phases 为: task-optimize, flow-design, impl, verify, docs, finish。新阶段需要一个简洁且语义明确的英文名称。", + "recommend": "review" + }, + { + "id": 2, + "title": "复杂任务文档存储位置", + "options": [ + { + "value": "aide_dir", + "label": ".aide/task-plans/", + "score": 90.0, + "pros": [ + "与现有 .aide/ 结构一致", + "集中管理", + "自动被 gitignore" + ], + "cons": [ + "路径较深" + ] + }, + { + "value": "root_dir", + "label": "项目根目录", + "score": 60.0, + "pros": [ + "访问方便" + ], + "cons": [ + "污染根目录", + "需要手动 gitignore" + ] + }, + { + "value": "spec_alongside", + "label": "与 task.spec 同目录", + "score": 75.0, + "pros": [ + "与现有细则位置一致" + ], + "cons": [ + "需要额外的命名规范" + ] + } + ], + "location": { + "file": "task-now.md", + "start": 27, + "end": 28 + }, + "context": "复杂任务需要生成任务计划总导览和多个子计划细则,每个都是独立文档。需要确定这些文档的存储位置。", + "recommend": "aide_dir" + }, + { + "id": 3, + "title": "子计划文档命名规范", + "options": [ + { + "value": "numbered", + "label": "数字编号: spec-01.md, spec-02.md", + "score": 85.0, + "pros": [ + "简洁", + "顺序清晰" + ], + "cons": [ + "无语义信息" + ] + }, + { + "value": "named", + "label": "语义命名: spec-login.md, spec-payment.md", + "score": 80.0, + "pros": [ + "语义清晰", + "易于识别" + ], + "cons": [ + "命名需要额外考虑", + "可能重名" + ] + }, + { + "value": "hybrid", + "label": "混合: spec-01-login.md, spec-02-payment.md", + "score": 90.0, + "pros": [ + "兼顾顺序和语义", + "易于排序和识别" + ], + "cons": [ + "命名较长" + ] + } + ], + "location": { + "file": "task-now.md", + "start": 27, + "end": 28 + }, + "context": "每个子计划需要独立的细则文档,需要确定命名规范以便识别和管理。", + "recommend": "hybrid" + } + ], + "_meta": { + "created_at": "2025-12-18T12:18:01+08:00", + "session_id": "2025-12-18T12-18-01" + } +} diff --git a/.aide/logs/2025-12-18T12-14-13-status.json b/.aide/logs/2025-12-18T12-14-13-status.json new file mode 100644 index 0000000..8962110 --- /dev/null +++ b/.aide/logs/2025-12-18T12-14-13-status.json @@ -0,0 +1,139 @@ +{ + "task_id": "2025-12-18T12-14-13", + "current_phase": "finish", + "current_step": 16, + "started_at": "2025-12-18T12:14:13+08:00", + "history": [ + { + "timestamp": "2025-12-18T12:14:13+08:00", + "action": "start", + "phase": "task-optimize", + "step": 1, + "summary": "开始任务准备: 调整 Aide 工作流流程", + "git_commit": "3ad14cbd896ab9955dba3bb0bdb0999ffdca83e4" + }, + { + "timestamp": "2025-12-18T12:21:59+08:00", + "action": "next-step", + "phase": "task-optimize", + "step": 2, + "summary": "用户完成待定项确认", + "git_commit": "1d8daf1a267a7e3260e45332b26c2760a5b19919" + }, + { + "timestamp": "2025-12-18T12:30:51+08:00", + "action": "next-step", + "phase": "task-optimize", + "step": 3, + "summary": "任务细则已确认", + "git_commit": "a3624f0994278ad348148431dacc73d97b597762" + }, + { + "timestamp": "2025-12-18T12:31:12+08:00", + "action": "next-part", + "phase": "flow-design", + "step": 4, + "summary": "进入流程设计环节", + "git_commit": "2e8e756908c5fe151bee21c2e8e1c86bbb1425f4" + }, + { + "timestamp": "2025-12-18T12:32:26+08:00", + "action": "next-step", + "phase": "flow-design", + "step": 5, + "summary": "流程图设计完成", + "git_commit": "a1175f0cfb818c852fc32c17e74147c5022062be" + }, + { + "timestamp": "2025-12-18T12:32:55+08:00", + "action": "next-part", + "phase": "impl", + "step": 6, + "summary": "流程设计完成,进入实现环节", + "git_commit": "99710dd8a649188db92f0e18c71ed92b4e73c189" + }, + { + "timestamp": "2025-12-18T12:34:08+08:00", + "action": "next-step", + "phase": "impl", + "step": 7, + "summary": "完成 config.py 修改: 添加 plans_path 和 confirm 阶段", + "git_commit": "7a902cf5485e88228ed6469bdce96fde59cc8288" + }, + { + "timestamp": "2025-12-18T12:36:37+08:00", + "action": "next-step", + "phase": "impl", + "step": 8, + "summary": "完成 run.md 修改: 任务细则、子计划执行、confirm 阶段", + "git_commit": "d7a105bbcc3a9bd5f0eba607b7681efbc9a08b23" + }, + { + "timestamp": "2025-12-18T12:38:13+08:00", + "action": "next-step", + "phase": "impl", + "step": 9, + "summary": "完成 aide skill 文档更新", + "git_commit": "ec3b4e342f058296742a78eed403c3a859fe4e1a" + }, + { + "timestamp": "2025-12-18T12:38:26+08:00", + "action": "next-part", + "phase": "verify", + "step": 10, + "summary": "实现完成,进入验证环节", + "git_commit": "f6657164870f26e6576baa50325322961164eda5" + }, + { + "timestamp": "2025-12-18T12:40:20+08:00", + "action": "next-step", + "phase": "verify", + "step": 11, + "summary": "验证完成: 所有修改点确认正确", + "git_commit": "1955a2701c8244bd17d3c927465d180d89b080da" + }, + { + "timestamp": "2025-12-18T12:40:35+08:00", + "action": "next-part", + "phase": "docs", + "step": 12, + "summary": "验证通过,进入文档环节", + "git_commit": "7eb5a3443d6e121ebe0622938113b5e19c96873e" + }, + { + "timestamp": "2025-12-18T12:42:11+08:00", + "action": "next-step", + "phase": "docs", + "step": 13, + "summary": "文档更新完成: 更新 CHANGELOG.md", + "git_commit": "4494170b932f74e0749e527cfe0e50b287d987d4" + }, + { + "timestamp": "2025-12-18T12:42:22+08:00", + "action": "next-part", + "phase": "confirm", + "step": 14, + "summary": "文档更新完成,进入用户确认环节", + "git_commit": "9f1c0fdfc3f47a1926f437e3b7a7681287d5cbc3" + }, + { + "timestamp": "2025-12-18T12:50:46+08:00", + "action": "next-step", + "phase": "confirm", + "step": 15, + "summary": "用户确认通过", + "git_commit": "749b20fa15d8726e72bb2bfc404021208d8b5559" + }, + { + "timestamp": "2025-12-18T12:50:59+08:00", + "action": "next-part", + "phase": "finish", + "step": 16, + "summary": "用户确认通过,进入收尾", + "git_commit": "a0bba367bc101c28b27efee0b925335466779ccf" + } + ], + "source_branch": "master", + "start_commit": "80ebbd4d85aaa8b3408cd83c35627c972057beda", + "task_branch": "aide/015" +} diff --git a/.aide/pending-items.json b/.aide/pending-items.json index 9af8fb2..1aedf8c 100644 --- a/.aide/pending-items.json +++ b/.aide/pending-items.json @@ -1,94 +1,108 @@ { - "task": "创建环境安装 Command", + "task": "调整 Aide 工作流流程", "source": "task-now.md", "items": [ { "id": 1, - "title": "离线安装程序是否需要实现?", + "title": "新阶段命名", "location": { "file": "task-now.md", - "start": 17, - "end": 21 + "start": 3, + "end": 9 }, - "context": "任务文档中询问是否可以实现离线安装方案:先提供资源清单,用户下载资源后通过程序完成安装。这是一个独立的功能模块,与 Command 是两种不同的实现方式。", + "context": "需要在 docs 和 finish 之间插入一个用户确认阶段。当前 flow phases 为: task-optimize, flow-design, impl, verify, docs, finish。新阶段需要一个简洁且语义明确的英文名称。", "options": [ { - "value": "defer", - "label": "暂不实现,作为后续迭代", + "value": "review", + "label": "review", + "score": 90, + "pros": ["语义清晰,表示审阅", "简洁常用"], + "cons": ["与 code review 可能混淆"] + }, + { + "value": "confirm", + "label": "confirm", "score": 85, - "pros": ["聚焦核心需求", "减少本次工作量", "可以先验证 Command 方案的有效性"], - "cons": ["无法处理完全无网络的环境"] + "pros": ["明确表示确认动作", "与任务流程含义一致"], + "cons": ["较长"] }, { - "value": "implement", - "label": "本次一并实现离线安装程序", - "score": 60, - "pros": ["一次性完整覆盖所有场景", "支持企业内网环境"], - "cons": ["工作量大", "维护成本高", "需要处理多平台二进制分发"] - }, - { - "value": "resource_list_only", - "label": "仅提供资源清单和手动指南", - "score": 70, - "pros": ["折中方案", "用户可自行下载"], - "cons": ["离线体验不完整", "用户需手动操作较多"] + "value": "approve", + "label": "approve", + "score": 75, + "pros": ["表示批准/通过", "正式感强"], + "cons": ["较正式,可能过于严肃"] } ], - "recommend": "defer" + "recommend": "review" }, { "id": 2, - "title": "是否需要支持 macOS?", + "title": "复杂任务文档存储位置", "location": { "file": "task-now.md", - "start": 5, - "end": 5 + "start": 27, + "end": 28 }, - "context": "任务文档明确提到需要为 Windows 和 Linux 创建专用 command,但未提及 macOS。macOS 在开发者群体中使用广泛,需要确认是否纳入本次实现范围。", + "context": "复杂任务需要生成任务计划总导览和多个子计划细则,每个都是独立文档。需要确定这些文档的存储位置。", "options": [ { - "value": "no_macos", - "label": "仅支持 Windows 和 Linux", - "score": 75, - "pros": ["严格按任务要求", "减少工作量"], - "cons": ["macOS 用户无法使用"] + "value": "aide_dir", + "label": ".aide/task-plans/", + "score": 90, + "pros": ["与现有 .aide/ 结构一致", "集中管理", "自动被 gitignore"], + "cons": ["路径较深"] }, { - "value": "include_macos", - "label": "增加 macOS 支持", - "score": 80, - "pros": ["覆盖主流开发平台", "macOS 与 Linux 安装方式相似"], - "cons": ["增加一定工作量", "需要测试验证"] + "value": "root_dir", + "label": "项目根目录", + "score": 60, + "pros": ["访问方便"], + "cons": ["污染根目录", "需要手动 gitignore"] + }, + { + "value": "spec_alongside", + "label": "与 task.spec 同目录", + "score": 75, + "pros": ["与现有细则位置一致"], + "cons": ["需要额外的命名规范"] } ], - "recommend": "include_macos" + "recommend": "aide_dir" }, { "id": 3, - "title": "Command 命名和组织方式", + "title": "子计划文档命名规范", "location": { "file": "task-now.md", - "start": 5, - "end": 5 + "start": 27, + "end": 28 }, - "context": "任务提到「为 Windows 和 Linux 单独创建专用的完整 command」,这可以理解为两种组织方式:统一命令自动检测系统,或分离命令让用户选择。", + "context": "每个子计划需要独立的细则文档,需要确定命名规范以便识别和管理。", "options": [ { - "value": "unified", - "label": "/aide:install(统一命令,自动检测系统)", - "score": 90, - "pros": ["用户体验统一", "自动适配系统", "一个命令解决问题"], - "cons": ["Command 文件会较长"] + "value": "numbered", + "label": "数字编号: spec-01.md, spec-02.md", + "score": 85, + "pros": ["简洁", "顺序清晰"], + "cons": ["无语义信息"] }, { - "value": "separated", - "label": "/aide:install-win 和 /aide:install-linux(分离命令)", - "score": 65, - "pros": ["文件结构清晰", "平台逻辑隔离"], - "cons": ["用户需要知道自己的系统", "维护多个文件"] + "value": "named", + "label": "语义命名: spec-login.md, spec-payment.md", + "score": 80, + "pros": ["语义清晰", "易于识别"], + "cons": ["命名需要额外考虑", "可能重名"] + }, + { + "value": "hybrid", + "label": "混合: spec-01-login.md, spec-02-payment.md", + "score": 90, + "pros": ["兼顾顺序和语义", "易于排序和识别"], + "cons": ["命名较长"] } ], - "recommend": "unified" + "recommend": "hybrid" } ] } diff --git a/CHANGELOG.md b/CHANGELOG.md index 5cd93f3..91cd69f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,38 @@ ## 2025-12-18 +### 新增功能 + +**用户确认阶段 (confirm)** +- 在 docs 和 finish 之间新增 `confirm` 阶段 +- 用于用户审阅和测试已完成的工作 +- 支持返工机制:根据问题类型返回相应阶段 +- 返工前强制更新任务文档,便于上下文恢复 + +**复杂任务子计划文档规范** +- 新增 `task.plans_path` 配置项(默认 `.aide/task-plans/`) +- 规范化文档结构: + - `guide.md` - 任务计划总导览 + - `spec-01.md`, `spec-02.md`, ... - 各子计划细则 +- 更新复杂任务执行模式:`task-optimize → [flow-design → impl → verify → docs → confirm] × N → finish` +- 子计划状态管理:在 guide.md 中维护状态表 + +### 变更 + +- 流程阶段更新为 7 个:task-optimize → flow-design → impl → verify → docs → confirm → finish +- run.md 中"阶段 6:收尾"更新为"阶段 7:收尾" +- 更新 aide skill 文档,添加 confirm 环节和 task-plans 目录说明 + +### 修改的文件 +- `aide-program/aide/core/config.py` - 添加 plans_path 配置和 confirm 阶段 +- `aide-marketplace/aide-plugin/commands/run.md` - 任务细则规范、子计划执行、confirm 阶段 +- `aide-marketplace/aide-plugin/skills/aide/SKILL.md` - 环节列表、数据存储、流程示例 +- `.aide/config.toml` - 项目配置更新 + +--- + +## 2025-12-18 (earlier) + ### 变更 **aide flow finish 流程重构** diff --git a/aide-marketplace/aide-plugin/commands/run.md b/aide-marketplace/aide-plugin/commands/run.md index 5e84edb..a68cd80 100644 --- a/aide-marketplace/aide-plugin/commands/run.md +++ b/aide-marketplace/aide-plugin/commands/run.md @@ -139,16 +139,75 @@ aide config get task.source **必须执行**: +##### 简单/中等任务 + 1. 根据分析结果生成任务细则文档 2. 保存到配置的路径: ```bash aide config get task.spec ``` -3. **强制确认点**: - - 向用户展示细则摘要 - - 使用 AskUserQuestion 询问用户是否确认 - - 等待用户明确答复后才能继续 - - 如用户有修改意见,更新细则后重新确认 + +##### 复杂任务(需拆分为子计划) + +1. 获取计划文档目录: + ```bash + aide config get task.plans_path + ``` +2. 创建目录(如不存在) +3. 生成以下文档: + +**任务计划总导览(guide.md)**: + +```markdown +# 任务计划总导览 + +## 任务简述 +[一句话描述任务目标] + +## 子计划列表 + +| # | 名称 | 状态 | 细则文档 | +|---|------|------|----------| +| 1 | [子计划1名称] | pending | spec-01.md | +| 2 | [子计划2名称] | pending | spec-02.md | +... + +## 执行顺序 +[说明子计划之间的依赖关系和执行顺序] + +## 备注 +[其他需要说明的内容] +``` + +**各子计划细则(spec-01.md, spec-02.md, ...)**: + +```markdown +# 子计划 N:[名称] + +## 目标 +[具体目标] + +## 具体步骤 +1. [步骤1] +2. [步骤2] +... + +## 验证标准 +- [标准1] +- [标准2] + +## 依赖 +- 前置:[依赖的子计划,如无则写"无"] +- 后续:[依赖本计划的子计划,如无则写"无"] +``` + +##### 强制确认点 + +无论简单还是复杂任务: +- 向用户展示细则摘要 +- 使用 AskUserQuestion 询问用户是否确认 +- 等待用户明确答复后才能继续 +- 如用户有修改意见,更新细则后重新确认 ```bash aide flow next-step "任务细则已确认" @@ -303,10 +362,67 @@ aide flow next-part docs "验证通过,进入文档环节" aide flow next-step "文档更新完成" ``` -### 阶段 6:收尾 (finish) +### 阶段 6:用户确认 (confirm) ```bash -aide flow next-part finish "文档更新完成,进入收尾" +aide flow next-part confirm "文档更新完成,进入用户确认环节" +``` + +#### 6.1 向用户报告完成信息 + +汇总已完成的工作: +- 列出主要变更点 +- 说明验证结果 +- 提供关键文件清单 + +#### 6.2 等待用户确认 + +**用户可能的操作**: + +1. **确认通过** → 直接进入 finish +2. **发现问题** → 进入返工流程 + +#### 6.3 返工流程 + +当用户发现问题或有新需求时: + +##### 分析问题类型 + +| 问题类型 | 返工阶段 | 说明 | +|----------|----------|------| +| 实现问题 | impl | 代码逻辑错误、功能不符预期 | +| 设计问题 | flow-design | 架构或流程设计有误 | +| 需求问题 | task-optimize | 需求理解偏差、新增需求 | + +##### 返工前必须操作 + +**必须**在返工前完成以下操作: + +1. **更新任务文档(task.source)**: + - 记录用户反馈的问题 + - 补充新发现的需求或要求 + - 这是为了便于上下文中断后恢复 + +2. **更新任务计划文档**: + - 简单任务:更新 `task.spec` + - 复杂任务:更新相应的子计划文档(`spec-NN.md`) + +```bash +aide flow next-step "更新任务文档,准备返工" +``` + +##### 执行返工 + +```bash +aide flow back-part <目标阶段> "返工原因: <简述>" +``` + +从目标阶段继续执行,直到再次到达 confirm 阶段。 + +### 阶段 7:收尾 (finish) + +```bash +aide flow next-part finish "用户确认通过,进入收尾" ``` - 清理临时文件 @@ -379,32 +495,59 @@ aide config get task.spec 对于拆分为多个子计划的复杂任务: +### 文档结构 + +复杂任务的文档存放在 `task.plans_path` 配置的目录下(默认 `.aide/task-plans/`): + +``` +.aide/task-plans/ +├── guide.md # 任务计划总导览 +├── spec-01.md # 子计划 1 细则 +├── spec-02.md # 子计划 2 细则 +└── spec-NN.md # 子计划 N 细则 +``` + ### 执行模式 ``` -task-optimize → [flow-design → impl → verify → docs] × N → finish +task-optimize → [flow-design → impl → verify → docs → confirm] × N → finish ``` +> 注:每个子计划完成 docs 后需经过 confirm 阶段,用户确认后才进入下一个子计划 + ### 流程 -1. 完成 task-optimize,生成任务导览和所有子计划细则 +1. 完成 task-optimize: + - 生成 `guide.md`(任务计划总导览) + - 生成所有 `spec-NN.md`(子计划细则) 2. 对每个子计划: - 进入 flow-design,为该子计划设计流程图 - 进入 impl,实现该子计划 - 进入 verify,验证该子计划 - 进入 docs,更新该子计划相关文档 - - 标记子计划完成,更新任务导览 + - 进入 confirm,等待用户确认 + - 用户确认后,更新 `guide.md` 中该子计划状态为 `completed` 3. 所有子计划完成后,进入 finish ### 子计划切换 -完成一个子计划的 docs 后: +完成一个子计划的 confirm 后: ```bash aide flow next-step "子计划 N 完成,开始子计划 N+1" aide flow back-part flow-design "开始下一个子计划的流程设计" ``` +### 子计划状态管理 + +每完成一个子计划,更新 `guide.md` 中的状态表: + +| # | 名称 | 状态 | 细则文档 | +|---|------|------|----------| +| 1 | [子计划1名称] | **completed** | spec-01.md | +| 2 | [子计划2名称] | **in_progress** | spec-02.md | +| 3 | [子计划3名称] | pending | spec-03.md | + --- ## 附录:任务复杂度评估指导原则 diff --git a/aide-marketplace/aide-plugin/skills/aide/SKILL.md b/aide-marketplace/aide-plugin/skills/aide/SKILL.md index 5abe948..32fd729 100644 --- a/aide-marketplace/aide-plugin/skills/aide/SKILL.md +++ b/aide-marketplace/aide-plugin/skills/aide/SKILL.md @@ -252,6 +252,7 @@ aide flow show 2025-12-15T17-28-53 | `impl` | 迭代实现 | exec 阶段使用 | | `verify` | 验证交付 | exec 阶段使用 | | `docs` | 文档更新 | exec 阶段使用 | +| `confirm` | 用户确认 | 审阅与返工 | | `finish` | 收尾 | exec 阶段使用 | ### 流程校验 @@ -452,6 +453,9 @@ aide init ├── diagrams/ # 流程图目录 │ ├── *.puml # PlantUML 源文件 │ └── *.png # 生成的图片 +├── task-plans/ # 复杂任务计划文档(可配置) +│ ├── guide.md # 任务计划总导览 +│ └── spec-NN.md # 子计划细则 └── project-docs/ # 项目文档(面向 LLM) ├── README.md # 总导览 ├── block-plan.md # 区块计划 @@ -498,8 +502,14 @@ aide flow next-step "验证完成: 所有测试通过" aide flow next-part docs "验证通过,进入文档环节" aide flow next-step "文档更新完成" -# 9. 收尾 -aide flow next-part finish "文档更新完成,进入收尾" +# 9. 进入用户确认 +aide flow next-part confirm "文档更新完成,进入用户确认环节" +# 等待用户确认... +# 如用户确认通过: +aide flow next-step "用户确认通过" + +# 10. 收尾 +aide flow next-part finish "用户确认通过,进入收尾" aide flow next-step "任务完成" ``` diff --git a/aide-program/aide/core/config.py b/aide-program/aide/core/config.py index eaadd80..3c7ad0f 100644 --- a/aide-program/aide/core/config.py +++ b/aide-program/aide/core/config.py @@ -68,6 +68,12 @@ source = "task-now.md" # /aide:exec 命令在未指定参数时读取此文件 spec = "task-spec.md" +# 复杂任务计划文档目录 +# 当任务被拆分为多个子计划时,存放: +# - guide.md: 任务计划总导览 +# - spec-01.md, spec-02.md, ...: 各子计划细则 +plans_path = ".aide/task-plans/" + ################################################################################ # [env] - 环境检测配置 ################################################################################ @@ -180,8 +186,9 @@ block_plan_path = ".aide/project-docs/block-plan.md" # impl - 迭代实现 # verify - 验证交付 # docs - 文档更新 +# confirm - 用户确认(审阅与返工) # finish - 收尾 -phases = ["task-optimize", "flow-design", "impl", "verify", "docs", "finish"] +phases = ["task-optimize", "flow-design", "impl", "verify", "docs", "confirm", "finish"] # 流程图目录路径 # 存放 PlantUML 源文件(.puml)和生成的图片(.png) diff --git a/task-now.md b/task-now.md index 6c277fb..e69de29 100644 --- a/task-now.md +++ b/task-now.md @@ -1,27 +0,0 @@ -我想调整一部分流程 - -在docs和finish中插入一个新流程,作为等待用户确认时的交互缓冲期, - -在这个阶段停下向用户报告完成信息,用户可以在这个时候自行进行审阅和测试等行为, - -如果确认无误则直接答复确认即可,进入finish, - -但如果发现有些地方其实并没有按预期实现,或者是用户在已经实现的基础上发现了新的问题或是有了新的想法,则应进行分析,判断应该返工到哪个阶段, - -为了避免收到上下文限制或意外中断影响便于恢复任务,一定要注意返工前先更新任务文档(是source不是spec)和任务计划(是指任务计划文档不是todo工具), - -然后再逐个环节继续完成任务,直到用户确认进入finish, - -对了,在这之前,我希望先更新command/run中关于任务计划部分的内容, - -我原本期望的是: -``` -对于任务的分析优化阶段,我希望能对任务的复杂度(是指工作量上的复杂度)进行分析, -- 对过于复杂的任务,梳理为多个完整的小任务, -- 出一个任务计划总导览和多个完整的子计划的细则,然后依序完成, -- 这类任务的执行过程,当完成task-optimize后,从flow-design到docs为一个完整子计划的全过程,多次循环逐个完成所有子计划的内容,一个子计划执行完docs后,开始下一个子计划的flow-design,最后全部完成后再finish -``` - -可现在的run只实现了分析优化阶段对复杂度的分析和任务拆分要求,提出了要分为小计划,后面还说明了对于小计划和导览更新怎么执行 - -而实际上我要求的是当任务较为复杂应该被分为小计划时,每一个小计划都必须是一个单独的完整的细则文档,而不是在同一个文档中的计划1计划2那样,且任务计划总导览也必须是一个单独的文档,