Files
agent-aide/aide-program/docs/commands/flow
..
2025-12-14 21:55:56 +08:00
2025-12-14 21:55:56 +08:00
2025-12-14 21:55:56 +08:00
2025-12-14 23:10:02 +08:00
2025-12-14 21:55:56 +08:00
2025-12-14 21:55:56 +08:00
2025-12-14 21:55:56 +08:00

aide flow 详细设计(实现交接包)

本目录为 aide flow 子命令的详细设计。目标是让接手开发者在不阅读额外上下文的情况下,能够依据本文档集完成实现、联调与验证。

实现位置:

  • 核心实现:aide-program/aide/flow/
  • CLI 入口:aide-program/aide/main.pyaide flow ... 子命令树

上游/关联文档:

一、范围与目标

1.1 目标

  • 以“静默即成功”为输出原则,提供统一的进度追踪Git 自动提交能力
  • 将任务执行过程结构化为“环节phase+ 步骤step+ 历史history
  • 对环节跳转进行校验,降低流程跳跃与遗漏
  • 在特定环节提供可插拔的行为Hooks例如 PlantUML 校验/生成与 CHANGELOG 校验

1.2 非目标

  • 不做任务分析/方案选择(这是 plugin 的职责)
  • 不实现业务功能
  • 不接管项目的 Git 工作流策略(仅提供最小、可配置的自动化提交)

二、关键约定(必须先统一)

  1. 环节来源:以 flow.phases 为准(见 aide-program/docs/formats/config.md),默认值覆盖 prep+exec 全流程。
  2. .aide 默认被 gitignore状态文件属于本地数据Git 提交用于记录项目文件变化,状态历史中的 git_commit 仅做关联。
  3. “无变更可提交”不是错误:当工作区无可提交变更时,aide flow 仍应完成状态记录,但 git_commit 为空。
  4. 钩子顺序影响提交内容:会产生/修改文件的钩子必须在 git add/commit 之前执行,才能进入同一次提交。
  5. 失败边界:校验失败/关键钩子失败应阻止状态推进Git 失败的处理需要在 git.md 中按“必须/可选”策略定义。

三、文档索引(按实现模块拆分)

四、推荐实现模块划分(仅文件/职责约定)

实现位于 aide-program/aide/flow/,按职责拆分为:

  • tracker:编排一次 flow 操作(校验 → hooks → git → 落盘 → 输出)
  • validator:环节/动作校验(基于 phases 列表)
  • gitGit 操作封装add/commit/status/判定“无变更”)
  • hooks:内置 hook 与 hook 调度
  • types:状态结构(与 aide-program/docs/formats/data.md 一致)

注:本文档只约定职责与接口,不提供实现代码。

五、实现任务拆分(建议顺序)

  1. 完成状态结构与读写:按 state-and-storage.md 约定实现原子写入与锁
  2. 完成校验器:按 validation.md 对 start/next-part/back-part 等动作校验
  3. 完成 Git 封装:按 git.md 处理 repo 探测、提交信息、无变更/失败策略
  4. 完成 Hookshooks.md 实现 PlantUML/CHANGELOG 等内置钩子
  5. 完成 CLI 路由:在 aide-program/aide/main.py 增加 aide flow ... 子命令树
  6. 逐条对照 verification.md 做验证(至少覆盖“无变更”“非 git 仓库”“校验失败”)

六、风险与待定项(需要开发前确认)

  • “每次 flow 操作都提交”会产生大量提交:是否需要通过配置提供降噪策略(如仅在 next-part 时提交)
  • PlantUML/PNG 是否应纳入提交:默认建议纳入,但需要与团队仓库习惯一致
  • CHANGELOG 校验规则的严格程度:硬失败还是警告(建议可配置)