Files
git-learn/devflow/projects/2026-05-19-dev-flow-skill-evaluation/dev-flow-skill-evaluation.md

117 lines
5.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Dev Flow Skill 评估报告
**日期**:2026-05-19
**对象**:`.claude/skills/dev-flow/SKILL.md`
**背景**:该 skill 基于 openspec 工作流,并融合 `to-prd`、`grill-with-docs`、`zoom-out`、`diagnose`、`tdd` 等开源 skill 思路,目标是形成一套从需求到实现再到知识沉淀的工程开发闭环。
## 总体评价
这套 `dev-flow` 的方向是正确的:它没有试图替代 openspec,而是在 openspec 的流程控制之上增加需求精化、架构审计、质量闭环和长期知识沉淀。
最有价值的设计是 `devflow/` 产物聚合层:
- `openspec/changes/` 负责机器可执行的变更工作区。
- `devflow/projects/` 负责人类可回溯的项目档案。
- `devflow/glossary/CONTEXT.md` 负责跨项目领域词汇。
- `devflow/compound/` 负责沉淀可复用工程知识。
目前最大的问题是:`SKILL.md` 更像一份设计说明书,而不是一份代理可以稳定执行的运行手册。它解释了很多理念,但缺少执行时必需的检查点、模板、分支规则和 fallback 策略。
## 亮点
1. **产物聚合层设计清晰**
- `devflow/projects/YYYY-MM-DD-{slug}/` 解决了 openspec archive 后上下文难以回溯的问题。
- 工具工作区和人类档案层分离,职责边界明确。
2. **阶段顺序合理**
- Phase 0 → Phase 1 → Phase 1.5 → Phase 2 → Phase 2.5 → Phase 3 → Phase 4 的顺序能有效避免“需求没想清楚就开始编码”。
3. **Phase 4 很有价值**
- 明确要求从 openspec 提炼 research、design、tasks、acceptance、ADR 和 compound knowledge。
- 这是区别于普通 openspec 流程和普通编码 skill 的核心优势。
4. **grill-with-docs 融合方式正确**
- Phase 2 要求一次只问一个问题,并即时更新 `CONTEXT.md` / ADR。
- 这符合“边澄清边沉淀”的工作方式。
5. **质量闭环意识强**
- Phase 3 明确要求 bug 不允许猜测式修复,必须走 diagnose 协议。
- TDD 被设计为可选增强,避免对所有任务强制套用重流程。
## 主要问题
1. **触发描述不够完整**
- 当前 `description` 说明了流程构成,但没有覆盖足够多的用户触发场景。
- 建议明确写入:当用户要从需求到实现、规划 feature、执行 openspec change、沉淀工程文档、规范化开发流程时使用。
2. **Claude 工具耦合较强**
- `allowed-tools` 使用 Claude Code 风格工具名。
- 如果未来迁移到 Codex skill,这些工具名可能不适用。
- 建议把工具白名单保留给 Claude 版本,同时在正文中描述环境无关的 fallback 行为。
3. **依赖安装状态不应写死**
- 依赖表中写了“✅ 已安装”,这对当前仓库成立,但复制到其他项目会误导。
- 应改成“启动时检查是否存在”,并区分 required、optional、fallback。
4. **子 skill 调用方式不稳**
- 文档写“调用 Skill 工具启动 openspec-propose / openspec-apply-change”。
- 但不同代理环境未必支持直接调用 Skill 工具。
- 建议增加 fallback:如果不能直接调用,就读取对应 `SKILL.md` 并按其协议执行。
5. **缺少初始化算法**
- 文档要求写入 `devflow/projects/YYYY-MM-DD-{slug}/`,但没有说明如何生成 slug、如何处理重名、如何创建目录骨架。
6. **缺少模板**
- PRD、research、design、tasks、acceptance、CONTEXT、ADR、compound knowledge 都有路径要求,但没有最小模板。
- 这会导致代理每次输出格式不稳定。
7. **quick 模式与约束存在冲突**
- `--quick` 说可以跳 Phase 1.5 和 2.5,仅 grill + apply。
- 约束又说严禁跳过 Phase 2。
- 需要明确 quick 模式只能跳哪些阶段,不能跳哪些阶段。
8. **Phase 退出条件不足**
- 每个 Phase 有目标,但没有明确“什么时候可以进入下一阶段”。
- 建议增加进入条件、退出条件和必需产物。
## 改进建议
1. **将 `SKILL.md` 改成执行协议**
- 保留角色、触发场景、阶段总览、硬性约束和关键分支规则。
- 把长解释、模板、示例迁移到 `references/`。
2. **增加启动前检查清单**
- 检查 `openspec/` 是否存在。
- 检查 `.claude/skills/openspec-*` 是否存在。
- 检查 `devflow/` 是否已初始化。
- 检查是否存在旧的根目录 `CONTEXT.md`,必要时迁移或合并到 `devflow/glossary/CONTEXT.md`。
3. **增加 Phase 契约**
- 每个 Phase 明确:输入、动作、输出、退出条件、失败时回退路径。
4. **补齐模板**
- 新增 `references/templates.md`,收纳 PRD、research、design、tasks、acceptance、ADR、compound knowledge 的最小模板。
5. **补齐归档规则**
- 新增 `references/archive-rules.md`,明确如何从 openspec 文件提取信息到 `devflow/projects/`。
6. **统一 quick 模式语义**
- quick 模式可以跳过 Phase 1.5 和 Phase 2.5。
- quick 模式不能跳过 Phase 2 的最小澄清,也不能跳过 Phase 4 的轻量归档。
7. **增加 fallback 策略**
- 优先调用子 skill。
- 如果不可调用,则读取该 skill 的 `SKILL.md`。
- 如果 skill 文件不存在,则执行 dev-flow 内置的最小协议。
## 优先级
- **P0**:修正工具/环境耦合、依赖检查、quick 模式冲突。
- **P1**:补模板和 Phase 退出条件。
- **P2**:把长理念迁移到 `references/`,保持 `SKILL.md` 更短更可执行。
- **P3**:增加 `agents/openai.yaml` 或等价元数据,方便技能列表展示。
## 结论
`dev-flow` 已经具备成为高价值工程元技能的基础:流程完整、沉淀意识强、质量闭环明确。下一步不应继续增加理念,而应把它产品化为“代理稳定执行协议”:更短的 `SKILL.md`、更明确的 Phase 契约、更标准的模板、更稳的 fallback 机制。