1. 从 Vibe Coding 到 Spec-Driven为什么你需要先写需求如果你用过 Claude Code、Cursor 或者 Codex 这类 AI 编程工具大概率经历过这样的场景一句帮我做个博客系统丢过去AI 唰唰唰生成几百行代码看着挺像回事跑起来才发现分页没做、评论删不掉、头像上传只认 JPEG。然后你开始第二轮、第三轮补丁式对话三小时后代码堆了一千多行逻辑东一块西一块重构都不敢动。这就是纯 Vibe Coding 的典型下场——意图不明确过程不可控。GitHub 开源的 Spec Kit 正是冲着这个痛点来的它在 GitHub 上短时间内冲到 9.5 万 star、8000 多 fork核心思路特别朴素Spec → Plan → Tasks → Implement先定规格再出计划再拆任务最后才写代码。你可以把它理解成一个AI 项目监理逼着你和 AI 在动手之前把需求掰扯清楚。Spec Kit 提供了一套结构化的 Slash 命令适配 Claude Code、Cursor、Copilot、Codex、Gemini CLI 等三十多种 AI 编程工具。每一步都会生成一份 Markdown 文档沉淀在项目里——spec.md、plan.md、tasks.md这些文档不是形式主义而是后面每一步的输入依据也是三个月后你回来接手时唯一能还原上下文的线索。但问题来了Spec Kit 本身不提供模型它依赖你本地的 AI 编程工具去调用大模型。如果你同时用 Claude Code 跑 spec、用 Cursor 写 plan、用 Codex 执行 tasks每个工具都要单独配 Key、单独管额度切换一次就要改一次配置。这篇就聚焦一件事用 TaoToken 统一 Key 和 API 通道给 Spec Kit 工作流提供稳定的模型接入把先写需求再写代码的闭环在本地跑通。2. TaoToken 前置统一 Key 与 API 通道TaoToken 在这里扮演的角色是模型接入层。Spec Kit 的 Slash 命令最终都要落到某个 AI 编程工具上执行而这些工具需要一个兼容 OpenAI 或 Anthropic 协议的 API 端点。TaoToken 提供统一的 API 通道你只需要申请一个 Key就能让 Claude Code、Cursor、Codex 等工具共用同一个入口不用每个工具单独去开账号、管额度。官网入口在这里https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 注册后在控制台生成 API Key。API 基础地址是 https://taotoken.net/api 注意这个地址不带任何查询参数配置时直接填这个就行。具体操作路径登录后进入控制台找到 API Keys 页面创建一个新 Key复制保存。这个 Key 后面会同时用在 Claude Code 的 settings.json 和 Codex 的 config.toml 里。如果你还没决定用哪个工具跑 Spec Kit建议先去模型对话页面测一下 Key 是否可用确认通道正常再往下配。注意Key 只在创建时完整显示一次复制后妥善保存。如果泄露了在控制台直接吊销重新生成即可。3. 可复制配置settings.json 与 config.toml 骨架Spec Kit 的工作流本身通过 Slash 命令驱动但底层执行依赖 AI 编程工具的模型配置。下面给出两套最常用的配置骨架你可以根据自己的工具链选择。3.1 Claude Code 的 settings.jsonClaude Code 读取项目根目录或用户目录下的 settings.json。把 API 端点指向 TaoTokenKey 填你申请的那个{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_API_KEY: sk-你的TaoToken密钥, ANTHROPIC_MODEL: claude-sonnet-4-20250514 }, permissions: { allow: [ Bash(specify:*), Read, Write, Edit ] } }这里 ANTHROPIC_BASE_URL 指向 TaoToken 的 API 地址ANTHROPIC_API_KEY 填你的 Key。permissions.allow 里放行 specify 命令和文件读写Spec Kit 的 Slash 命令需要这些权限才能生成 spec.md、plan.md 等文档。3.2 Codex 的 config.toml如果你用 Codex 跑 Spec Kit配置文件在 ~/.codex/config.tomlmodel gpt-4.1 model_provider taotoken [model_providers.taotoken] name TaoToken base_url https://taotoken.net/api env_key TAOTOKEN_API_KEY [profiles.spec] model gpt-4.1 model_provider taotoken approval_policy on-request然后在环境变量里设置 TAOTOKEN_API_KEY 为你的密钥。model_provider 指向 taotoken 这个自定义 providerbase_url 就是 TaoToken 的 API 地址。approval_policy 设为 on-requestSpec Kit 执行 tasks 阶段时会逐条请求确认避免 AI 一口气改太多。3.3 Spec Kit 初始化与 Slash 命令配置好工具后在项目里初始化 Spec Kit# 安装 specify CLI以 uv 为例 uv tool install specify-cli --from githttps://github.com/github/spec-kit.git # 在项目目录初始化 specify init . --ai claudeinit 的 --ai 参数根据你用的工具选claude 对应 Claude Codecodex 对应 Codex。初始化完成后项目里会出现 .specify 目录和对应的 Slash 命令定义。接下来在 AI 工具里依次执行/constitution 定项目规矩代码风格、测试标准、禁止事项 /specify 用自然语言描述要造什么只讲 what/why /clarify AI 主动提问把模糊边界挖出来 /plan 确定技术栈、架构、依赖 /tasks 拆成有序可执行任务 /implement 按任务清单逐条生成代码每个命令执行后都会在 specs/ 目录下生成对应的 Markdown 文档。这些文档是下一步的输入也是你后续接手项目的上下文来源。4. 验证请求确认闭环跑通配置完成后先做一次最小验证确认 TaoToken 通道正常、Spec Kit 能生成文档。第一步在 Claude Code 里执行一个最简单的请求确认模型能响应claude -p 回复 OK --settings ./settings.json如果返回 OK说明 TaoToken 的 API 通道和 Key 都正常。如果报 401检查 Key 是否复制完整如果报连接超时检查 base_url 是否写成了带路径的地址。第二步在项目里执行 /constitution观察是否生成 .specify/memory/constitution.md。这个文件里应该包含你项目的代码风格和测试标准。执行 /specify 后specs/ 目录下会出现 spec.md里面是你用自然语言描述的需求被结构化后的结果。第三步执行 /clarify看 AI 是否主动提问。这是 Spec Kit 最有价值的一步——它会追问功能边界、权限划分、数据格式。你回答完这些问题后spec.md 会被更新模糊的地方被补全。第四步执行 /plan 和 /tasks确认 plan.md 和 tasks.md 正常生成。tasks.md 里应该是一份有序的任务清单每条任务都有明确的输入和输出。最后执行 /implementAI 会按任务清单逐条生成代码。实测下来整个流程跑通后你得到的不是一堆散乱的代码而是一套带文档的项目骨架。三个月后回来打开 spec.md 和 plan.md上下文就全回来了。5. 本篇常见错排查配置过程中最容易踩的坑集中在几个地方这里逐条排查。Key 无效或 401最常见的原因是 Key 复制时带了空格或者把 API 地址和 Key 搞混了。ANTHROPIC_API_KEY 填的是 sk- 开头的密钥ANTHROPIC_BASE_URL 填的是 https://taotoken.net/api 两者不要写反。如果确认没写反还是 401去控制台重新生成一个 Key 试试。模型名不匹配settings.json 里的 ANTHROPIC_MODEL 要填 TaoToken 支持的模型名。如果你不确定有哪些模型可用先去模型对话页面发一条消息看返回的模型标识是什么再填到配置里。填错模型名通常会报 404 或 model not found。Slash 命令不生效Spec Kit 的 Slash 命令依赖 .specify 目录下的定义文件。如果执行 /specify 没反应检查 specify init 是否在项目根目录执行以及 .specify 目录是否存在。Claude Code 需要在 settings.json 的 permissions.allow 里放行 specify 命令否则会被权限拦截。config.toml 环境变量未生效Codex 的 config.toml 里用的是 env_key TAOTOKEN_API_KEY这意味着你需要先在 shell 里 export TAOTOKEN_API_KEYsk-xxx。如果忘了设置环境变量Codex 会报找不到 Key。可以在 ~/.bashrc 或 ~/.zshrc 里持久化这个变量。tasks 阶段 AI 改太多/implement 执行时如果 AI 一口气改了大量文件把 approval_policy 设为 on-request让它逐条请求确认。Spec Kit 的 tasks.md 本身就是有序任务清单逐条执行比一次性生成更可控。文档没生成spec.md、plan.md 这些文档默认生成在 specs/ 目录下。如果执行完命令没看到文件检查当前工作目录是否正确以及 AI 工具是否有写权限。Claude Code 的 permissions.allow 里要包含 Write 和 Edit。6. 把 Key 管起来让 Spec 跑起来Spec Kit 解决的是AI 先想清楚再动手的问题TaoToken 解决的是多个 AI 工具共用一个模型入口的问题。两者结合你得到的是一个从需求到代码的完整闭环/constitution 定规矩/specify 写需求/clarify 补边界/plan 定方案/tasks 拆任务/implement 出代码每一步都有 Markdown 文档沉淀。如果你主要用 Claude Code 跑 Spec Kit去 API Keys 页面生成 Key然后按第 3 节的 settings.json 配置就行。如果你还在选工具先去模型对话页面测一下通道确认模型可用再决定用哪个工具跑工作流。如果你打算长期用 Spec Kit 做项目开发Coding Plan 页面有更完整的接入方案适合把 Key 管理和模型调用统一起来。配置骨架已经给全了Slash 命令的验证动作也在第 4 节。接下来就是动手申请 Key填配置跑一遍 /constitution 到 /implement看看你的项目是不是从AI 猜来猜去变成了按图纸施工。