ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Claude Code 实战:Spec-Kit、Kiro、OpenSpec 规范驱动开发三剑客配置 TaoToken 指南

Claude Code 实战:Spec-Kit、Kiro、OpenSpec 规范驱动开发三剑客配置 TaoToken 指南 1. 为什么规范驱动开发绕不开统一 API 通道Claude Code 在终端里跑起来之后真正决定体验的往往不是模型本身而是它背后那条 API 通道稳不稳、Key 好不好管。Spec-Kit、Kiro、OpenSpec 这三套规范驱动开发工具链本质上都是让 Claude Code 按“规格说明书”干活Spec-Kit 用/speckit.*斜杠命令把需求拆成 spec、plan、tasksKiro 用代理式 IDE 把聊天、钩子、终端串成一条流水线OpenSpec 用 Delta 变更隔离让老项目改起来可审计。它们共同的前提是——Claude Code 得能稳定调用模型。问题就出在这里。三套工具各自有配置文件Spec-Kit 走 Claude Code 的settings.jsonKiro 走它自己的config.toml加 Claude Code 插件OpenSpec 又依赖openspec/AGENTS.md和 Claude Code 的环境变量。如果每个工具都单独填一遍 Key、单独配一遍 Base URL改一次密钥就要翻三个地方团队协作时更是灾难。我试过把三套工具指向同一个通道用 TaoToken 做统一 Key/API 入口配置一次、三处复用调用链路清晰很多。这篇就按“先统一通道、再逐工具配置、最后逐条验证”的顺序写。适合已经在用 Claude Code、想上规范驱动开发但被多套配置劝退的开发者。全程给可复制的settings.json和config.toml骨架每一步都有验证动作配完就能确认调用链路是通的。2. TaoToken 前置拿到统一 Key 和 API 地址TaoToken 在这里的角色是统一 API 通道你只需要一个 Key、一个 Base URL就能让 Claude Code 以及依赖它的三套工具链都走同一条路。这样 Spec-Kit、Kiro、OpenSpec 不用各自维护密钥换模型、换额度、查用量都在一个地方。先做两件事。第一去控制台创建 API Key。打开https://taotoken.net/console登录后在 API Keys 页面新建一个 Key复制出来先存到本地密码管理器。注意 Key 只在创建时完整显示一次关掉页面就看不到了。第二确认 API 地址。TaoToken 的 API 端点是https://taotoken.net/api这个地址不加任何查询参数直接作为 Base URL 使用。Claude Code 以及兼容 Anthropic 协议的工具填的就是这个。注意控制台和文档页面的链接我会带上来源标记API 地址本身保持干净不要在后面拼 utm 参数否则部分客户端会把参数当成路径的一部分导致 404。拿到这两样东西后建议先在终端里做一次最小验证确认 Key 和地址能通再去配三套工具。最小验证用 curl 发一个模型列表或对话请求即可export TAOTOKEN_API_KEYsk-你的Key curl -s https://taotoken.net/api/v1/models \ -H Authorization: Bearer $TAOTOKEN_API_KEY \ | head -c 500如果返回里能看到模型列表的 JSON说明 Key 和地址都没问题。如果返回 401检查 Key 有没有复制完整返回 404检查地址有没有多写路径。这一步过了后面三套工具的配置才有意义。想先直观感受模型对话效果可以打开https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentclaude-code-spec-kit-kiro-openspec在网页里直接对话确认通道可用后再落到本地配置。3. 可复制配置三套工具链的 settings.json 与 config.toml 骨架这一节是核心。三套工具链的配置分两层底层是 Claude Code 自己的settings.json上层是各工具自己的配置文件。先把底层打通再逐个接上层。3.1 Claude Code 的 settings.json 骨架Claude Code 读取用户级配置~/.claude/settings.json项目级配置放在项目根目录的.claude/settings.json。要让 Claude Code 走 TaoToken关键是设置环境变量ANTHROPIC_BASE_URL和ANTHROPIC_AUTH_TOKEN。用户级骨架如下{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_AUTH_TOKEN: sk-你的Key, ANTHROPIC_MODEL: claude-sonnet-4-20250514 }, permissions: { allow: [ Bash(npm run lint), Bash(npm test), Read, Write ] } }几个要点。ANTHROPIC_BASE_URL填https://taotoken.net/api不要带尾斜杠。ANTHROPIC_AUTH_TOKEN就是刚才创建的 Key。ANTHROPIC_MODEL按你实际可用的模型名填不确定就先不写这一行让客户端用默认值。permissions.allow是给规范驱动开发用的——Spec-Kit 和 Kiro 都会自动跑 lint 和 test提前放行能少点确认弹窗。项目级配置可以只覆盖差异部分比如团队项目里把模型固定下来{ env: { ANTHROPIC_MODEL: claude-sonnet-4-20250514 } }改完settings.json后Claude Code 需要重启才生效。验证方式是启动后输入/status看它显示的 API 地址是不是taotoken.net。3.2 Spec-Kit 的配置骨架Spec-Kit 通过specify init初始化项目它会在项目里生成.specify/目录和 Claude Code 的斜杠命令。它本身不额外维护 API 配置直接复用 Claude Code 的settings.json。所以 Spec-Kit 这一层要做的是确保初始化时选对 AI 助手并让生成的命令能被 Claude Code 识别。初始化命令pip install uv uv tool install specify-cli --from githttps://github.com/github/spec-kit.git mkdir my-app cd my-app specify init my-app --ai claude初始化完成后项目里会出现.claude/commands/下的speckit.*命令文件。这些命令会调用 Claude Code而 Claude Code 已经指向 TaoToken链路就通了。如果初始化时没选--ai claude可以手动在.specify/config.json里补{ ai: claude, projectName: my-app }Spec-Kit 的“项目宪法”放在.specify/memory/constitution.md你可以在里面写“必须写单元测试”“禁止直接改数据库 schema”这类硬约束Claude Code 在/speckit.implement阶段会读它。3.3 Kiro 的 config.toml 骨架Kiro 是代理式 IDE它有自己的配置文件~/.kiro/config.toml同时通过插件调用 Claude Code。Kiro 这一层要配两处Kiro 自己的模型通道以及它调用的 Claude Code 通道。config.toml骨架[api] base_url https://taotoken.net/api api_key sk-你的Key model claude-sonnet-4-20250514 [claude_code] enabled true settings_path ~/.claude/settings.json [hooks] on_generate [npm run lint, npm test] on_deploy [git push][api]段让 Kiro 自己的聊天代理走 TaoToken[claude_code]段告诉 Kiro 复用 Claude Code 的配置这样两边不会各配一套 Key[hooks]段是 Kiro 的自动化钩子生成代码后自动跑 lint 和 test部署时自动 push。钩子命令按你项目实际的脚本名改。Kiro 的steering.md是项目规则文件放在项目根目录内容类似 Spec-Kit 的宪法用来约束代理行为。配好后重启 Kiro在终端里敲claude-code init确认插件能拉起 Claude Code。3.4 OpenSpec 的配置骨架OpenSpec 用openspec init初始化它依赖 Node.js 20 以上。它同样复用 Claude Code 的通道额外需要的是openspec/AGENTS.md里的代理配置。初始化npm install -g fission-ai/openspeclatest cd my-project openspec init初始化后项目里会有openspec/目录包含AGENTS.md、changes/、specs/。AGENTS.md里可以声明 Claude Code 作为执行代理# OpenSpec Agents ## Executor - name: claude-code - command: claude - config: ~/.claude/settings.json ## Rules - 所有变更必须走 proposal - review - apply - archive - Delta 变更只允许修改 changes/ 目录下的文件OpenSpec 的 Delta 变更隔离机制会让/openspec:apply生成的代码先落在openspec/changes/change-id/目录你检查没问题后再openspec archive合并。这样老项目不会被直接改崩。4. 验证请求逐条确认调用链路正常配置写完不算完得逐条验证。我按“底层通道 → Claude Code → 三套工具”的顺序列验证动作每条都有预期结果。第一步验证 TaoToken 通道。前面 curl 已经做过这里再确认一次模型名可用curl -s https://taotoken.net/api/v1/messages \ -H Authorization: Bearer $TAOTOKEN_API_KEY \ -H Content-Type: application/json \ -d { model: claude-sonnet-4-20250514, max_tokens: 64, messages: [{role: user, content: 回复 OK}] } | head -c 300预期返回里包含content字段和模型回复。如果报模型不存在去控制台确认可用模型列表。第二步验证 Claude Code。启动claude输入/status确认 API 地址显示为taotoken.net。然后随便问一句“当前项目用什么语言写的”能正常回答就说明 Claude Code 通道通了。第三步验证 Spec-Kit。在初始化好的项目里Claude Code 中输入/speckit.constitution预期它会生成或更新.specify/memory/constitution.md。再输入/speckit.specify 添加用户搜索过滤预期生成spec.md并追问澄清问题。能追问说明命令和通道都正常。第四步验证 Kiro。打开 Kiro IDE在聊天框里说“帮我加个用户过滤搜索”预期它生成spec.md并规划步骤。敲/kiro:generate预期自动生成代码并触发on_generate钩子跑 lint 和 test。钩子能跑说明config.toml的 hooks 段生效了。第五步验证 OpenSpec。在项目里输入/openspec:proposal add-filter预期生成proposal.md和 Delta 变更文件。输入/openspec:review预期 Claude Code 审查变更安全性。输入/openspec:apply预期代码生成到openspec/changes/add-filter/。最后openspec archive add-filter --yes预期变更合并并归档。五步都过说明三套工具链都接在同一条 TaoToken 通道上调用链路完整。5. 本篇常见错排查配置过程中最容易踩的坑集中在地址、Key、模型名和权限四类。下面按报错现象列排查路径。401 UnauthorizedKey 不对或没带上。检查settings.json里ANTHROPIC_AUTH_TOKEN有没有写全config.toml里api_key有没有引号包裹。注意 Key 不要有多余空格复制时容易带上换行。404 Not FoundBase URL 写错。确认是https://taotoken.net/api不要写成https://taotoken.net/api/v1再加/v1也不要在末尾加斜杠。部分客户端会自动拼/v1/messages你只需要给到/api。模型不存在ANTHROPIC_MODEL填了不可用的名字。先去控制台或模型对话页确认可用模型再回填。不确定就先删掉这一行用默认值。Claude Code 改了配置不生效settings.json是启动时读取的改完必须重启claude。项目级配置和用户级配置同时存在时项目级优先检查是不是被项目里的旧配置覆盖了。Kiro 钩子不执行config.toml的[hooks]段命令名和项目package.json里的脚本对不上。确认npm run lint和npm test在项目里真实存在路径也要对。OpenSpec 命令找不到Node.js 版本低于 20或者全局安装没进 PATH。node -v确认版本npm ls -g fission-ai/openspec确认安装必要时重开终端。Spec-Kit 斜杠命令不出现初始化时没选--ai claude或者.claude/commands/目录没生成。重新跑specify init并确认参数或手动补.specify/config.json。权限弹窗太多settings.json的permissions.allow没放行 lint 和 test。把Bash(npm run lint)、Bash(npm test)加进去规范驱动开发会频繁调用这两个命令。排查时建议从底层往上查先 curl 确认通道再/status确认 Claude Code最后查各工具自己的配置。这样能快速定位是通道问题还是工具配置问题。6. 把三套工具接上同一条通道Spec-Kit、Kiro、OpenSpec 三套工具链的配置说到底就是让它们都指向同一个 Claude Code而 Claude Code 指向 TaoToken。底层settings.json配一次Spec-Kit 直接复用Kiro 通过config.toml的[claude_code]段复用OpenSpec 通过AGENTS.md声明复用。这样换 Key、换模型只改一处团队协作时也不会出现“你配的地址和我配的不一样”这种问题。如果你主要做企业级规范治理从 Spec-Kit 的/speckit.constitution开始把团队硬约束写进宪法如果做快速原型Kiro 的聊天加钩子最省事如果维护老项目OpenSpec 的 Delta 变更隔离能让你改得放心。三套可以混用底层通道是共享的。长期跑编码和 Agent 任务的话可以了解下 Coding Plan把额度和模型统一规划https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentclaude-code-spec-kit-kiro-openspec。接入过程中遇到报错先查 API Keys 和接入文档https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentclaude-code-spec-kit-kiro-openspec和https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentclaude-code-spec-kit-kiro-openspec。想先验证模型对话效果直接开https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentclaude-code-spec-kit-kiro-openspec聊两句。Claude Code 相关的 Anthropic 配置细节在https://taotoken.net/claude-code-anthropic?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentclaude-code-spec-kit-kiro-openspec控制台在https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentclaude-code-spec-kit-kiro-openspec。
返回列表