agentsclimarketplace

Spec check

Skill yisean/claude-spec-skills/spec-check

对某个特性(同一 NNN)的 PRD → 原型 → 设计 → plan 做一致性体检:校验覆盖矩阵(每条 R/F 都有 AE/AC 验收且落到实现单元、AE/AC 不悬空)、编号续编无重排无重复、跨文档 NNN 与 status 一致、设计 ER 与 migration 是否一致、NFR 是否缺位,输出带定位与修法的报告。只读不改文档。Use when 想确认某特性的需求/原型/设计/计划是否对得上、提交或评审前自检、spec-change 回流后核对、怀疑有漏验收或悬空需求。修复请回到 /spec-prd、/spec-change、/spec-design 或 /spec-plan。From its SKILL.md

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

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.4 KB, ~3.4k tokens by cl100k_base, as published. Nobody here has run it

校验阶段:spec 产出物一致性体检

当前年份 2026

这是横切流水线的只读校验 skill。它不产出新文档、不改任何产出物,只把同一特性(同一 NNN)的 PRD / 原型 / 设计 / plan 摆在一起,沿可追溯链逐项核对,输出一份带定位与修法的体检报告。类比 spec-kit 的 /analyze

铁律:只读。 spec-check 只报告问题、指出该跑哪个 skill 修,绝不自己改 PRD/原型/设计/plan/代码——保持「先文档后实现、改动走对应 skill」的单一事实源纪律。需求层面的修复回 /spec-prd/spec-change,设计层面的回 /spec-design,实现层面的回 /spec-plan

术语提示

功能需求用 R/F 编号、验收用 AE/AC 编号、计划里的实现单元用 U 编号(详见 /spec-prd/spec-plan)。可追溯链:R/F(要做什么)→ U(怎么做)→ AE/AC(怎么算做对了)。本 skill 校验的就是这条链有没有断、有没有悬空。

核心原则

  1. 只读不改 — 见上铁律。
  2. 沿同一 NNN 横切prd/…-NNN-*prototype/*design/…-NNN-*plans/…-NNN-*migration-* 必须对得上。
  3. 覆盖矩阵是判据 — 校验直接复用 PRD/plan 里已落盘的覆盖矩阵;矩阵缺失也照样从正文现抽一份来对。
  4. 定位 + 修法 — 每个问题都给「在哪、为什么是问题、怎么修、该跑哪个 skill」,不只说"有问题"。
  5. 右尺寸 — 没有 plan/原型的早期特性,只校验已存在的产出物,缺的阶段标"未到"而非报错。
  6. 只管文档一致性,不查代码规约 — 本 skill 校验的是 spec 产出物(PRD/原型/设计/plan/migration)之间对不对得上。命名/注释/分层/前后端编码规约属编码期,由 /code-review·/ce-code-review 对照 constitution「工程基线」与项目 CLAUDE.md 把关,不在 spec-check 范围(它也读不到业务代码)。

执行流程

Phase 0 · 定位特性与产出物

  1. $ARGUMENTS 确定目标:可以是 NNN、PRD 路径、或特性名;留空则取 docs/product/prd/ 中最近 status: active 的一份,回显「正在体检 NNN-<slug>,对不对?」。
  2. 沿同一 NNN 找齐(存在才纳入,不存在标记「未到/不适用」):
    • docs/product/prd/…-NNN-*.md(必需,找不到则停下报错)
    • docs/engineering/prototype/(涉及界面的页面 + index.html
    • docs/engineering/design/…-NNN-*.md(技术设计:架构/接口/ER/详细设计)
    • docs/engineering/plans/…-NNN-*.md
    • docs/ops/install/migration-*.sql
  3. docs/engineering/constitution.md(工程宪法 / 原则)与 docs/engineering/workflow.md(命名与追溯约定)作为最高判据(存在则覆盖下面的内置默认);读 docs/engineering/registry.md(NNN 取号登记表,供 C8b 核对)。
  4. 体检以本特性单一 NNN 为主;唯有 C16「跨特性引用一致」会按需到全 docs/ 做文本检索、读别的 NNN 产出物——但仍是只读,不改任何文件。

Phase 1 · 抽取编号与映射

从各产出物现抽出事实,建一张内存中的映射:

  • PRD:全部 R/F(及其文字)、全部 AE/AC 及其括号里标注覆盖的需求号、是否有「非功能约束」节、frontmatter(status / date / origin)。
  • 设计:接口清单、ER 模型的实体/字段、详细设计覆盖的 R/F、frontmatter(origin 应指向 PRD)。
  • plan:全部实现单元 U 及各自的覆盖需求(实现哪些 R/F)、设计依据(指向 design 的小节)与 Test scenarios(对应哪些 AE/AC)、frontmatter(origin 应指向设计)、引用的 migration。
  • 原型:现有页面清单 + index.html 入口、各页面对应的 R/F(若标注)。

Phase 2 · 逐项检查(给每项判 PASS / WARN / FAIL)

#检查项不通过判级
C1编号规整R/FAE/ACU 各自无重复、无重排迹象;断号有解释(如某号已废弃)重复/重排=FAIL;裸断号=WARN
C2验收覆盖:每条 R/F 至少被一条 AE/AC 覆盖(除非显式标为非目标)FAIL
C3验收不悬空:每条 AE/AC 括号里的需求号都真实存在,且至少指向一条FAIL
C4实现落地(有 plan 时):每条 R/F 至少落到一个 U(除非非目标)FAIL
C5单元不悬空(有 plan 时):每个 U 的覆盖需求都指向存在的 R/FFAIL
C6验证闭环(有 plan 时):每个 U 的 Test scenarios 指向存在的 AE/ACWARN
C7NFR 在位:PRD 有「非功能约束」节(无则该节显式写「无特殊要求」也算通过)WARN
C8跨文档一致:prd / design / plan / migration 同 NNN;frontmatter status 合理(如 plan 已 done 但 PRD 还 active 要提示);origin 链 plan→design→prd 指向真实存在的文件或写了来源简述不一致=WARN
C8b取号登记一致(有 registry.md 时):本特性 NNNdocs/engineering/registry.md 有登记、且该号未被两条记录重复占用;status 与 PRD/plan 现状不矛盾(如特性已交付但登记仍 reserved)。registry 缺失则标「未建登记表」并提示多人协作建议补上号未登记/被重复占用=FAIL;status 不符=WARN
C9原型覆盖(有原型时):每条 UI 相关 R/F 有对应页面,且页面都挂进了 index.html缺页面=WARN
C10数据一致(有 design + plan 时):设计的 ER 模型实体/字段与 migration sql 的表大致对得上(粗检字段/表名)WARN
C11设计落地(有 plan 时):有设计文档;每个 U 的「设计依据」指向设计里真实存在的小节;设计的接口清单覆盖的 R/F 都进了某个 U缺设计=WARN;悬空设计依据=WARN
C12回滚段在位(有 migration 时):migration 脚本含回滚/down 段(或显式写「无」);不能只有 up 没有撤回说明缺回滚段=WARN
C13时间戳规约(有 migration 时):新建业务表带创建/更新时间戳两列(命名沿用项目惯例,如 create_time/update_time);豁免的表(字典/只读/中间表)在设计或脚本里注明原因缺时间戳且无豁免说明=WARN
C14字段长度一致(有 design + migration 时):设计/接口契约标注了字符串字段的最大字符数;migration 的列长与之一致(按所选库语义:MySQL varchar(N) 按字符 / Oracle varchar2(N CHAR) / 达梦 等,见 constitution #9)漏标或与列长不一致=WARN
C15设计章节完整(有 design 时,涉及才查):涉及界面的特性 design 有「前端设计」节;占名额/高频写场景有「并发与幂等」;多角色特性有「权限」相关设计该有却缺=WARN
C16跨特性引用一致(事后兜底):本特性对外暴露的接口/表/字段/共享原型组件,去全 docs/ 检索是否有别的 NNN 仍引用了已不存在或已改签名的旧版本;本特性对外依赖的接口/表,确认对方 NNN 现状仍提供悬空跨特性引用=WARN

Phase 3 · 输出体检报告

报告结构:

  1. 总判定一行:✅ 通过 / ⚠️ N 项提示 / ❌ N 项必修 + M 项提示

  2. 覆盖矩阵总表(现抽或复用已落盘的),把断链行用 ⚠️/❌ 标出:

    需求验收实现单元状态
    R8AE2、AE5U2、U3
    R9——U4❌ 漏验收
    R10AE7——❌ 漏实现
  3. 问题清单(先 FAIL 后 WARN),每条:[检查项] 位置 → 为什么是问题 → 怎么修 → 跑哪个 skill

    • 例:[C2] R9(PRD §2 第 9 条)没有任何 AE/AC 覆盖 → 补一条标注(R9)的验收,或降级为非目标 → /spec-change

Phase 4 · 交接(修复建议,不自己改)

按问题归属给出该跑的命令,等用户决定

  • 需求/验收层(漏验收、悬空 AE/AC、NFR 缺、编号要续编)→ 已上线/在研特性走 /spec-change;尚未定稿的新 PRD 走 /spec-prd
  • 设计层(缺设计文档、接口/详细设计缺、ER 与 migration 不一致、单元「设计依据」悬空)→ /spec-design
  • 实现层(漏实现单元、单元悬空、Test scenarios 缺、migration 未落)→ /spec-plan
  • 原型层(UI 相关需求缺页面、入口未挂)→ /spec-prototype
  • 全部通过 → 明确告知「可追溯链完整,可进入下一阶段」。

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

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.