1
0
Files
Skill/openspec/changes/archive/2026-02-25-build-skillmgr-cli/specs/skill-installation/spec.md

3.0 KiB
Raw Blame History

ADDED Requirements

Requirement: 用户可以安装 skill 到全局目录

工具必须支持将 skill 安装到用户主目录下的平台配置目录(如 ~/.claude/skills/)。

Scenario: 全局安装到 Claude Code

  • WHEN 用户执行 skillmgr install skill <name> --platform claude --global
  • THEN 系统将 skill 复制到 ~/.claude/skills/<name>/

Scenario: 全局安装到 OpenCode

  • WHEN 用户执行 skillmgr install skill <name> --platform opencode --global
  • THEN 系统将 skill 复制到 ~/.config/opencode/skills/<name>/

Requirement: 用户可以安装 skill 到项目目录

工具必须支持将 skill 安装到当前项目目录下的平台配置目录。

Scenario: 项目级安装到 Claude Code

  • WHEN 用户在项目目录执行 skillmgr install skill <name> --platform claude
  • THEN 系统将 skill 复制到 ./claude/skills/<name>/

Scenario: 项目级安装到 OpenCode

  • WHEN 用户在项目目录执行 skillmgr install skill <name> --platform opencode
  • THEN 系统将 skill 复制到 ./.opencode/skills/<name>/

Requirement: 系统必须在所有源仓库中查找 skill

工具必须在所有已配置的源仓库缓存中搜索指定的 skill。

Scenario: 在第一个仓库找到

  • WHEN 第一个仓库包含目标 skill
  • THEN 系统使用该仓库的 skill 进行安装

Scenario: 在后续仓库找到

  • WHEN 前面的仓库不包含目标 skill但后续仓库包含
  • THEN 系统使用找到的第一个匹配仓库

Scenario: 所有仓库都不包含

  • WHEN 所有源仓库都不包含目标 skill
  • THEN 系统报错"skill '' not found in any repository"

Requirement: 用户可以临时指定源仓库

工具必须支持通过 --from 参数临时指定源仓库 URL不保存到配置文件。

Scenario: 使用临时仓库安装

  • WHEN 用户执行 skillmgr install skill <name> --platform claude --global --from <git-url>
  • THEN 系统从指定 URL 拉取仓库并安装,不修改 repository.json

Requirement: 系统必须处理目录已存在的情况

工具必须在安装前检查目标目录是否已存在,并根据情况处理。

Scenario: install.json 有记录且目录存在

  • WHEN 目标 skill 已通过 skillmgr 安装
  • THEN 系统询问用户是否覆盖,默认为否

Scenario: install.json 无记录但目录存在

  • WHEN 目标目录存在但不在 install.json 中
  • THEN 系统询问用户是否覆盖该目录,默认为否

Scenario: 用户拒绝覆盖

  • WHEN 用户选择不覆盖
  • THEN 系统取消安装,不修改任何文件

Requirement: 系统必须记录安装操作

工具必须在成功安装后将记录写入 ~/.skillmgr/install.json

Scenario: 记录包含完整信息

  • WHEN 安装成功完成
  • THEN 系统在 install.json 中添加包含 type、name、platform、scope、install_path、installed_at、updated_at 的记录