用 Claude Code 和 Cursor 做规范驱动开发
Claude Code 是一个代理式编程工具,它读取代码库、编辑文件并运行命令。Cursor 是编辑器,其项目规则放在 .cursor/rules,形式是 .mdc 文件。规范驱动开发(SDD,spec-driven development)是先写规格、再写代码,并把规格当作事实来源的做法。产品需求文档(PRD,product requirements document)是在把工作拆成任务之前,陈述问题和范围的散文。在 SpecScore 里,功能规格是一项产品能力的文件,需求(REQ,requirement)是该功能内部一条有名字的规则,验收标准(AC,acceptance criterion)是可选的抽象条件,指向其中一条或多条规则。持续集成(CI,continuous integration)是对每一项提议变更的自动检查。这项检查是一条命令行界面(CLI,command-line interface)的命令 specscore spec lint,来自 specscore/specscore-cli 里的 CLI。本页所说的 Cursor 规格,是那份功能文件,加上告诉代理去检查它的 Cursor 项目规则。
最近更新:2026年11月6日
什么放进功能,什么放进代理文件
功能文件持有义务。spec/features/ 下的功能 README 载有 #### REQ: 规则和 ### AC: 标准。填好的形态、计划、任务就是Markdown 中的 PRD 模板。specscore spec lint 检查这个形态:标题、必需的节、索引行和引用。它不判断产品想法是不是个好主意。在 CI 中用规格检查器检查规格是这条命令的更长说明。
代理文件持有针对一个工具的指示。Anthropic 的概述说,CLAUDE.md 是项目根目录的 Markdown 文件,Claude Code 在每次会话开始时读取它。Cursor 的规则文档说,项目规则是 .mdc 文件,位于 .cursor/rules,该目录里没有 frontmatter 的普通 .md 文件会被忽略。这些文件告诉代理如何在仓库里工作。它们不是检查器所检查的规格。只存在于 CLAUDE.md,或只存在于 .cursor/rules/specscore.mdc 的需求,对 specscore spec lint 不可见。
specscore agent setup 写入什么
CLI README 说,specscore agent setup 写入每个代理的指示文件,并且在该代理有技能目录时,把 SpecScore 技能包复制进去。除非传入 --force,命令会跳过已有文件。契约是 agent-setup 功能,位于 specscore/specscore-cli。
那份契约把调用方 id claude 对应到 CLAUDE.md 和 .claude/skills/,把调用方 id cursor 对应到 .cursor/rules/specscore.mdc 和 .cursor/skills/。在已经有 specscore.yaml 的项目里运行这条命令。如果缺少该文件,命令以 6 退出,消息建议 specscore init。一次点名两个代理的调用是 specscore agent setup claude,cursor。功能说,逗号分隔的列表与分开的参数相同。父目录会被创建。每条路径都被报告为已添加、已修改或已跳过。
生成的 CLAUDE.md 包含项目标题、传入 --caller claude 的 CLI 示例,以及安装行 /plugin install specscore@specscore。Cursor 的文件是带 YAML frontmatter 的 Markdown。frontmatter 含有 description 和 alwaysApply: true。Cursor 的规则表说,alwaysApply: true 表示这条规则被纳入每一次聊天。--no-skills 写入指示文件,不复制技能包。同一张契约表还点名 codex、copilot、antigravity.google、pi.dev、opencode 和 deepseek。本页写的是标题里的两个代理。
specscore agent setup claude,cursor
CLAUDE.md
.claude/skills/
.cursor/rules/specscore.mdc
.cursor/skills/
指示文件指向功能树。它不代替功能树。设置之后,Claude Code 仍然必须读取 spec/features/,Cursor 的规则仍然必须指向同一棵树。功能规格仍然是 specscore spec lint 接受或拒绝的文档。
在循环里运行 specscore spec lint
先安装 CLI。安装方法在安装页面上。然后把功能和检查器保持在与代理相同的循环里。
在提示之前写下功能
用PRD 模板加入功能 README、功能索引行和 specscore.yaml。把每条义务放在 ## Behavior 下,写成 #### REQ: {slug}。用 **Requirements:** 让验收标准指向那些 id。把 CLAUDE.md 和 .cursor/rules/ 留到下一步。
在代理编辑代码之前检查
在仓库里运行 specscore spec lint。干净的树打印 0 violations found 并以 0 退出。失败报告——文件、行、严重程度、规则、消息——在 在 CI 中用规格检查器检查规格。把功能改到那条命令干净为止。从检查器已经拒绝的功能起步的代理,会照抄坏掉的形态。
让 Claude Code 和 Cursor 指向这棵树
运行 specscore agent setup claude,cursor。阅读添加的 CLAUDE.md 和 .cursor/rules/specscore.mdc,确认它们点名规格树和 CLI,包括 --caller。如果其中任一文件已经存在,命令就跳过它。只有在你打算替换那个文件时才传入 --force。
要求一项点名标准的任务
在代理会话里,点名这项工作必须满足的功能和验收标准。计划里的任务用 **Verifies:** 和验收标准的 id 来做这件事。让代理在结束前再次运行 specscore spec lint,并在行为改变时修改功能文件。指示文件告诉代理去运行命令。命令检查的是功能文件。
露出 lint、feature 和 task 的技能
对包装插件,CLI README 的安装行是 /plugin marketplace add specscore/ai-marketplace 和 /plugin install specscore@specscore。插件仓库是 specscore/ai-plugin-specscore,采用 MIT 许可证。它的 skills README 说,用户调用 /specscore:<skill-name>。随附的包装包括 /specscore:spec,它包装 specscore spec lint;/specscore:feature,它包装 specscore feature(list、info、tree、deps、refs、new 和 change-status);以及 /specscore:task,它包装 specscore task。/specscore:change-status 覆盖功能和想法的状态变更。本站的 CLI Skills 页面就是那个包装。specscore agent setup 把那些技能包复制进 .claude/skills/ 和 .cursor/skills/,除非传入 --no-skills。
插件 README 说,Cursor 没有远程安装命令,并从项目里的 .cursor/skills/ 或从 ~/.cursor/skills/ 加载技能。它展示的手动复制是 git clone ai-plugin-specscore,以及 cp -R skills/* 到 .cursor/skills/。specscore agent setup cursor 就是替你做这次复制的命令,来自功能规格点名的市场。
SpecStudio Skills 是有引导的工作流。仓库是 specscore/specstudio-skills,采用 MIT 许可证。它的 README 里 Claude Code 的安装行是 /plugin install specstudio@specscore,并且说 Claude Code 把 specscore 插件作为依赖安装。状态一节点名版本 0.0.7,并说 ideate、specify、plan、implement、verify 和 recap 技能已经活跃到足以 dogfood。同一份 README 的清单表详细记录了 specstudio:ideate 和 specstudio:specify。那些技能写下 SpecScore 产物。它们不代替 specscore spec lint。
CI 里的同一条命令
dogfood.yml 在 specscore/specscore 里把 SPECSCORE_VERSION 设为 v0.39.1,并在 pull request 以及向 main 的 push 上运行 specscore spec lint。工作流摘录和文本报告在 在 CI 中用规格检查器检查规格。弄坏标题的功能会让那个作业失败,不论文件是 Claude Code 还是 Cursor 写的。代理循环和 CI 调用同一条命令。
格式许可证是 CC BY 4.0,位于 specscore/specscore。CLI 许可证是 Apache-2.0,位于 specscore/specscore-cli。
其他规范驱动工具公布的检查各不相同。下面的句子只用那些项目自己的页面所说的内容。工具综述把同样的页面记为 2026年10月30日读过,Spec Kit 文档首页除外,那一页印着 2026年9月28日。
OpenSpec 在它的 CLI 参考 里记录了 openspec validate。该命令检查 OpenSpec 的变更和规格结构。它不检查 SpecScore 的 ### AC: 标题。
Task Master 的 README 描述用 task-master parse-prd 把 PRD 解析成任务。它没有描述针对那份 PRD 的检查器。
GitHub Spec Kit 描述一套代理工作流,其阶段写下 Markdown 产物。那份文档首页没有描述一条在 CI 中检查 SpecScore 功能 README 的命令。
常见问题
什么是 Claude Code 的规范驱动开发?
就是在 Claude Code 写代码之前写下 SpecScore 功能,然后把 CLAUDE.md 保持为指向该功能的指示文件。功能持有需求(REQ)和验收标准(AC)。specscore spec lint 检查功能。specscore agent setup claude 把 CLAUDE.md 写进已经有 specscore.yaml 的项目。
Cursor 的规格放在哪里?
产品义务放在 spec/features/ 下的功能 README 里。Cursor 项目规则放在 .cursor/rules/specscore.mdc。技能文件放在 .cursor/skills/。specscore agent setup cursor 写入规则,并且除非传入 --no-skills,还复制技能包。Cursor 自己的文档是 .mdc 规则如何被应用的来源。
CLAUDE.md 会代替功能规格吗?
不是。CLAUDE.md 是 Claude Code 当作指示来读的文件。功能 README 是 specscore spec lint 所检查的文件。agent-setup 功能说,生成的文件把规格树和 CLI 命令教给代理。它没有说指示文件就是规格。
如果 CLAUDE.md 或 Cursor 规则已经存在呢?
命令跳过已有文件,并打印一行提到 --force 的跳过说明。已有的字节保持不变。只有在替换正是你想要的时候才传入 --force。同一条跳过规则也适用于已经存在的技能文件。
哪个技能运行检查器?
在插件的 skills README 里,/specscore:spec 包装 specscore spec lint。你也可以自己运行那条 CLI 命令,在代理会话里或在 CI 里。/specscore:feature 和 /specscore:task 包装功能和任务命令。它们自己并不检查。
检查器给散文打分吗?
不。specscore spec lint 检查结构。在 CI 中用规格检查器检查规格给出报告。一次干净的结构检查并不是产品评审。
来源
agent-setup 的行为是 main 上 specscore-cli spec/features/cli/agent/setup/README.md 里的契约,阅读日期为 2026年11月6日。技能名称来自 main 上的 ai-plugin-specscore skills/README.md,同一天阅读。SpecStudio 的安装行和版本 0.0.7 的状态列表来自 main 上的 specstudio-skills README.md,同一天阅读。Claude Code 的说明和 CLAUDE.md 那一句来自 code.claude.com/docs/en/overview。Cursor 项目规则路径来自 cursor.com/docs/rules。本仓库的 dogfood.yml 把 SPECSCORE_VERSION 钉在 v0.39.1。竞争页面就是下面链接的那些;工具综述把它们记为 2026年10月30日读过,Spec Kit 文档首页除外,那一页印着 2026年9月28日。
- Claude Code — 概述(CLAUDE.md)
- Cursor — 规则(项目规则是 .mdc 文件)
- specscore-cli — agent-setup 功能
- specscore-cli — README(agent setup 与插件安装)
- specscore/specscore-cli
- specscore-cli — Apache-2.0 许可证
- specscore/specscore
- specscore/specscore — CC BY 4.0 许可证
- specscore/specscore — dogfood.yml(CLI v0.39.1)
- specscore/ai-plugin-specscore
- ai-plugin-specscore — MIT 许可证
- ai-plugin-specscore — skills README
- ai-plugin-specscore — README(复制到 Cursor)
- specscore/specstudio-skills
- specstudio-skills — MIT 许可证
- specstudio-skills — README(版本 0.0.7)
- CLI Skills
- SpecStudio Skills
- 面向 AI 编程的 Markdown PRD 模板
- 在 CI 中用规格检查器检查规格
- 功能规格
- 验收标准规格
- OpenSpec CLI 参考 — openspec validate
- Fission-AI/OpenSpec
- eyaltoledano/claude-task-master
- GitHub Spec Kit 文档(页面日期 2026年9月28日)
- 规范驱动开发工具