SuperAPI AI 工具集

speckit-install

部署与运维

查看项目

更新于 10-16 07:51

技能介绍

用途

本技能用于安装 Specify CLI,使 specify 命令在 PATH 中可用,或通过 uvx 以一次性方式调用。技能范围仅限安装 CLI,不运行 specify init;安装后的项目初始化由 speckit-initial 处理。

适用时机

  • 首次进行 Spec Kit 设置(如“安装 Spec Kit”“安装 Specify CLI”)。
  • 需要在 CI 或脚本中预先安装 CLI。
  • 升级 CLI(uv tool install --force)。
  • 用户反馈“specify command not found”或“specify: command not found”。

前置条件

  • uv:Astral uv,用于安装 CLI。若未安装,需先引导用户安装,例如在 Linux/macOS 上运行 curl -LsSf https://astral.sh/uv/install.sh | sh,Windows 参见 uv 文档。
  • 使用 uv 时需 Python 3.11+(uv 通常自带或使用系统 Python)。
  • Git:安装阶段可选,后续 specify init 配合 git 时需要。

工作流程

  1. 检查是否已安装:运行 specify --version 或 specify check。若成功,说明已安装,建议改用 speckit-initial 进行项目初始化,或 speckit-check 进行环境验证。
  2. 持久安装(推荐):运行 uv tool install specify-cli --from git+https://github.com/github/spec-kit.git,使 specify 在所有项目的 PATH 中可用。升级命令:uv tool install specify-cli --force --from git+https://github.com/github/spec-kit.git。
  3. 一次性使用(不安装到 PATH):运行 uvx --from git+https://github.com/github/spec-kit.git specify init <project_name_or_.> --ai <agent>。适用于不想永久安装的场景(如快速试用、CI 一次性任务)。需注意:同一会话中后续的 specify init 或 specify check 可复用相同 uvx 前缀;若未持久安装,需完整重复 uvx --from ... 调用。
  4. 企业或受限网络:如需 GitHub API 访问,可设置 GH_TOKEN 或 GITHUB_TOKEN。对于 specify init(由 speckit-initial 处理):使用 --github-token <token> 或环境变量。安装阶段 uv 可能需要网络访问以克隆仓库;如遇 TLS 问题,仅在官方明确文档支持时使用 --skip-tls 或类似选项,避免在非受控环境推荐不安全选项。

输出结果

  • 持久安装:specify 在 PATH 中可用,用户可在任意目录运行 specify init、specify check。
  • 一次性:不改变 PATH,用户每次需运行 uvx --from git+https://github.com/github/spec-kit.git specify ...。

后续步骤

安装后使用 speckit-initial 在项目中运行 specify init,或使用 speckit-check 验证环境。

不同环境说明

  • Linux:必要时安装 uv,然后运行持久安装命令。WSL 与 Linux 相同。
  • macOS:与 Linux 相同;如需,确保 uv 可用的 Python 3.11+。
  • Windows:安装 uv(参见 uv 文档),使用 PowerShell 或 cmd。项目初始化时 speckit-initial 会在需要时使用 --script ps。
  • 企业/代理:若 GitHub API 受限,使用 GH_TOKEN/GITHUB_TOKEN;确保 uv 能访问 GitHub。
  • CI:优先在可缓存步骤中持久安装,随后在同一 runner 中运行 specify init 或 specify check。

故障排查

  • uv 未找到:引导用户安装 uv。
  • Python 版本:uv 通常管理 Python;若报错涉及 Python,确保 3.11+ 可用。
  • 网络/SSL:检查防火墙、代理与 GitHub 访问;除非必要且在文档支持下,避免禁用 TLS。
  • 权限错误:Linux/macOS 上 uv 用户级安装通常无需 sudo;若使用系统 Python,可考虑用户级 uv 安装。

限制

本技能不执行 specify init,不负责项目初始化;相关操作需使用 speckit-initial。具体支持的操作系统细节、企业网络配置与参数支持情况以官方文档为准,部分内容暂未提供。