Skip to main content

spec-kit

规范驱动开发(SDD)工具集。为 AI 编码助手(Claude Code / Codex)提供知识库骨架和技能包。

PyPI 发行名为 spec-kit-tool(spec-kit 与已有项目 speckit 撞名),安装后提供 spec-kit 命令。

pipx install spec-kit-tool
cd my-project
spec-kit install --agents claude-code,codex

组成

组件 说明
spec-kit install 部署 .spec/ 知识库骨架 + 按 agent 部署技能到对应目录(--agents 指定或交互式多选)
spec-kit upgrade 升级已有安装
spec-kit uninstall 回收已部署的技能
spec-kit scan frontmatter 检索与发现(层级树;自动排除归档目录 prd/design/fix)
spec-kit lint 全面一致性校验(跳过归档目录 frontmatter 校验)
spec-kit metrics 项目健康指标查看
spec-kit skill 全局技能库管理(list/search/push/install/remove;全局缺失但项目 .spec/skills/ 存在时项目内直装)
spec-kit version 版本信息
spec-kit help 命令说明总览 / 单命令详情(如 spec-kit help skill)

部署后的工作流

/context      → 加载上下文
/iteration    → 创建迭代
/prd          → 需求结构化
/design       → 方案设计
/research     → 技术调研(优先复用过往结论)
/dev          → TDD 实现
/fix          → Bug 修复
/change       → 轻量变更(微调/局部优化)
/complete     → 窗口提交

技能包

技能是跨 agent 的公共格式(Agent Skills 标准)。以下技能随 install 部署:

技能 说明
prd 需求结构化 — 多阶段并行 Agent 管道
design 方案设计 — 全栈编排,先后端后前端
dev TDD 开发 — 骨架 → 测试 → 实现
fix Bug 修复 — 根因定位 → 方案 → 落地
change 轻量变更 — 需求微调、局部优化(绕过完整设计)
research 技术调研 — 方案对比、选型建议(优先复用过往调研,过期才重调研)
complete 窗口提交 — 声明 + 域知识 + 规则 + 进度 + 技能沉淀(决策清单判定 + 沉淀后推送/安装询问)
context 上下文加载
iteration 迭代初始化
checkout 迭代切换
grill-me 方案质询

全局技能库

/complete 沉淀的技能写入 .spec/skills/,可推送到全局技能库(~/.spec-kit/skills/)供其它项目复用:

spec-kit skill push {name}          # 项目技能 → 全局库
spec-kit skill list                 # 列出全局库技能
spec-kit skill search {keyword}     # 搜索
spec-kit skill install {name}       # 全局库 → 当前项目所有声明 agent
spec-kit skill remove {name}        # 从全局库移除

支持的 CodingAgent

agent 技能目录 备注
claude-code .claude/skills/
codex .codex/skills/
pi .pi/skills/ Pi Agent Harness
dsh .dsh/skills/ DeepSeek Harness,实验性(演进快)
omp .omp/skills/ Oh My Pi,实验性(演进快);OMP 不读 .pi/skills/,勿混用

多工具共享目录(如 .agents/skills)不纳入部署范围 —— 卸载边界与同源保护无法界定。

版本

spec-kit version 输出包版本(本工具的发布版本,权威值见 pyproject.toml 与 CHANGELOG.md)。

它与 .spec/iteration/ 下的迭代标识是两条正交的轴,不要互相换算:

轴 位置 含义 命名
包版本 pyproject.toml / CHANGELOG.md spec-kit 工具自身的发布版本(技能与骨架随包发布,其变更也计入) X.Y.Z
迭代标识 .spec/iteration/{id}.md 项目内一次工作迭代的标签,与工具版本无关 {year}-Q{quarter}-{description}

本仓自身的历史迭代沿用了 v2.x.x 形式,与包版本同形 —— 读 commit / CHANGELOG 时容易误读。 新迭代请按上表命名;仓库自己的工作流迭代记录在 .spec/iteration/,不在 CHANGELOG 里。

spec-kit version

开发与发布(维护者)

提交门禁

仓库自带 pre-push 门禁(scripts/gate.py:lint + pytest),逻辑与 CI 共用同一份脚本。 新克隆后启用一次(hook 不像普通文件那样随 clone 生效):

git config core.hooksPath .githooks

跳过单次:git push --no-verify。

发布

发布流程分两步,凭据从本地 .env.release 读取(已 gitignore,模板见 .env.release.example):

python scripts/release.py                 # 版本递增(默认 patch+1;--major/--minor/--patch/--to X.Y.Z)
python -m build                           # 构建 wheel + sdist
python scripts/publish.py                 # 上传 TestPyPI(测试环境)
python scripts/publish.py --prod          # 上传正式 PyPI
python scripts/publish.py --check-only    # 仅 twine check

.env.release 需分别配置 TestPyPI 与正式 PyPI 的 token:

TESTPYPI_USERNAME=__token__
TESTPYPI_PASSWORD=pypi-xxx
PYPI_USERNAME=__token__
PYPI_PASSWORD=pypi-yyy

许可

MIT

Metadata

Release files for spec-kit-tool 1.8.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for spec-kit-tool 1.8.0
File Size Uploaded
spec_kit_tool-1.8.0.tar.gz 98.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for spec-kit-tool 1.8.0
File Interpreter ABI Platform
spec_kit_tool-1.8.0-py3-none-any.whl Python 3 none any Details

Total release size: 206.8 kB

Release files / spec_kit_tool-1.8.0.tar.gz

Download URL spec_kit_tool-1.8.0.tar.gz
Size 98.7 kB
Tags Source
SHA-256 checksum
How to use checksums
c5833168ff3f91e77fedf1a55507a4bd5ac2b3d6d9eea206989c159f1e339820
BLAKE2b-256 checksum
How to use checksums
f55b38802d1b093b3defc397eb82504559ba40c704dd77c2ec239e2c9c2f7dff
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.1

Release files / spec_kit_tool-1.8.0-py3-none-any.whl

Download URL spec_kit_tool-1.8.0-py3-none-any.whl
Size 108.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8b2169c95dd9c0077065dda8a72aea06301219df079dfdeb99a257d7e8ffc8b6
BLAKE2b-256 checksum
How to use checksums
06a263e0b399537e6881e047ab662bc96b8fee196254daadb7c1ff31417107e8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.1

Release history Release notifications | RSS feed

This release

1.8.0 This release

2 release files

1.7.1

2 release files

1.6.0

2 release files

1.5.0

2 release files

1.4.2

2 release files

1.4.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page