spec-plan

当用户希望进行 Spec 驱动开发(Spec-first / Spec-driven development)时,你 MUST 使用此 Skill:先把需求与约束收敛为一份可实施、可评审的 Spec,再进入实现。该 Skill 最终只生成 1 个 Spec 文件写入 /docs/specs/,并进行 1 次 git commit(仅提交该 Spec)。本 Skill 不写实现代码。

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "spec-plan" with this command: npx skills add junhualiu1/awesome-skills/junhualiu1-awesome-skills-spec-plan

Spec-Plan Workflow (Spec-driven)

输出物(强制)

  • 仅一个文件:docs/specs/spec{n}_<slug>.md
  • 仅一次提交:只提交该 spec(不生成 design、不额外 commit)

0) 建立仓库上下文(必须做)

在提问前先快速扫一遍(减少无效问题):

  • 目录:README*, docs/, src/, packages/, configs/
  • 是否已有 docs/specs/ 与命名规则/模版
  • git log -n 20 --oneline 了解近期方向与约束
  • 基本约定:API 风格/配置方式/CI 门槛(知道“怎么跑”即可)

若无法访问仓库:明确说明“缺少仓库上下文”,请用户粘贴目录树/相关模块/现有接口示例;同时继续推进,使用 TBD 标注不确定项。


提问规则(强制)

  • 只问 关键 / 核心 / 有歧义 的问题(会影响实现路径、范围或接口)
  • 分组提问方式:每轮最多问 3 个「最关键、最阻塞」的问题;用户回答后,模型必须先用 2–4 句复述:
    • ✅ 已确认的信息
    • ⚠️ 仍待明确(TBD)的关键点
  • 在完成复述后,模型必须进行一次 关键歧义自检
    • 判断当前信息是否仍存在 会影响实现路径、范围或接口的关键不确定性
    • 存在,进入下一轮继续追问(仍遵循每轮最多 3 个的问题限制)
    • 不存在,立即停止提问并进入下一阶段
  • 全程严格去重与合并相近问题,累计问题总数 不超过 10 个,确保聚焦而不发散
  • 问题优先采用 多选形式,并提供 Other / 不确定

你必须优先搞清的点(从上往下问)

  1. 用户/场景:谁用?何时触发?现在怎么做?最大痛点?
  2. 成功标准:怎样算成功?验收口径是什么?
  3. 范围边界:必须做/不做/可选(YAGNI:可选放 Future Work)
  4. 输入输出:UI/API/CLI/配置/任务?对外契约是什么?
  5. 约束:兼容性/性能/权限/合规/依赖系统/上线窗口
  6. 风险:失败点、回滚要求、数据一致性要求

2) 方案收敛(必须给 2-3 个)

当信息够用时,给出 2-3 个方案,并明确推荐方案。 每个方案包含:

  • 适用前提
  • 优点
  • 缺点/风险
  • 复杂度(低/中/高)
  • 影响模块/大概改动点
  • Future Work(明确这次不做的)

推荐方案必须解释“为何在当前约束下最合适”,避免过度设计。


3) Spec 写作(可评审、可实施)

Spec 必须具备

  • 可实现:模块改动点、接口契约、数据结构、边界条件
  • 可验收:Acceptance Criteria(对齐 FR/NFR)
  • 可发布:上线/迁移/回滚/兼容策略
  • 不确定项:正文标 TBD,末尾 Open Questions 汇总

Spec 结构(精简版)

  1. Background(痛点与现状)
  2. Goals / Non-goals(防止范围膨胀)
  3. Use Cases(关键用户路径)
  4. Requirements(FR / NFR:最小必要)
  5. Proposed Solution(推荐方案 + 关键决策 + 备选方案简述)
  6. Architecture & Data Flow(流程/时序/边界)
  7. Interfaces / Data Model(如适用:API、事件、存储变更)
  8. Error Handling & Edge Cases(幂等/重试/降级/一致性)
  9. Rollout / Migration / Rollback(发布与回退)
  10. Work Breakdown(按顺序的任务拆解 + Done Definition)
  11. Testing Notes(关键用例与覆盖范围说明)
  12. Acceptance Criteria(Checklist)
  13. Open Questions(汇总 TBD)
  14. Future Work(可选)

4) 落盘规则(强制)

目录与编号

  • 目录:docs/specs/(不存在则创建)
  • 编号自增:
    • 扫描 docs/specs/ 下匹配 spec(\d+)_ 的文件
    • n = max_n + 1;若无则 n = 1

文件名 slug(snake_case)

  • 文件名:spec{n}_<slug>.md
  • 规则:小写;空格/连字符→_;去特殊字符;合并连续 _
  • 中文主题:优先简短英文/拼音;否则用语义清晰英文兜底

5) 唯一一次提交(强制)

完成并确认 spec 后:

  1. git status --porcelain 确认变更
  2. git add docs/specs/spec{n}_<slug>.md
  3. git commit -m "docs: add spec{n} <slug>"(若仓库有规范则遵循)

对话中必须返回:

  • spec 文件路径
  • Spec 标题 + 3-5 行摘要
  • Top 3 Open Questions(如有)

结束语(必须): “Spec 已生成并一次性提交。Ready to set up for implementation?”

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

code-review-excellence

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

spec-plan

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

claude-code-skills

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

dev-tools-skills-guide

No summary provided by upstream source.

Repository SourceNeeds Review
spec-plan | V50.AI