Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DevFlow - AI 原生迭代开发工作流

DevFlow 是一套可复制到项目中的 Claude Code 开发工作流。目标是让 AI 面向日常迭代稳定完成开发:不偏离需求、不遗漏影响面、不过度开发,并能在中断后继续执行。

核心用法:

复制 .claude 到目标项目根目录
关闭已打开的 Claude Code 会话并重新打开项目,使自定义 Agent 生效
Claude 会先恢复状态,并主动询问是否开始或继续需求开发

完整调度规则在 .claude/CLAUDE.md,本文档面向人类快速理解。


一句话定位

按需求项分析,按需求输入协调;用需求设计文档想清楚,用开发计划逐任务执行,用独立子 Agent 控制编码和审查上下文。

DevFlow 解决的是 AI 开发的三个核心问题:

  • 不偏离需求:每个任务绑定需求项、验收标准、设计依据和审查结果。
  • 不遗漏影响:编码前先做影响面分析,涉及 UI 时必须有界面契约。
  • 不过度开发:任务只允许改计划内范围,低置信度和未决问题不能进入编码。

第一版不引入进化系统,不做自动规则升级,优先保证流程轻量、可执行、可恢复。


核心对象

对象 说明
需求输入 用户的一份需求文档、Issue、截图说明、口头需求或一次迭代输入
迭代需求文档 spec-analyzer 输出的结构化需求分析结果
需求项 最小分析、设计、开发、验收单位,可独立追踪
需求设计文档 design-writer 输出的详细设计,按一次需求输入成文,内部包含多个需求项
界面设计文档 ui-designer 输出的 UI 稿解析、界面契约和 UI 验收依据,不包含前端技术实现设计
编码上下文 需求设计文档中的编码边界章节,不单独落盘
开发计划 dev-planner 输出的任务序列和状态记录,支持中断后继续
审查状态 .claude/.review-status.json,由 code-review 写入,记录结论、覆盖范围和代码内容哈希,供提交前检查使用

主流程

flowchart TB
    START(["需求输入"]) --> SPEC["spec-analyzer<br/>需求分析"]
    SPEC --> CONFIRM{"需求规格已确认?"}
    CONFIRM -->|"否"| SPEC
    CONFIRM -->|"是"| IMPACT["impact-analyzer<br/>端到端影响面闭合"]
    IMPACT --> UI{"涉及 UI?"}
    UI -->|"是"| UID["ui-designer<br/>界面设计文档"]
    UI -->|"否"| DESIGN
    UID --> DESIGN["design-writer<br/>需求设计文档"]
    DESIGN --> DCONF{"设计已确认且编码相关 TBD 为 0<br/>或无需确认?"}
    DCONF -->|"否"| DESIGN
    DCONF -->|"是"| PLAN["dev-planner<br/>编码任务 + 验证清单"]
    PLAN --> BUILD["dev-builder<br/>独立 implementer 编码"]
    BUILD --> REVIEW["code-review<br/>独立 code-reviewer 审查"]
    REVIEW --> TEST["code-tester<br/>测试验证"]
    TEST --> BUG{"失败?"}
    BUG -->|"是"| FIX["bug-fixer<br/>证据-复现-根因-修复"]
    FIX --> TEST
    BUG -->|"否"| COMMIT["code-committer<br/>用户触发提交"]
    COMMIT --> DONE(["完成"])
Loading

复杂度等级

中文等级 内部等级 典型条件 流程深度
XS 极小、零歧义、不改接口/数据/行为链路 可跳过详细设计,由 dev-builder 临时组装编码输入
S 单模块轻量变更,有少量交互或流程需约束 轻量影响面 + 必要设计 + 开发计划
M 多模块、可能涉及接口/数据/UI 状态 完整影响面 + 需求设计文档 + 开发计划
L 跨模块/跨工程/协议/数据模型/不可回滚变更 完整设计 + 风险确认 + 加深测试和审查

聚合风险不改变单个需求项级别,但会影响开发计划、测试范围和审查重点。

需求实际涉及线程、并发、缓存、资源生命周期或性能时,需求设计必须形成明确运行时约束;不涉及时只标记“不涉及”。中/大需求以及涉及关键运行时、兼容、迁移、UI 或不可逆决策的小需求,在生成开发计划前需要用户确认设计。


中断恢复

DevFlow 支持中断后继续,但依赖文件化状态。

新 AI 窗口恢复时应读取:

  1. .claude/progress.json:当前迭代、当前 Skill、当前步骤、关键里程碑。
  2. docs/08-计划/<需求迭代编号>-<需求主题>开发计划.md:任务状态和执行记录。
  3. docs/02-需求/<需求迭代编号>-<需求主题>需求.md:已确认的需求规格。
  4. docs/04-设计/需求设计/<需求迭代编号>-<需求主题>需求设计.md:需求设计和编码上下文。
  5. docs/05-UI/<需求迭代编号>-<需求主题>界面设计.md:界面契约,如涉及 UI。
  6. .claude/.review-status.json:最近一次审查范围和结论。
  7. 测试报告或当前会话测试结论。

如果 progress.json 为空,新窗口应扫描 docs/08-计划 找最近开发计划,以任务状态为准恢复。

开发计划中的任务状态是恢复核心:

待执行 / 执行中 / 已完成 / 阻塞 / 跳过

调度与恢复原则

DevFlow 按需调度,不机械执行完整流水线。已有需求设计就继续计划,已有开发计划就按任务状态继续,代码已变更则优先审查和测试。

需求规格未确认,或存在会影响方向、范围、验收的待确认问题时,不进入影响面分析。影响链路未闭合、界面契约未确认或需求设计仍有编码相关 TBD 时,也不得进入后续计划和编码。

影响面分析按项目真实技术闭合入口、客户端/前端状态、请求构造、通信边界、接收处理、持久化/缓存、响应映射和展示结果,不预设 REST 或 RPC。新增/修改字段必须验证两侧映射和转换链路;同名对象按完整路径、真实符号、职责和可修改性消歧。

开发计划记录基线提交和迭代开始时已有变更;无法证明属于当前需求的用户原有改动,不自动纳入任务、审查或提交范围。

如果中途打开新 AI 窗口,先读取 .claude/progress.json;若索引为空,则扫描 docs/08-计划,以开发计划中的任务状态恢复。

执行中任务优先:除非用户明确要求停止或切换,否则先完成当前编码、审查或测试任务,避免半成品和状态错乱。

项目加载完成后,如果用户没有给出明确任务,DevFlow 应主动询问是否开始新需求、继续上次迭代,或切换到需求分析、详细设计、开发、审查、测试、提交等阶段。


产物路径

产物 路径
需求规格 docs/02-需求/<需求迭代编号>-<需求主题>需求.md
影响面分析 docs/02-需求/<需求迭代编号>-<需求主题>影响面.md
需求设计 docs/04-设计/需求设计/<需求迭代编号>-<需求主题>需求设计.md
模块设计 docs/04-设计/模块设计/<模块名>.md
架构设计 docs/01-总览/架构总览.md
UI 设计 docs/05-UI/<需求迭代编号>-<需求主题>界面设计.md
开发计划 docs/08-计划/<需求迭代编号>-<需求主题>开发计划.md
测试报告 docs/06-测试/<需求迭代编号>-<需求主题>测试报告.md

多工程仓库可将工程级文档放在 projects/<工程>/docs/对应模块路径下。模块设计属于详细设计沉淀,仅在产生长期稳定事实时回写;没有模块文档时,先参考现有 docs 下的模块资料,没有资料再基于图谱和代码证据创建模块描述骨架。


Skills

阶段 Skill 职责
需求分析 spec-analyzer 整理需求项、验收标准和待确认问题
影响面分析 impact-analyzer 验证端到端影响链路和流程深度
UI 设计 ui-designer 解析 UI 稿并形成界面契约
详细设计 design-writer 编写统一的需求技术设计
开发计划 dev-planner 生成编码任务、验证清单和状态
编码调度 dev-builder 组装任务上下文并调用编码子 Agent
代码审查 code-review 组装审查上下文并调用审查子 Agent
测试验证 code-tester 执行验证清单并记录证据
Bug 修复 bug-fixer 按复现、根因、修复、复测闭环处理失败
提交辅助 code-committer 执行提交前检查、提交和按需推送

子 Agent

子 Agent 调用方 职责
implementer dev-builder 在独立上下文中执行单个编码任务
code-reviewer code-review 在独立上下文中审查实际代码变更

Hooks

Claude Code 的 Stop 表示当前回复结束,不代表编码完成。DevFlow 不使用 Stop hook 作为审查门禁,避免阻断需求确认、阶段汇报和等待用户输入。

Git hooks 在 DevFlow 初始化时启用。AI 加载项目或执行 code-committer 时,应检查当前仓库配置;若未设置,则自动执行:

git config core.hooksPath .claude/hooks

启用后:

  • pre-commit 先调用 review-check.ps1,校验独立 code-reviewer 执行标识、暂存代码审查覆盖和审查后内容变化。
  • pre-commit 再调用 pre-commit-check.ps1,执行编译检查;失败会阻止提交并路由到 bug-fixer
  • DevFlow 不提供 post-commit 自动 push。推送只由用户明确要求时通过 code-committer 执行。

implementercode-reviewer.claude/agents/ 中的独立子 Agent。复制或更新 .claude 后必须重启 Claude Code;如果 Agent 不可用,流程会阻塞,不允许主 Agent inline 代替编码或审查。


即插即用约定

DevFlow 只要求复制 .claude 目录。目标项目的需求、设计、计划、测试报告会在该项目自己的 docs/... 规范目录下生成。

本仓库不保留样例 docs,避免复制时污染目标项目。

从旧版升级时,删除目标项目中遗留的 Stop hook 配置和 .claude/hooks/stop-gate.ps1,再重启 Claude Code,并确认 core.hooksPath.claude/hooks。详细变更见 releaseNote.txt

About

Automated demand AI dev flow, freeing up your hands

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages