开发工作流
执行开发任务的工作流指导,支持单任务和批量执行,采用自顶向下开发模式和分层 TDD。
语言规则
模式选择
入口处根据任务规模选择合适的开发模式:
| 模式 |
适用场景 |
流程 |
| 轻量 |
Bug fix、小改动、配置变更 |
→ /devdocs-bugfix(已有) |
| 标准 |
新功能、需求变更 |
→ 完整 Requirements→Design→Tests→Tasks→Dev |
| 探索 |
原型、技术调研 |
→ 允许跳过部分验证,事后 /devdocs-retrofit 补文档 |
模式判断指引
- 若任务来自
devdocs-dev-tasks(已有完整文档链)→ 标准模式
- 若用户描述为 bug/hotfix/配置变更 → 轻量模式,路由到
/devdocs-bugfix
- 若用户描述为原型/调研/探索/spike → 探索模式,跳过对抗式验证和追溯标注强制,开发完成后提示运行
/devdocs-retrofit
以下流程为标准模式。轻量模式和探索模式见上述路由。
触发条件
- 用户开始执行某个任务(如 T-01)
- 用户批量执行任务(如 T-01~T-05、F-001、--all)
- 用户需要继续开发(断点续做)
- 用户需要开发指导
- 用户从 devdocs-dev-tasks 进入开发阶段
- 关键词:"开发任务"、"执行任务"、"开始 T-XX"、"批量开发"、"继续开发"
运行模式
语法
| 指定符 |
示例 |
说明 |
| 单任务 |
T-03 |
执行单个任务(现有行为) |
| 范围 |
T-01~T-05 |
执行范围内所有任务 |
| 枚举 |
T-01,T-03,T-07 |
执行指定任务列表 |
| 功能点 |
F-001 |
通过 关联需求 字段反查所有关联任务 |
| 用户故事 |
US-001 |
同上 |
| 全部 |
--all |
所有 状态≠已完成 的任务 |
| 无人值守 |
--headless |
批量模式 + 全自动决策(fail-fast) |
| 自动提交 |
--auto-commit |
测试通过自动提交,仅 Blocker 时暂停(与 --headless 互斥) |
模式对比
| 特性 |
单任务模式 |
批量模式(交互) |
--auto-commit |
--headless |
| 依赖解析 |
自动补充前置依赖 |
拓扑排序全部任务 |
拓扑排序全部任务 |
拓扑排序 + 前置校验 |
| 断点检测 |
执行 |
编排器轻量执行 |
编排器轻量执行 |
编排器轻量执行 |
| 提交方式 |
用户选择 |
子 Agent 内交互确认 |
测试通过自动提交 |
自动提交(安全不变量保证) |
| 中断处理 |
N/A |
子 Agent 内交互 |
Blocker 时暂停询问 |
fail-fast 终止 + 续做命令 |
| 完成汇总 |
无 |
批量执行报告 |
批量执行报告 |
交付报告 + 检查点文件 |
| 执行模式 |
主 Agent 直接执行 |
编排器 + 子 Agent |
编排器 + 子 Agent |
编排器 + 子 Agent |
| 上下文隔离 |
无需 |
每任务独立上下文 |
每任务独立上下文 |
每任务独立上下文 |
批量执行流程
解析指定符 → 依赖解析 + 拓扑排序 → 逐任务循环(断点检测 → 执行 → 原子提交)→ 汇总
详见 [task-orchestration.md](task-orchestration.md)
前置条件
- 任务文档:
docs/devdocs/04-dev-tasks.md
- 任务已定义并包含:关联需求、验收标准、测试方法
工作流程
1. 读取任务定义
├── 从 04-dev-tasks.md 获取任务详情
├── 确认关联的 F-XXX、AC-XXX
└── 确认关联的测试用例 UT/IT/E2E-XXX
│
▼
2. 生成骨架代码(自顶向下)
├── 接口骨架 + @requirement/@satisfies 标注
└── 测试骨架 + @verifies/@testcase 标注
│
▼
3. 执行开发(统一流程,分级强制)
├── 所有层级遵循统一 11 步流程
├── 层级标记(🔴🟡🟢⚪)决定各步骤强制程度
└── 详见 execution-flow.md 强制程度矩阵
│
▼
4. 完成检查
├── 基础检查(始终执行)
│ ├── 验收标准全部满足
│ ├── 测试通过
│ └── Review 要点自查
│
├── 前置验证(--review 触发时,对抗式验证之前)
│ ├── /devdocs-verify --impl:AC 满足度 + 设计一致性(若存在 DevDocs 文档)
│ └── /devdocs-verify --ui:设计稿↔实现对齐(仅 UI 任务 + 有设计稿)
│
└── 对抗式验证(🔴自动触发 / 其他层级 --review 手动触发)
├── 🔍 代码质量审查(/code-quality 视角)
├── 🧪 测试完备性审查(/testing-guide 视角)
└── 📋 综合审查报告
│
▼
4.5 更新自描述(/code-self-describe --update)
│
▼
5. 提交代码(Commit 1: 代码,遵循 /commit-convention)
│
▼
6. 更新追溯 + 文档提交(/devdocs-sync → Commit 2: 文档)
│
▼
6.5 更新 AGENTS.md "当前状态"(若存在)
├── 更新活跃任务编号 (T-XX)
└── 更新进度统计 (X/Y)
│
▼
7. [推荐] 知识沉淀(/devdocs-compound)
├── 批量模式完成后默认执行(用户可跳过)
└── 单任务模式:提示用户是否运行 /devdocs-compound
步骤状态追踪
11 步执行流程中,每步完成后记录状态标记(S1~S11),用于断点恢复时精确定位。比原有 5 步检查点更精确,减少重复工作。
详见 [execution-flow.md](execution-flow.md) 步骤状态追踪表
代码追溯标注规范
实现文档↔代码的双向追溯,AI 在生成代码时自动添加标注。
标注类型
| 标注 |
用途 |
位置 |
@requirement F-XXX |
关联功能点 |
接口/类/模块 |
@satisfies AC-XXX |
满足的验收标准 |
接口/方法 |
@verifies AC-XXX |
验证的验收标准 |
测试用例 |
@testcase UT/IT/E2E-XXX |
测试编号 |
测试用例 |
标注示例
/**
* 创建用户
* @requirement F-001 - 用户注册
* @satisfies AC-001 - 邮箱格式校验
* @satisfies AC-002 - 密码强度校验
*/
export async function createUser(dto: CreateUserDTO): Promise<User> {
// 实现代码
}
/**
* @verifies AC-001 - 邮箱格式校验
* @testcase UT-001
*/
test('createUser 应该拒绝无效邮箱格式', () => {
// 测试代码
});
标注规则
| 层级 |
标注位置 |
强制性 |
| 公共接口 |
Service/API 入口方法 |
必须 |
| 测试文件 |
每个测试用例 |
必须 |
| 内部实现 |
复杂逻辑 |
可选 |
自顶向下开发模式
先定义骨架,后填充细节。确保追溯链在代码生成时就建立。
开发流程
Step 1: 生成接口骨架
├── 方法签名(来自 02-system-design.md)
├── 添加 @requirement/@satisfies 标注
└── 方法体: throw new Error('Not implemented')
│
▼
Step 2: 生成测试骨架
├── 测试结构(来自 03-test-cases.md)
├── 添加 @verifies/@testcase 标注
└── 测试体: test.skip() 或 test.todo()
│
▼
Step 3: 实现接口细节(遵循 /code-quality)
│
▼
Step 4: 完善测试(遵循 /testing-guide)
│
▼
Step 5: 运行 /devdocs-sync 更新追溯矩阵
骨架生成约束
详见 [skeleton-examples.md](skeleton-examples.md)
分层 TDD 模式
所有层级遵循统一 11 步执行流程,层级标记仅决定各步骤的强制程度:
| 层级 |
标记 |
强制步骤 |
推荐步骤 |
可选步骤 |
| 核心逻辑 (Service/Domain) |
🔴 |
全部 11 步 |
— |
— |
| 接口层 (Controller/API) |
🟡 |
骨架/实现/绿/AC/自描述/提交 |
测试断言/红/重构/验证 |
— |
| UI 层 (Component/View) |
🟢 |
骨架/实现/绿/AC/自描述/提交 |
测试断言/验证 |
红/重构 |
| 基础设施 (DB/Config) |
⚪ |
骨架/实现/绿/AC/自描述/提交 |
测试骨架 |
测试断言/红/重构/验证 |
TDD 循环(统一流程核心)
┌─────┐ ┌─────┐ ┌─────┐
│ 红 │ → │ 绿 │ → │重构 │ ──┐
│写测试│ │写实现│ │优化 │ │
│(失败)│ │(通过)│ │代码 │ │
└─────┘ └─────┘ └─────┘ │
↑ │
└───────────────────────────┘
详见 [execution-flow.md](execution-flow.md) 统一任务执行流程 + 强制程度矩阵
编排规范(子 Agent 调度)
dev-workflow 调用以下技能时,必须通过 Task tool 启动子 Agent:
| 阶段 |
被调度技能 |
调度方式 |
| 前置验证 |
/devdocs-verify --impl |
Task tool 子 Agent |
| UI 对齐 |
/devdocs-verify --ui |
Task tool 子 Agent |
| 追溯同步 |
/devdocs-sync |
Task tool 子 Agent |
| 知识沉淀 |
/devdocs-compound |
Task tool 子 Agent |
| 全量测试 |
/devdocs-test-run |
Task tool 子 Agent |
调度原则
- 上下文隔离:每个子 Agent 自行读取所需文档,dev-workflow 不传递全文
- 摘要传递:只接收子 Agent 返回的 YAML 摘要,据此决定下一步
- 异常回退:子 Agent 返回
status: failed + blockers 时,展示阻塞项询问用户
- 不自行排障:编排层不读取子技能的完整输出文档来尝试修复
Skill 协作
| 阶段 |
协作 Skill |
说明 |
| 写业务代码 |
/code-quality |
MTE 原则、依赖注入、避免过度设计 |
| 写测试代码 |
/testing-guide |
断言质量、变异测试、覆盖率 |
| UI 实现 |
/ui-orchestrator |
无障碍、动画、布局约束 |
| 实现审查 |
/devdocs-verify --impl |
前置验证:AC 满足度 + 设计一致性(DevDocs 功能开发任务) |
| UI 对齐 |
/devdocs-verify --ui |
前置验证:设计稿↔实现对齐(仅 UI 任务 + 有设计稿时) |
| 完成验证 |
/code-quality + /testing-guide |
对抗式验证:多视角审查 |
| 完成检查 |
/code-self-describe |
更新模块自描述(--update) |
| 代码提交 |
/git-safety |
使用 git mv/rm 处理文件 |
| 提交信息 |
/commit-convention |
遵循项目提交规范 |
| 依赖解析 |
/devdocs-dev-tasks |
读取任务依赖关系和状态 |
| 任务完成 |
/devdocs-sync |
后续:更新追溯矩阵(追溯同步) |
| 知识沉淀 |
/devdocs-compound |
推荐:sync 后提取经验模式(批量模式默认执行) |
| 全量测试 |
/devdocs-test-run |
批量完成后:全量测试 + 追溯验证(--trace) |
约束
骨架生成约束
分层 TDD 约束
完成检查约束
对抗式验证(可选)
以不同角色视角审查代码,模拟 "开发 → 审查 → 测试" 的多人协作模式。
触发条件
层级判定:任务层级标记(🔴🟡🟢⚪)来自 04-dev-tasks.md 中的任务定义,由 /devdocs-dev-tasks 在任务拆分时根据任务分层规则分配。
| 任务层级 |
默认行为 |
手动控制 |
| 🔴 核心逻辑 |
自动触发 |
--skip-review 跳过 |
| 🟡 接口层 |
不触发 |
--review 启用 |
| 🟢 UI 层 |
不触发 |
--review 启用 |
| ⚪ 基础设施 |
不触发 |
--review 启用 |
验证流程概要
基础完成检查(AC + 测试 + 标注)→ Phase 1: 代码质量审查(/code-quality 视角)→ Phase 2: 测试完备性审查(/testing-guide 视角)→ Phase 3: 综合报告(Blocker 必须修复 / Suggestion 可跳过)
执行对抗式验证时,必须读取 [verification-flow.md](verification-flow.md) 获取 AC↔diff 交叉验证规则、发现数量下限、发现分类标准和 --headless 下 Blocker/Suggestion 处理细则。
对抗式验证约束
依赖解析约束
原子提交约束
断点续做约束
详见 [task-orchestration.md](task-orchestration.md)
--auto-commit 约束
记忆文件同步约束
全量测试验证约束
无人值守约束(--headless)
详见 [auto-mode.md](auto-mode.md)
任务完成流程
所有层级遵循统一完成流程(层级标记决定各步骤强制程度,详见 execution-flow.md):
- 确认测试状态:检查测试是否通过
- 确认 TDD 循环(■🔴 □🟡 ○🟢⚪):测试从失败到通过的红-绿循环
- 检查重构(■🔴 □🟡 ○🟢⚪):代码是否经过优化
- 验证验收标准:检查所有 AC 是否满足
- 对抗式验证(■🔴自动 / □🟡🟢--review / ○⚪--review):
- Phase 1: 代码质量审查(/code-quality 视角) - Phase 2: 测试完备性审查(/testing-guide 视角) - Phase 3: 综合报告,处理 Blocker
- 更新自描述:运行 /code-self-describe --update
- 提交决策:
- --headless 模式:自动提交(安全不变量已在前置步骤保证) - --auto-commit 模式:测试通过 + 无 Blocker 时自动提交 - 交互模式:AskUserQuestion:"任务 T-XX 已完成,是否提交代码?" - 选项:"提交" / "继续修改" / "跳过"
- 如提交(原子提交):
- Commit 1: 代码提交 <type>(T-XX): <名称> - 更新 04-dev-tasks*.md 状态 + /devdocs-sync - Commit 2: 文档提交 docs(T-XX): 更新任务状态并同步 trace
- 更新状态:TodoWrite 标记为已完成
提交信息格式
遵循 /commit-convention 规范,格式如下:
<type>(T-XX): <任务名称>
- <完成内容1>
- <完成内容2>
关联: F-XXX, AC-XXX
测试: UT-XXX, IT-XXX 通过
type 类型:feat | fix | refactor | test | docs | chore
子 Agent 摘要格式
当本 Skill 作为子 Agent 运行时,返回以下结构化摘要:
skill: devdocs-dev-workflow
task: T-XX
status: success | failed | skipped
commits:
code: "abc1234" # Commit 1 hash
docs: "def5678" # Commit 2 hash
test_summary:
passed: X
failed: 0
coverage: "XX%"
blockers_resolved: 0
suggestions_skipped: 0
ac_verified: [AC-001, AC-002]
next_task: T-YY | null
参考资料
- [skeleton-examples.md](skeleton-examples.md) - 接口/测试骨架示例
- [execution-flow.md](execution-flow.md) - 任务执行流程详解
- [verification-flow.md](verification-flow.md) - 对抗式验证流程详解
- [task-orchestration.md](task-orchestration.md) - 多任务编排(批量/依赖/断点续做)
- [auto-mode.md](auto-mode.md) - 无人值守模式详解