APM

>Agent Skill

@echovic/spec-flow

skilldevelopment

Spec-driven development workflow. Interactive phase-by-phase confirmation from proposal to implementation. Trigger: 'spec-flow', 'spec mode', 'need a plan', 'structured development', 'write a spec', 'feature spec', 'technical spec', '需求文档', '技术方案', '任务拆解', '规格驱动', '写个方案', '做个规划', '结构化开发', 'plan this feature', 'break this down', 'design doc'. Creates .spec-flow/ directory with proposal, requirements, design, and tasks.

apm::install
$apm install @echovic/spec-flow
apm::skill.md
---
name: spec-flow
description: "Spec-driven development workflow. Interactive phase-by-phase confirmation from proposal to implementation. Trigger: 'spec-flow', 'spec mode', 'need a plan', 'structured development', 'write a spec', 'feature spec', 'technical spec', '需求文档', '技术方案', '任务拆解', '规格驱动', '写个方案', '做个规划', '结构化开发', 'plan this feature', 'break this down', 'design doc'. Creates .spec-flow/ directory with proposal, requirements, design, and tasks."
argument-hint: "[feature description] [--fast] [--skip-design]"
---

# Spec-Flow - Structured Development Workflow

Structured workflow for complex feature development. Creates living documentation that guides implementation and serves as team reference.

## Core Principles

1. **One phase at a time** — NEVER generate documents for subsequent phases in advance
2. **Mandatory confirmation** — After each phase, STOP and wait for user confirmation
3. **User-driven progression** — Only proceed when user says "continue"/"ok"/"next"/"继续"/"好"

## Parameters

| 参数 | 说明 |
|------|------|
| `--fast` | 跳过逐阶段确认,一次性生成所有文档(最后整体确认) |
| `--skip-design` | 跳过 Design 阶段(简单功能,架构显而易见时) |

## Language Rule

**所有生成的 .md 文件必须使用中文。**

## Interaction Rules

Load `references/interaction-rules.md` for detailed confirmation templates and prohibited behaviors.

---

## Five-Phase Workflow

Copy this checklist and check off items as you complete them:

### Spec-Flow Progress:

- [ ] **Phase 0: Initialize** ⚠️ REQUIRED
  - [ ] 0.1 Run `scripts/init-spec-flow.sh <feature-name>` or create `.spec-flow/active/<feature>/`
  - [ ] 0.2 Check if `.spec-flow/steering/` exists — if so, read for project context
  - [ ] 0.3 问自己:**这个功能的核心价值是什么?用一句话能说清吗?**

- [ ] **Phase 1: Proposal** ⚠️ REQUIRED
  - [ ] 1.1 Create `.spec-flow/active/<feature>/proposal.md` using `templates/proposal.md.template`
  - [ ] 1.2 包含:Background, Goals, Non-Goals, Scope, Risks, Open Questions
  - [ ] 1.3 问自己:**有没有隐含的需求没写出来?**
  - [ ] 1.4 问自己:**Non-Goals 是否足够明确?能防止 scope creep 吗?**
  - [ ] 1.5 ⏸️ 确认节点 — 等待用户确认后继续

- [ ] **Phase 2: Requirements**
  - [ ] 2.1 Create `.spec-flow/active/<feature>/requirements.md` using `templates/requirements.md.template`
  - [ ] 2.2 Load `references/ears-format.md` — 使用 EARS 格式编写需求
  - [ ] 2.3 包含:FR-xxx 功能需求, NFR-xxx 非功能需求, AC-xxx 验收标准
  - [ ] 2.4 问自己:**每条需求都是可测试的吗?**
  - [ ] 2.5 问自己:**边界情况覆盖了吗?错误场景呢?**
  - [ ] 2.6 ⏸️ 确认节点 — 等待用户确认后继续

- [ ] **Phase 3: Design**(除非 `--skip-design`
  - [ ] 3.1 Create `.spec-flow/active/<feature>/design.md` using `templates/design.md.template`
  - [ ] 3.2 包含:Architecture (Mermaid), Components, API, Data Model, Error Handling
  - [ ] 3.3 问自己:**这个设计能满足所有 requirements 吗?逐条对照**
  - [ ] 3.4 问自己:**有没有更简单的方案?过度设计了吗?**
  - [ ] 3.5 ⏸️ 确认节点 — 等待用户确认后继续

- [ ] **Phase 4: Tasks**
  - [ ] 4.1 Create `.spec-flow/active/<feature>/tasks.md` using `templates/tasks.md.template`
  - [ ] 4.2 Load `references/task-decomposition.md` — 遵循任务拆解规范
  - [ ] 4.3 每个任务:1-2 tool calls 可完成,标注复杂度 Low/Medium/High
  - [ ] 4.4 分组:Setup → Implementation → Testing → Documentation
  - [ ] 4.5 问自己:**任务之间的依赖关系对吗?有没有可以并行的?**
  - [ ] 4.6 ⏸️ 确认节点 — 等待用户确认后继续

- [ ] **Phase 5: Implementation**
  - [ ] 5.1 Load `references/execution-modes.md` — 确认执行模式
  - [ ] 5.2 默认 Step Mode(逐任务确认),用户可切换 Batch/Phase Mode
  - [ ] 5.3 每个任务执行前:读 tasks.md → 检查依赖 → 读 design.md
  - [ ] 5.4 每个任务执行后:更新 tasks.md 状态(`- [ ]``- [x]`
  - [ ] 5.5 全部完成后:归档到 `.spec-flow/archive/`

---

## Directory Structure

```
.spec-flow/
├── steering/           # 全局项目上下文(可选)
│   ├── constitution.md
│   ├── product.md
│   ├── tech.md
│   └── structure.md
├── active/             # 进行中
│   └── <feature>/
│       ├── proposal.md
│       ├── requirements.md
│       ├── design.md
│       └── tasks.md
└── archive/            # 已完成
```

## Steering Documents (Optional)

| Document | Purpose | Template |
|----------|---------|----------|
| `constitution.md` | 项目治理原则 | `templates/steering/constitution.md.template` |
| `product.md` | 产品愿景、目标用户 | `templates/steering/product.md.template` |
| `tech.md` | 技术栈、约束 | `templates/steering/tech.md.template` |
| `structure.md` | 代码组织、命名规范 | `templates/steering/structure.md.template` |

## Phase Transitions

| From | To | Condition |
|------|-----|-----------|
| Proposal | Requirements | Proposal approved, questions resolved |
| Requirements | Design | Requirements complete, testable |
| Requirements | Tasks | `--skip-design`, simple feature |
| Design | Tasks | Design approved |
| Tasks | Implementation | Tasks confirmed |
| Implementation | Done | All tasks complete → archive |

## Compatibility

Works with any AI agent that supports Skills format: Claude Code, Blade, OpenClaw, Cursor, Windsurf, etc.