
Spec Kit 集成管理实战用 specify CLI 管理 40 个 AI 编码代理的完整指南【免费下载链接】spec-kit Toolkit to help you get started with Spec-Driven Development项目地址: https://gitcode.com/GitHub_Trending/sp/spec-kit本篇指南围绕 Spec Kit 的集成Integration体系展开Specify CLI 内置了 40 个 AI 编码代理的官方集成specify init会根据你选择的代理生成对应的命令文件与目录结构而specify integration子命令族则负责集成在生命周期中的全部操作——安装、卸载、切换默认、升级模板、状态检查、目录catalog发现与自定义集成脚手架。读完本文你将能独立完成多代理项目的集成编排并理解底层哈希清单manifest、多安装安全multi-install safe声明与状态文件的工作机制。内置集成总览39 个 AI 代理 generic 逃生舱Specify CLI 支持范围广泛的 AI 编码代理。运行specify init时CLI 会为你所选的代理搭建好对应的命令文件和目录结构——无论你偏好哪款工具都可以立即开始使用规范驱动开发Spec-Driven Development。下表完整继承自官方参考文档 Supported AI Coding Agent IntegrationsKey 列是specify integration install key使用的标识符代理Key说明Alquimia AIalquimiaSkills 集成技能安装到.alquimia/skills以/speckit-command调用AmpampAntigravity (agy)agySkills 集成技能自动安装Auggie CLIauggieClaude CodeclaudeSkills 集成技能安装到.claude/skillsClinecline基于 IDE 的代理CodeBuddy CLIcodebuddyCodex CLIcodexSkills 集成技能安装到.agents/skills以$speckit-command调用Command Codecommand-codeSkills 集成技能安装到.commandcode/skills/以$speckit-command调用Cursorcursor-agentDevin for TerminaldevinSkills 集成技能安装到.devin/skills/以/speckit-command调用Docker Agentdocker-agentSkills 集成技能安装到.agents/skills/与 Codex 和 Zed 共用目录。需在所选代理 YAML 中启用本地技能skills: true并授予文件系统读权限能识别独立docker-agent二进制或 Docker CLI 插件docker agent。用SPECKIT_INTEGRATION_DOCKER_AGENT_EXTRA_ARGS./agent.yaml配置工作流分派Spec Kit 提示词会追加在这些参数之后。由于技能目录共享默认不声明多安装安全Factory DroiddroidSkills 集成技能安装到.factory/skills/以/speckit-command调用Firebenderfirebender面向 Android Studio / IntelliJ 的 IDE 代理ForgeforgeGemini CLIgeminiGitHub Copilotcopilot默认 Skills 集成在.github/skills/下安装speckit-command/SKILL.md。传--integration-options--commands可改用受支持的 commands 布局.github/agents/下的.agent.md文件、.github/prompts/下的配套.prompt.md文件外加一次.vscode/settings.json合并Goosegoose使用.goose/recipes/下的 YAML recipe 格式Grok BuildgrokSkills 集成技能安装到.grok/skills以/speckit-command调用HermeshermesSkills 集成技能全局安装到~/.hermes/skills/IBM Bobbob默认 Skills 集成技能以speckit-command/SKILL.md安装到.bob/skills/以/speckit-command调用。传--integration-options--legacy-commands可搭建已弃用的 Bob 1.x 布局.bob/commands/*.md该旗标将在未来版本移除。已有旧布局安装可用specify integration upgrade bob --integration-options--skills迁移该命令会转换为 skills 布局并删除旧命令文件。若安装了 preset 覆盖迁移会被拒绝并给出可操作错误preset 产物尚不能在布局切换间协调——先移除 preset、迁移、再重装JuniejunieKilo Codekilocode命令安装到.kilo/commands旧版.kilocode/workflows安装仍作为注册回退受支持Kimi CodekimiSkills 集成安装到.kimi-code/skills/。--migrate-legacy可把旧版.kimi/skills/安装迁移到新路径Kiro CLIkiro-cliKiro CLI 不会在文件型提示词中替换$ARGUMENTS因此 Spec Kit 在渲染时附带一段散文形式的回退说明。别名--integration kiroLingmalingmaSkills 集成技能自动安装Mistral VibevibeOh My Piomp斜杠命令安装到.omp/commandsopencodeopencodePi Coding AgentpiPi 默认不带 MCP 支持因此taskstoissues无法按预期工作可通过其扩展机制添加 MCP 支持Qoder CLIqodercliQwen CodeqwenRovoDevrovodev生成.rovodev/skills/、提示词包装与prompts.yml运行时通过acli rovodev分派SHAI (OVHcloud)shaiTabnine CLItabnineTraetraeSkills 集成技能自动安装ZCodezcodeSkills 集成技能安装到.zcode/skills/以$speckit-command调用ZedzedSkills 集成技能安装到.agents/skills以/speckit-command调用Genericgeneric自带代理——对未列出的 AI 编码代理使用--integration generic --integration-options--commands-dir path从源码结构看这 39 个代理加generic共 40 个内置 key 与 注册表初始化函数 中的_register_builtins()完全对应每个集成是一个自包含子包如claude/、cursor_agent/、kiro_cli/包目录名用 Python 合法标识符而对外的 key 保留连字符以匹配实际 CLI 工具名例如kiro-cli、cursor-agent。从调用方式上上表可归为三类斜杠命令/speckit.command或/speckit-command多数 Markdown 命令型与 Skills 型代理美元命令$speckit-command如 Codex、Command Code、ZCode文件型配置如 Goose 的 YAML recipe、Copilot 的.agent.md/.prompt.md、RovoDev 的prompts.yml。底层架构注册表、基类与哈希清单在讲命令之前先看清每个集成背后的三层结构这决定了后文所有命令的行为边界。集成注册表INTEGRATION_REGISTRY 是key → IntegrationBase 实例的全局字典由_register()在导入时填充key 重复会抛KeyError。specify integration list遍历的就是这张表search/info则在此之上叠加远端目录查询见目录管理小节。IntegrationBase每个集成的契约集成基类IntegrationBase要求每个子类设置三个类属性并提供一组安装/卸载原语key唯一标识需与实际 CLI 工具名一致config包含folder代理根目录如.claude/、commands_subdir命令子目录如skills、requires_cli是否必须安装 CLI 工具等元数据registrar_config注册时的目标目录、文件格式markdown/toml/yaml/skills、参数占位符、文件扩展名可选multi_install_safe声明该集成能否与其他集成安全共存默认False基类注释 明确要求安全声明方必须使用静态且唯一的代理根目录与命令目录注册表测试会强制校验这些不变量。几个关键机制值得展开模板渲染管线process_template()从命令模板 frontmatter 的scripts:块选择脚本变体sh/ps/py→ 替换{SCRIPT}→ 删除scripts:段 → 替换{ARGS}/$ARGUMENTS→ 替换__AGENT__→ 重写项目相对路径 → 把__SPECKIT_COMMAND_NAME__占位符解析成符合该代理风格的调用串/speckit.plan或/speckit-plan。这就是为什么同一份 templates/commands/ 模板能派生出所有代理的本地化命令文件。非交互分派dispatch_command()构造斜杠命令提示词后经由build_exec_args()生成 CLI 参数并subprocess执行支持流式输出用户可 CtrlC与捕获输出两种模式SPECKIT_INTEGRATION_KEY_EXECUTABLE和SPECKIT_INTEGRATION_KEY_EXTRA_ARGS两个环境变量可分别覆盖可执行文件路径与注入额外参数。文件操作原语copy_command_to_directory()、record_file_in_manifest()、write_file_and_record()等全部把写入路径限制在项目根内——安装时还会显式校验目标目录不逃逸项目根。以 Claude Code 集成 为例它继承SkillsIntegration声明folder.claude/、commands_subdirskills、multi_install_safe True还会为每个技能注入argument-hintfrontmatter 并把 Spec Kit 事件映射为 Claude 原生钩子SessionStart、PreToolUse等写入.claude/settings.json。哈希清单manifest卸载与升级的安全网每个安装过的集成在.specify/integrations/key.manifest.json记录一份清单IntegrationManifest 把每个受管文件映射到其原始内容的SHA-256 哈希。清单读取路径经过严格校验拒绝绝对路径、..段、符号链接与逃逸项目根的路径防止恶意或损坏的清单触发越界删除。卸载时的删除逻辑manifest.uninstall()正是官方文档中未修改文件自动删除、已修改文件保留这一行为的实现哈希与记录值一致 → 删除该文件哈希不一致你手动改过→ 跳过并列入skipped报告文件已变成符号链接或不可读 → 按被修改处理保留加--force则无条件删除。此外清单还支持recovered_files标记安装时若文件已存在而未被覆盖其哈希只是观测而非产出后续刷新受管文件前必须先检查该标记避免用观测哈希覆盖用户定制。核心管理命令以下命令都需要项目已经通过specify init初始化要在新项目上指定代理应使用specify init project --integration key。列出可用集成specify integration list选项说明--catalog同时浏览目录内置与社区。未内置的社区集成只会在这里显示显示内置集成、当前已安装哪一个、每个集成是否需要 CLI 工具还是 IDE 型。当安装了多个集成时列表会把默认集成与其他已安装集成分开标注并显示每个内置集成是否声明多安装安全。从源码看list 命令 读取.specify/integration.json中的默认 key 与已安装 key 集合把每一行渲染为Key / Name / Status / CLI Required / Multi-install Safe五列表格加--catalog时改为调用IntegrationCatalog.search()拉取合并目录并对仅发现不可安装discovery-only条目单独标记。搜索与查看详情specify integration search [query]选项说明--tag按标签过滤--author按作者过滤在活动的目录栈catalog stack中搜索匹配集成不带 query 时列出全部。必须在 Spec Kit 项目内运行。specify integration info integration_id显示单个集成的目录详情描述、作者、许可证、标签、来源目录、仓库如有以及当前是否激活。同样必须在 Spec Kit 项目内运行。从 search/info 的实现 可以看出几个实用细节社区目录的条目被标记install_allowedFalse时输出会注明 discovery only — not installable内置集成即使目录不可达也能离线查看info会回退到注册表元数据目录配置错误与网络错误会给出不同的排障提示检查.specify/integration-catalogs.yml、~/.specify/integration-catalogs.yml或SPECKIT_INTEGRATION_CATALOG_URL。安装集成specify integration install key选项说明--script sh\|ps\|py脚本类型shbash/zsh、psPowerShell、pyPython--force显式同意与未声明多安装安全的集成并存安装--integration-options集成专属选项如--integration-options--commands-dir .myagent/cmds把指定集成安装到当前项目。若已有其他集成安装仅当所有相关集成都声明多安装安全时才自动继续否则用switch替换默认集成或加--force显式同意多安装。安装过程中途失败会自动回滚到干净状态。安装额外集成不会改变默认集成用specify integration use key修改默认。版本提示受控多安装支持自 Spec Kit 0.8.5 引入。若specify integration install key提示已有集成安装且只建议switch或uninstall请用specify version检查本地 CLI 并升级。注意通过uvx --from git...方式运行的一次性命令只使用临时副本不会更新你PATH上持久化的specify可执行文件。安装流程在 install 命令实现 中的关键步骤key 未注册 → 报错并列出可用 key已安装 → 提示use/upgrade后直接退出多安装安全检查任一已安装集成或新集成未声明安全 → 拒绝除非--force并给出switch替代方案先确保共享基础设施.specify/scripts/等就位且共享模板始终对齐当前默认集成的调用风格分隔符与调用前缀取自默认集成而非新集成构造IntegrationManifest并执行integration.setup(...)随后manifest.save()、更新.specify/integration.json追加installed_integrations、写入integration_settings任何异常 → 调teardown(forceTrue)回滚已写文件、恢复原integration.json状态。卸载集成specify integration uninstall [key]选项说明--force即使文件已被修改也删除卸载当前集成或指定集成。Spec Kit 跟踪安装期间创建的每个文件及其原始内容 SHA-256 哈希未修改的文件自动删除已修改的文件你手动编辑过的会被保留避免丢失定制加--force则无论是否修改都删除全部集成文件。卸载后若被卸载的是默认集成uninstall 命令 会自动从剩余已安装集成中选出新的默认并刷新共享模板若清单文件不可读会打印明确的恢复步骤删除损坏清单 → 重新 uninstall 清理元数据 → 重新 install 生成。切换与指定默认集成specify integration switch key选项说明--script sh\|ps\|py脚本类型--force卸载阶段强制删除已修改文件目标已安装时则在切换默认的同时覆盖受管共享模板--refresh-shared-infra即使你定制过共享基础设施文件也一并覆盖否则保留定制--integration-options目标集成尚未安装时使用的集成选项目标集成未安装时switch等价于一步完成uninstallinstall此时--force控制是否删除被移除集成中已修改的文件目标已安装时switch仅改变默认集成行为同use此时--force控制切换默认时是否覆盖受管共享模板。对已安装目标传--integration-options会被拒绝——修改集成选项需要重装受管文件应先用upgrade key --integration-options ...再use key。与use一样switch在目标集成成为默认后会为其重新脚手架已安装的扩展与 preset。specify integration use key选项说明--force切换默认时覆盖受管共享模板在不卸载其他已安装集成的情况下设置默认集成同时刷新受管共享模板使命令引用匹配新默认集成的调用风格。已修改或未跟踪的共享模板会被保留除非使用--force。use也是扩展与 preset 的激活点它会把所有已启用扩展和 preset 的命令覆盖skills 型代理还包括技能为新的活动集成重新注册使得在其他集成激活期间安装的产物在这里被重新脚手架而非在安装时。这一点在 use 命令实现 中体现为_set_default_integration_or_exit(...)之后紧跟_register_extensions_for_agent(...)与_register_presets_for_agent(...)。升级集成specify integration upgrade [key]选项说明--force即使文件已被修改也覆盖--script sh\|ps\|py脚本类型--integration-options集成选项用更新后的模板与命令重装一个已安装集成例如升级 Spec Kit 之后。默认作用于默认集成指定 key 时必须是已安装集成之一。能检测本地已修改的文件未加--force则阻止升级。上一次安装遗留、本次不再需要的陈旧文件会被自动清理。即使升级非默认集成共享模板仍与默认集成保持对齐。已启用的扩展与 preset只在升级当前活动默认集成时重新注册非默认升级仍会刷新该集成的核心命令但不会重注册其扩展/preset 层——之后use/switch到该集成即可重新脚手架。若升级要在 commands 与 skills 布局之间切换且该集成注册了 preset 产物升级会在改动任何文件前被拒绝先移除受影响 preset、执行改布局的升级、再重装 preset。状态报告specify integration status specify integration status --json只报告不改文件。报告内容包括默认集成、已安装集成、多安装安全性、缺失的受管文件、已修改的受管文件、无效清单路径、共享 Spec Kit 基础设施健康度、未检查的清单以及默认敏感共享模板的目标集成。--json输出面向 CI 与编码代理提供稳定的机器可读数据它还会报告原始记录的集成列表以及当状态修复启发式与记录文件不一致时被检查的集成清单。退出码约定报告状态为ok或warning时退出 0仅error时退出 1。JSON 输出中当无法评估任何已安装集成集合时状态缺失、不可读、无有效记录列表或没有记录任何已安装集成multi_install_safe为null。从 status 命令 看人类可读输出会逐项打印计数并列出带 severityerror/warning、code 与修复建议suggestion的 Findings方便直接作为修复清单使用。目录管理Catalog集成目录控制发现命令search、info去哪里找集成。目录按优先级顺序检查首个匹配生效环境变量—SPECKIT_INTEGRATION_CATALOG_URL覆盖所有目录项目配置—.specify/integration-catalogs.yml用户配置—~/.specify/integration-catalogs.yml内置默认— 官方目录 社区目录这一顺序在 IntegrationCatalog.get_active_catalogs() 中逐层实现且内置默认里社区目录被标记为install_allowedFalse仅发现不可安装。目录内容在.specify/integrations/.cache/按 URL 哈希缓存缓存有效期 1 小时缓存读取与新鲜拉取共用同一个形状校验器必须含schema_version与integrations映射损坏缓存会被丢弃并重新拉取。列出目录specify integration catalog list显示活动的目录来源。项目级来源若已配置可按索引移除否则活动来源显示为不可移除。设置了SPECKIT_INTEGRATION_CATALOG_URL时项目/用户配置整体失效列表会明确提示。添加目录specify integration catalog add url选项说明--name name目录的可选名称把自定义目录 URL 加入项目的.specify/integration-catalogs.yml。URL 必须使用 HTTPS本地测试例外http://localhost、http://127.0.0.1、http://[::1]。使用非默认目录时 CLI 会打印一次仅使用你信任的来源的警告。移除目录specify integration catalog remove index按catalog list中 0 起始的索引移除项目目录来源。集成专属选项--integration-options部分集成通过--integration-options接受额外选项底层由IntegrationOption数据类在 基类中声明名称、是否布尔旗标、是否必填、默认值、帮助文本集成选项说明generic--commands-dir必填。命令文件目录kimi--migrate-legacy把旧版.kimi/skills/安装迁移到.kimi-code/skills/含点号→连字符的技能命名如speckit.xxx→speckit-xxxcopilot--commands改用.github/agents/*.agent.md命令 .github/prompts/*.prompt.md配套文件并合并.vscode/settings.json代替默认 skills 布局copilot--skills强制默认 skills 布局在显式迁移中覆盖已有 commands 布局示例specify integration install generic --integration-options--commands-dir .myagent/cmds用 scaffold 开发新的内置集成specify integration scaffold key在 Spec Kit 仓库中创建一个最小内置集成包和配套的测试骨架然后打印接线步骤。该命令须在 Spec Kit 仓库根目录运行key必须是小写 kebab-case例如my-agent。选项说明--type脚手架模板类型markdown默认、skills、toml、yamlscaffold 命令 与 scaffold 执行器 配合它面向 Spec Kit源码仓库布局而非.specify/成员项目因此不受SPECIFY_INIT_DIR影响文件写入失败权限、只读检出、路径冲突都会以干净的 CLI 错误呈现而非 traceback并给出编号的 Next steps。状态文件.specify/integration.json多安装 FAQ 中提到的状态布局由 integration_state.py 维护.specify/integration.json包含default_integration唯一的默认集成installed_integrations全部已安装集成列表integration_settings每个集成的运行时设置脚本类型、集成选项等integration_state_schema为未来状态迁移预留的版本字段当前值为 1读到更高 schema 会报错而非静默误读旧版integration字段保留为默认集成的别名。读取路径区分文件不存在与文件存在但不可读/损坏非 UTF-8、JSON 解析失败、非对象、schema 过新都会返回结构化的IntegrationReadError由各命令映射为对应的人可读错误与恢复建议。常见问题FAQ同一项目能安装多个集成吗可以但这是面向团队可移植性的能力不是默认工作流。仅当已安装集成与新安装集成都被声明为多安装安全时才自动放行其他组合需传--force即你确认接受多个代理可能看到互不相关的代理专属指令或命令这一事实。哪些集成是多安装安全的判定标准使用静态唯一的代理根目录与命令目录、稳定的命令调用设置、独立的安装清单且受管文件与其他安全集成不重叠。注册表测试强制这些路径与清单不变量。当前声明多安装安全的集成及其命令目录Key命令目录alquimia.alquimia/skillsauggie.augment/commandsclaude.claude/skillscline.clinerules/workflowscodebuddy.codebuddy/commandscodex.agents/skillscommand-code.commandcode/skillscursor-agent.cursor/skillsdroid.factory/skillsfirebender.firebender/commandsgemini.gemini/commandsgrok.grok/skillsjunie.junie/commandskilocode.kilo/commandskiro-cli.kiro/promptslingma.lingma/skillsomp.omp/commandspi.pi/promptsqodercli.qoder/skillsqwen.qwen/commandsshai.shai/commandstabnine.tabnine/agent/commandstrae.trae/skillszcode.zcode/skills与别的集成共享命令目录、需要--commands-dir这类动态安装路径、或合并共享工具配置的集成默认不声明安全仍可加--force并存安装。注意上下文文件定位与多安装安全是两个独立概念multi_install_safe是关于命令/技能路径的集成声明而可选的 agent-context 扩展 管理每个代理的上下文文件如AGENTS.md、CLAUDE.md可通过其context_files设置同时同步多个锚点——多个代理映射到同一上下文文件在那里是预期行为不影响多安装安全判定。卸载或切换时我的修改会怎样已修改的文件自动保留只有未修改SHA-256 哈希仍匹配的文件会被删除--force可覆盖此行为。怎么知道该用哪个 key运行specify integration list查看全部可用集成及其 key或查阅上文内置集成总览表格。使用集成前必须装好对应的 AI 编码代理吗CLI 型集成如 Claude Code、Gemini CLI要求工具本身已安装IDE 型集成如 Cursor通过 IDE 自身工作GitHub Copilot 这类代理同时支持 IDE 与 CLI 用法。specify integration list会显示每个集成的类型。何时用upgrade何时用switch升级了 Spec Kit 想刷新已安装集成的受管文件时用upgrade想用一个新集成替换当前默认时用switch——若目标已安装switch行为等价于use。我装的扩展和 preset 会应用到每个已安装集成吗不会。扩展specify extension add与 presetspecify preset add只为当前活动默认集成注册命令覆盖即使其他集成已安装也不例外。非默认集成要等它成为默认才会获得这些产物specify integration use key或switch key会为新的活动集成重新脚手架所有已启用扩展与 preset。specify integration upgrade遵循同一规则——只在升级活动集成时重新注册扩展与 preset。适用前提与限制所有集成管理命令除scaffold面向 Spec Kit 源码仓库外都要求项目已通过specify init初始化新项目请在 init 阶段用--integration key指定代理受控多安装需要 Spec Kit ≥ 0.8.5旧版 CLI 只会出现switch/uninstall的建议目录发现命令search/info/list --catalog依赖网络拉取目录 JSON1 小时缓存离线时info对内置集成仍可用命令目录、事件配置等细节以 integrations 目录 下的目录清单catalog.json、catalog.community.json与各集成子包src/specify_cli/integrations/为准相关行为由 tests/integrations/ 下按代理组织的测试套件如test_integration_claude.py、test_integration_catalog.py持续验证。【免费下载链接】spec-kit Toolkit to help you get started with Spec-Driven Development项目地址: https://gitcode.com/GitHub_Trending/sp/spec-kit创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考