agentsclimarketplace

Spec prd

Skill yisean/claude-spec-skills/spec-prd

把原始需求澄清并定稿为规范化 PRD(带 R/F 功能需求编号与 AE/AC 可验收标准),写入 docs/product/prd/。Use when 用户给出原始需求/想法、要写或更新一份 PRD、把一个特性意图固化成正式需求。新需求取新序号;已有特性的增量改动请改用 /spec-change。From its SKILL.md

Install
npx -y skills add yisean/claude-spec-skills --skill spec-prd

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

9.5 KB, ~3.5k tokens by cl100k_base, as published. Nobody here has run it

需求阶段:原始需求 → 规范化 PRD

当前年份 2026,用于给文档命名与写日期。

这是「需求 → 原型 → 设计 → 计划 → 开发 → 评审 → 测试 → 合并」流水线的第 1 阶段(需求),回答 WHAT。下一步 /spec-prototype(界面长什么样),再下一步 /spec-design(HOW 的结构层)、/spec-plan(HOW 的执行层)。本 skill 只澄清与沉淀需求,不写代码、不做实现设计

术语表(编号约定的名词)

缩写全称含义写法例子
RRequirement功能需求编号R1 / R2 / R3…R8 预约成功占用该时段一个部门名额
FFeature / Function功能需求编号(与 R 等价,另一种字母)F1 / F2 / F3…F7 模拟考试不限考试次数
AEAcceptance Example验收示例/场景,须标注覆盖的需求号AE1 / AE2…AE2(R8)约满后第 4 个部门不可预约
ACAcceptance Criteria验收标准(与 AE 等价,另一种字母)AC1 / AC2…AC5(F8/F10)超出补考次数被拒绝

R/F 二选一、AE/AC 二选一:一份 PRD 内部统一用一种字母即可(R+AE 或 F+AC 均可)。两套字母只是不同 PRD 的习惯差异,作用完全相同。

编号约定(生成 PRD 时必须遵守)

  1. 功能需求逐条编号 R/F验收标准逐条编号 AE/AC
  2. 续编不重排:新增需求往后接(如已有到 R15,新增就是 R16、R17),绝不把已有需求重新编号——否则 plan、测试、历史引用全部失效。
  3. 每条 AE/AC 必须在括号里标注它覆盖的需求号,如 AE2(R8)…AC5(F8/F10)…
  4. 覆盖完整:每条 R/F 至少被一条 AE/AC 覆盖;没有验收的需求要么补验收,要么降级为非目标。
  5. 可追溯链R/F(要做什么)→ plan 任务(怎么做)→ AE/AC(怎么算做对了),三段保持引用、双向可查。
  6. 建议每条 R/F 隐含「作为<角色>,我想<做什么>,以便<价值>」的价值表达,必要时直接用该句式书写,避免只写功能不写价值。
  7. 可测句式(按需,EARS 风格) — 复杂或高风险的 R/F,用结构化句式写成可直接验收的形式,消除歧义:
    • 事件驱动:当 <触发> 时,系统应 <可观测行为>
    • 条件约束:若 <条件>,则系统应 <可观测行为>
    • 状态驱动:在 <某状态> 期间,系统应 <可观测行为> 简单需求仍可用第 6 条价值句式;两者可叠加(价值说"为什么",可测句式说"做对了是什么样")。

核心原则(compound-engineering)

  1. 单一事实源 — 优先级 docs/engineering/constitution.md(工程宪法 / 原则)> docs/engineering/workflow.md(流程与阶段标准)> docs/README.md > 本 skill 内置默认值。下面各条原则是宪法的精简内置版,项目文档存在时以其为准。
  2. 双向可追溯 — 见上「编号约定」。
  3. 右尺寸 — 简单清晰的需求少追问、直接定稿;模糊或跨切的需求才多轮澄清。
  4. 显式非目标 — 必须写清「这次不做什么」,避免范围蔓延。
  5. 回流而非另起 — 已有特性的改动是变更,复用原序号,改用 /spec-change;不要为它新建 PRD。

交互规则

需要澄清时用 AskUserQuestion(schema 未加载先 ToolSearch select:AskUserQuestion),一次一个问题,多用单选、少用多选。答案已经清晰就不追问,直接生成。

原始需求

<requirement> #$ARGUMENTS </requirement>

若上面为空,先问用户:「请描述你要做的需求 / 想解决谁的什么问题(一句话也行)。」拿到再继续。

执行流程

Phase 0 · 加载约定 + 判定增量/新特性

  1. 读以下文件(存在才读,作为单一事实源):

    • docs/engineering/constitution.md —— 工程宪法(不可妥协原则),最高优先级。
    • docs/engineering/workflow.md —— 阶段 1「完成标准」与「命名与追溯约定」。
    • docs/README.md —— 目录结构与文件命名。
    • docs/engineering/registry.md —— NNN 取号登记表(多人协作下保证序号唯一的单一事实源),读出你为本特性预留的 NNN
    • docs/product/prd/ 现有 PRD —— 沿用既有编号字母(R 还是 F),并与 registry 交叉确认 NNN 没被占用。
    • 若都不存在(新项目)→ 用内置默认约定,并提示:「该项目还没有 docs 流程骨架,要不要我先建 docs/product/prd|brainstormsdocs/engineering/prototype|design|plans,并初始化 docs/engineering/constitution.md(工程宪法)+ docs/engineering/workflow.md(流程总纲)+ 项目根 CLAUDE.md(编码规约)?」初始化这三份用 spec-init 资源包的脚本:~/.claude/skills/spec-init/init-project.ps1(Windows)/ init-project.sh(macOS/Linux)——它把 spec-init/templates/ 下的 constitution.mdworkflow.md 复制到 docs/engineering/CLAUDE.md 复制到项目根(缺失才建,-Force/--force 覆盖);或手动复制这三份模板。
  2. 判定:本需求是「已有特性的增量改动」还是「全新特性」?

    • 属于某个已有 PRD 的主题 → 停下,告知这是变更,建议改用 /spec-change(复用原 NNN、续编 R/F、就地扩 PRD)。
    • 全新特性 → 取号走「先登记后开工」(见下)。

    NNN 取号约定(多人协作必读):序号分配必须发生在共享的 main 上、且在开特性分支之前——否则各自分支里 max+1 互相看不见,合并才撞车。

    • 标准做法:先在最新的 main 上往 docs/engineering/registry.md 追加一行 reserved| NNN | slug | owner | date | reserved |),push 进 main(仅这一行,可免 PR);并发抢号时后 push 者会被拒/冲突,当场暴露,改取下一个号。号一经预留即作废不回收(回收会打断历史引用)。然后开 feat/NNN-slug 分支再跑本 skill,直接用登记好的 NNN。
    • registry 不存在时(老项目/未初始化):退回 NNN = 现有最大序号 + 1,并提示「多人协作建议建 docs/engineering/registry.md 先登记后开工,避免并行取号撞号」。
    • 详见 docs/engineering/workflow.md「取号约定」节。

Phase 1 · 澄清(按需,右尺寸)

可选:探讨期先用 /ce-brainstorm 把模糊想法发散成需求原稿,落到 docs/product/brainstorms/YYYY-MM-DD-<slug>-requirements.md,再回来定稿。

一次一问澄清,直到能写出完整 PRD:目标/非目标、用户与角色、关键决策与取舍、边界、成功指标、待解决问题。澄清得到的结论与取舍记进 PRD 的「关键决策」,未决的记进「待解决问题」——别让答案只停在对话里。

Phase 2 · 生成 PRD

先用 Read 读取本 skill 目录下的 templates/prd.md(PRD 骨架模板,含 frontmatter + 各节占位 + 可测句式提示),按它逐节填充,写到 docs/product/prd/YYYY-MM-DD-NNN-<slug>.md。要点(模板没读到时按此兜底):

  • frontmatter origin:有 brainstorm 写其 repo-relative 路径(如 docs/product/brainstorms/2026-06-03-xxx-requirements.md);无则写来源简述(直接需求 / 客户口头需求 / 线上反馈),不留空、不瞎指文件。
  • 正文结构:背景 → 目标/非目标 → 用户与角色 → 关键决策 → 功能需求R/F,续编不重排)→ 非功能约束(无则写「无特殊要求」)→ 验收标准AE/AC,每条标注覆盖的需求号)→ 覆盖矩阵(生成规则见 Phase 3)→ 成功指标 → 依赖与假设 → 待解决问题。
  • 全部用 repo-relative 路径引用文件,不用绝对路径。

Phase 3 · 自检(覆盖矩阵)+ 可选评审

  • 生成覆盖矩阵并写进 PRD,逐行核对,缺口即补:

    需求覆盖它的验收非功能约束
    R1AE1、AE2
    R8AE2、AE5约满判定需并发安全

    规则:每条 R/F 至少一条 AE/AC(该行验收为空 = 漏验收);每条 AE/AC 至少指向一条 R/F(悬空 = 多余验收或漏写了需求)。缺口要么补、要么把该需求降级为非目标。

  • 其余自检:非目标已写;待解决问题已列;编号无重排;高风险需求已用可测句式。

  • 高风险/大特性可跑 /ce-doc-review 让 persona 评审找漏洞(或用 Workflow 扇出可行性/安全/范围/一致性多视角并行评审),再回流修订。

Phase 4 · 交接

输出:PRD 路径、序号 NNN、需求号范围(如 R1–R9 / AE1–AE6)一句话摘要。然后提示下一步:

  • 涉及新界面/复杂交互 → /spec-prototype(以本 PRD 为输入画原型,发客户确认)。
  • 纯后端或微调 → 可跳过原型,直接 /spec-design
  • 后续若需求有改动 → /spec-change(先回流文档再改代码)。

What ships with it: 1 file

1.7 KB alongside SKILL.md

templates/

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.