所属阶段:第三阶段「工作流实战」(第 12-20 课) 前置条件:第 4-11 课(所有组件已掌握) 本课收获:能追踪任意命令的完整调用链,理解组件如何串联
一、本课概述
学完六大组件之后,最关键的一步是理解它们如何串联。ECC 不是一堆独立的零件,而是一条精密的流水线。
本课回答三个问题:
- Command 是什么角色? — 它正在被 Skill 替代,为什么?
- 一个命令从输入到执行经历了哪些节点? — 追踪三条完整调用链
- 79 个命令怎么分类记忆? — 建立全局地图,重点记 5 个
理解调用链之后,你遇到任何 ECC 命令,都能快速定位它背后的 Skill、Agent 和 Rule。
二、Command 的角色定位
2.1 Legacy Slash-Entry Shim
打开任意一个 Command 文件(如 commands/tdd.md),你会看到这样的描述:
---
description: Legacy slash-entry shim for the tdd-workflow skill. Prefer the skill directly.
---
关键词:Legacy Slash-Entry Shim(遗留的斜杠入口垫片)。
这意味着 Command 的定位正在发生变化:
| 阶段 | Command 的角色 | 说明 |
|---|---|---|
| 早期 | 主要入口 | 用户通过 /tdd 触发完整工作流 |
| 当前 | 兼容性垫片 | 工作流逻辑已迁移到 Skill,Command 只是转发 |
| 未来 | 可能淘汰 | Skill 成为主要入口,Command 保留向后兼容 |
2.2 为什么迁移到 Skill
Command 是一个扁平的入口 — 它只能定义"做什么",但不擅长承载"怎么做"的详细知识。
Skill 是一个结构化的知识包 — 它包含 When to Use、How It Works、Examples 等完整的上下文。
Command(旧):/tdd → 直接内嵌工作流步骤(维护困难,容易过时)
Skill(新):/tdd → commands/tdd.md → skills/tdd-workflow/SKILL.md(逻辑集中维护)
迁移的好处:
- 单一来源:工作流逻辑只在 Skill 中维护,Command 只做转发
- 可复用:Agent 也可以直接引用 Skill,不需要通过 Command
- 可测试:Skill 的结构化格式更容易验证正确性
三、调用链追踪 — 三个实例
3.1 调用链一:/tdd
这是最完整的调用链,涉及所有组件类型:
用户输入:/tdd
│
▼
commands/tdd.md ← Command(入口垫片)
│ "Apply the tdd-workflow skill"
▼
skills/tdd-workflow/SKILL.md ← Skill(工作流知识)
│ "Use tdd-guide agent"
▼
agents/tdd-guide.md ← Agent(执行者)
│ model: sonnet
│ tools: Read, Write, Edit, Bash, Grep
│ "Enforce RED-GREEN-REFACTOR"
▼
rules/common/testing.md ← Rule(约束条件)
│ "80% coverage, AAA pattern"
▼
rules/common/coding-style.md ← Rule(代码质量)
│ "Immutability, <50 lines per function"
▼
执行完毕 → 代码 + 测试 + 覆盖率报告
关键观察:
- Command 不做任何实质工作,只是一个路由器
- Skill 承载完整的工作流定义
- Agent 是实际的执行者,带有模型配置和工具权限
- Rule 是 Agent 执行时必须遵守的约束
3.2 调用链二:/plan
用户输入:/plan
│
▼
commands/plan.md ← Command(入口)
│ "Invokes the planner agent"
▼
agents/planner.md ← Agent(执行者)
│ model: opus ← 注意:用最强模型
│ tools: Read, Grep, Glob ← 注意:只读不写
│ "Requirements → Architecture → Steps → Order"
▼
rules/common/development-workflow.md ← Rule(流程约束)
│ "Research & Reuse → Plan → TDD → Review → Commit"
▼
输出:结构化实施计划(等待用户确认后才执行)
关键观察:
- Planner 的工具只有 Read/Grep/Glob — 只读不写,这是 Plan Before Execute 原则的落地
- 使用 Opus 模型 — 规划需要最强的推理能力
- 必须等待用户确认 — "WAIT for user CONFIRM before touching any code"
3.3 调用链三:/code-review
用户输入:/code-review
│
▼
commands/code-review.md ← Command(入口)
│ 判断模式:PR 模式 or 本地模式
▼
agents/code-reviewer.md ← Agent(执行者)
│ model: sonnet
│ tools: Read, Grep, Glob, Bash
│ "Gather → Understand → Read → Apply → Report"
▼
rules/common/security.md ← Rule(安全检查清单)
│ "8 项 CRITICAL 安全检查"
▼
rules/common/coding-style.md ← Rule(代码质量清单)
│ "7 项质量检查"
▼
输出:分级审查报告(CRITICAL / HIGH / MEDIUM / LOW)
关键观察:
- Code-reviewer 有 Bash 工具 — 它可以运行
git diff获取变更 - 审查结果分级,有明确的 Approve / Warning / Block 标准
- 置信度过滤:只报告 >80% 确信是真实问题的发现
四、命令分类速览表(79 个)
79 个命令看起来很多,但按类别分组后结构清晰:
4.1 核心工作流(必须掌握)
| 命令 | 作用 | 关联 Agent |
|---|---|---|
/plan | 实施规划 | planner |
/tdd | 测试驱动开发 | tdd-guide |
/code-review | 代码审查 | code-reviewer |
/verify | 验证循环 | (Skill 驱动) |
/e2e | E2E 测试 | e2e-runner |
/build-fix | 修复构建 | build-error-resolver |
/feature-dev | 完整功能开发 | 多 Agent 协作 |
4.2 语言审查
| 命令 | 语言 |
|---|---|
/go-review、/go-build、/go-test | Go |
/rust-review、/rust-build、/rust-test | Rust |
/python-review | Python |
/cpp-review、/cpp-build、/cpp-test | C++ |
/kotlin-review、/kotlin-build、/kotlin-test | Kotlin |
/flutter-review、/flutter-build、/flutter-test | Flutter/Dart |
4.3 多代理编排
| 命令 | 作用 |
|---|---|
/orchestrate | 级联执行(dmux-workflows + autonomous-agent-harness) |
/multi-plan | 多模型协作规划(Codex/Gemini 双模型分析) |
/multi-execute | 多模型协作执行(原型 → 重构 → 审计) |
/multi-backend、/multi-frontend | 前后端分离开发 |
/multi-workflow | 多工作流编排 |
/devfleet | 开发舰队模式 |
4.4 会话管理
| 命令 | 作用 |
|---|---|
/save-session | 保存当前会话 |
/resume-session | 恢复历史会话 |
/sessions | 查看会话列表 |
/checkpoint | 创建检查点 |
/context-budget | 上下文预算管理 |
4.5 学习与进化
| 命令 | 作用 |
|---|---|
/learn | 从会话中提取模式 |
/learn-eval | 评估学习效果 |
/skill-create | 从 Git 历史生成 Skill |
/evolve | 自动进化 Skill |
/instinct-export、/instinct-import、/instinct-status | 直觉系统 |
4.6 工具与辅助
| 命令 | 作用 |
|---|---|
/refactor-clean | 死代码清理 |
/update-docs | 更新文档 |
/update-codemaps | 更新代码地图 |
/quality-gate | 质量门禁 |
/prune | 清理无用文件 |
/harness-audit | 审计 Harness 配置 |
/prompt-optimize | 优化 Prompt |
五、必记 5 命令
如果你只能记住 5 个命令,记这 5 个。它们覆盖了完整的开发循环:
/plan → 开始前先规划(Plan Before Execute)
│
▼
/tdd → 按 RED-GREEN-IMPROVE 写代码(Test-Driven)
│
▼
/code-review → 写完后审查(Agent-First)
│
▼
/verify → 审查后验证(测试 + Lint + 类型 + 安全)
│
▼
/learn → 提交后学习(持续改进)
这 5 个命令恰好对应了五大原则的落地:
| 命令 | 对应原则 |
|---|---|
/plan | Plan Before Execute |
/tdd | Test-Driven |
/code-review | Agent-First + Security-First |
/verify | Security-First + Immutability |
/learn | 持续改进(闭环) |
六、调用链通用模式
观察三条调用链,可以总结出一个通用模式:
用户输入 /command
│
▼
commands/xxx.md ← 入口路由(Legacy Shim)
│
▼
skills/xxx/SKILL.md ← 工作流知识(可选,有些命令直接到 Agent)
│
▼
agents/xxx.md ← 执行者(模型 + 工具 + 角色定义)
│
▼
rules/common/*.md ← 约束条件(安全、编码风格、测试要求)
│
▼
输出结果
不是每条链都经过所有节点。简单命令可能跳过 Skill 直接到 Agent,甚至直接执行。但核心工作流命令(/tdd、/plan、/code-review)通常是完整链路。
七、本课练习
练习 1:追踪调用链(20 分钟)
从以下 5 个不同类别的命令中各选一个,追踪其完整调用链:
- 核心工作流:
/e2e - 语言审查:
/go-review - 多代理:
/orchestrate - 会话管理:
/save-session - 学习:
/learn
对每个命令:
- 打开
commands/xxx.md,找到它引用的 Skill 或 Agent - 打开对应的 Skill/Agent,找到它引用的 Rule
- 画出完整链路图
# 提示:用这个命令快速查看 Command 的内容
cat commands/e2e.md | head -20
练习 2:绘制流程图(15 分钟)
用文本或绘图工具,画出 /tdd 的完整调用链流程图。要求包含:
- 每个节点的文件路径
- 节点之间传递了什么信息
- 每个节点的模型选择(如果有)
练习 3:分类记忆(10 分钟)
不看本课内容,尝试回忆 79 个命令的 6 大类别名称,并为每个类别写出至少 2 个代表命令。
练习 4(选做):追踪一条新链
选择一个你没见过的命令(比如 /prp-implement 或 /gan-design),完全从零追踪其调用链。记录你遇到的困难和发现。
八、本课小结
| 你应该记住的 | 内容 |
|---|---|
| Command 定位 | Legacy Slash-Entry Shim,正在向 Skill 迁移 |
| 调用链模式 | Command → Skill → Agent → Rule → 输出 |
| 命令总数 | 79 个,分 6 大类 |
| 必记 5 命令 | /plan、/tdd、/code-review、/verify、/learn |
| Planner 特点 | 用 Opus 模型,只读工具,等待确认 |
| 迁移趋势 | 工作流逻辑集中到 Skill,Command 只做路由 |
九、下节预告
第 13 课:TDD 全流程 — RED-GREEN-IMPROVE
下节课我们将完整体验一次 TDD 循环。你会亲手写一个失败的测试、实现最小代码让它通过、然后重构优化。这是 ECC 开发流程中最核心的技能 — 不会 TDD,后面的验证循环和多代理编排都无从谈起。
预习建议:阅读 rules/common/testing.md 和 agents/tdd-guide.md,理解 AAA 模式(Arrange-Act-Assert)。