GitHub Spec‑Kit 集成,用于规格驱动开发(SDD)。使用场景:(1) 初始化新的 Spec‑Kit 项目;(2) 创建/更新项目章程,...
Spec-Kit——Spec-Driven Development (SDD).是一项面向实际任务的技能,主要用于GitHub QQ(v0.4.3),QQAI 是一项面向实际任务的技能,主要用于Spec-Kit revers.;它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;
涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
GitHub 官方开源工具包(v0.4.3),将规格驱动开发引入 AI Agent 工作流程。 Repo: https://github.com/github/spec-kit | License: MIT
Spec-Kit 颠覆了传统的 AI 编码范式:规格为一等公民,代码是派生产物。 它摒弃了直接向 AI 发送模糊提示的“氛围编码”(vibe coding),转而采用结构化流水线:
Constitution → Specify → Clarify → Plan → Tasks → Implement
每个阶段均有明确的输入、输出及质量关卡(quality gates)。
# 安装 Specify CLI(需 uv) uv tool install specify-cli --from git+https://github.com/github/spec-kit.git@v0.4.3 # 验证安装 specify check
系统要求:Python 3.11+、uv、Git,以及一个受支持的 AI agent。
Spec-Kit 支持 30+ 种 AI agent。我们技术栈中关键的几个如下:
| Agent | 集成方式 | 说明 |
|---|---|---|
| Claude Code | /speckit.* 斜杠命令 |
.claude/commands/speckit.*.md |
| Gemini CLI | .gemini/commands/speckit.*.toml |
标准集成 |
| opencode | /speckit.* 斜杠命令 |
标准集成 |
| Codex CLI | --ai-skills 标志 |
技能文件位于 .agents/skills/ |
| GitHub Copilot | /speckit.* 斜杠命令 |
VS Code 原生支持 |
| 步骤 | 命令 | 输出 | 适用场景 |
|---|---|---|---|
| 0. 初始化 | specify init |
.specify/ 目录 + 相关命令文件 |
新项目启动时 |
| 1. Constitution | /speckit.constitution |
memory/constitution.md |
新项目建立或原则更新时 |
| 2. Specify | /speckit.specify |
specs/ |
开始新功能开发时 |
| 3. Clarify | /speckit.clarify |
更新 spec.md 中的澄清项 |
规划前 |
| 4. Plan | /speckit.plan |
specs/ + 研究文档 |
规格经批准后 |
| 5. Tasks | /speckit.tasks |
specs/ |
计划验证通过后 |
| 6. Implement | /speckit.implement |
代码变更 | 任务已定义完毕 |
| 命令 | 用途 | 适用场景 |
|---|---|---|
/speckit.analyze |
跨工件一致性与覆盖率分析 | 最终评审前 |
/speckit.checklist |
质量检查清单(规格的单元测试) | 验证完整性时 |
/speckit.taskstoissues |
将任务转换为 GitHub Issues | 需同步项目看板时 |
specify init# 新项目 specify init my-project --ai claude # 现有目录 specify init . --ai claude --force # 启用 Codex 技能 specify init my-project --ai codex --ai-skills # 跳过 git init specify init my-project --ai claude --no-git # 使用时间戳编号分支 specify init my-project --ai claude --branch-numbering timestamp
specify check校验以下内容:git 及所有在 AGENT_CONFIG 中配置的 CLI agent。
# 扩展 specify extension search # 浏览可用扩展 specify extension add# 安装扩展 # 预设 specify preset search # 浏览可用预设 specify preset add # 安装预设
执行 specify init 后生成的目录结构如下:
project-root/ ├── .specify/ │ ├── memory/ │ │ └── constitution.md # 项目原则(Step 1) │ ├── scripts/ │ │ ├── check-prerequisites.sh │ │ ├── common.sh │ │ ├── create-new-feature.sh # 创建特性分支 + spec 目录 │ │ ├── setup-plan.sh │ │ └── update-claude-md.sh │ ├── templates/ │ │ ├── constitution-template.md │ │ ├── spec-template.md │ │ ├── plan-template.md │ │ └── tasks-template.md │ ├── extensions/ │ │ ├── catalog.json │ │ └──/templates/ │ └── presets/ │ └── /templates/ ├── specs/ │ └── 001-feature-name/ │ ├── spec.md # 功能规格(Step 2) │ ├── plan.md # 技术方案(Step 4) │ ├── research.md # Phase 0 研究输出 │ ├── data-model.md # 数据模型设计 │ ├── quickstart.md # 快速入门指南 │ ├── contracts/ # API 合约 │ │ ├── api-spec.json │ │ └── signalr-spec.md │ └── tasks.md # 任务拆解(Step 5) ├── .claude/commands/ │ ├── speckit.constitution.md │ ├── speckit.specify.md │ ├── speckit.plan.md │ ├── speckit.tasks.md │ └── speckit.implement.md └── [source code]
memory/constitution.md)定义项目的不可协商原则。所有规格必须符合该文件。
结构如下:
仅 CEO/CTO 可修订。版本号格式:X.Y.Z | Ratified: YYYY-MM-DD
spec.md)关键章节包括:
NNN-feature-nameplan.md)tasks.md)格式:[ID] [P?] [Story] Description
[P] = 可并行执行[Story] = 关联的用户故事(US1、US2…)项目本地覆盖项 (.specify/templates/overrides/)
↓
预设 (.specify/presets//templates/)
↓
扩展 (.specify/extensions//templates/)
↓
核心模板 (.specify/templates/)
| 扩展 | 用途 | 类型 |
|---|---|---|
| spec-kit-jira | 将规格同步至 Jira Epic / Story | integration |
| spec-kit-verify | 校验代码与规格工件的一致性 | code(只读) |
| spec-kit-cleanup | 实施后的质量关卡 | code(读写) |
| spec-kit-review | 全面代码评审 | code(只读) |
| spec-kit-archive | 归档已合并的功能 | docs(读写) |
| spec-kit-sync | 检测并修复规格与代码间的漂移 | docs(读写) |
| spec-kit-doctor | 项目健康诊断 | visibility(只读) |
| spec-kit-maqa-ext | 多 agent QA 协调器 | process |
| 预设 | 用途 |
|---|---|
| pirate-speak | 趣味本地化演示 |
| aide-in-place | 原地技术迁移 |
PAPERCLIP_API="http://localhost:3100/api"
# 按 agent ID 重新指派
curl -s -X PATCH "$PAPERCLIP_API/issues/$ISSUE_ID"
-H "Content-Type: application/json"
-d "{"assigneeAgentId": "$TARGET_AGENT_ID"}"
# 在 issue 下评论
curl -s -X POST "$PAPERCLIP_API/issues/$ISSUE_ID/comments"
-H "Content-Type: application/json"
-d "{"body": "已完成工作的描述"}"
Dev → implement → reassign code-reviewer → CTO review → reassign qa → PM confirms → done Bug: Dev → fix → reassign cto → reassign qa → done
/speckit.analyze + /speckit.checklist/speckit.clarify 可显著减少返工uv tool install specify-cli --force --from git+https://github.com/github/spec-kit.git@v0.4.3
spec-driven.mdextensions/catalog.community.jsonpresets/catalog.community.json相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 134.1万人学习
共49课时 | 82.6万人学习
最新文章