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

3.7 KiB
Raw Blame History

ADDED Requirements

Requirement: 系统必须持久化安装记录

工具必须在每次成功安装后,将安装信息写入 ~/.skillmgr/install.json

Scenario: 创建新记录

  • WHEN 首次安装某个 skill/command
  • THEN 系统在 install.json 的 installations 数组中添加新记录

Scenario: 记录包含必要字段

  • WHEN 创建安装记录
  • THEN 记录必须包含 type、name、source_repo、platform、scope、install_path、installed_at、updated_at

Requirement: 用户可以查询已安装项

工具必须提供命令列出所有已安装的 skills 和 commands。

Scenario: 列出所有已安装项

  • WHEN 用户执行 skillmgr list 命令
  • THEN 系统显示所有 install.json 中的记录

Scenario: 按类型过滤

  • WHEN 用户执行 skillmgr list --type skill--type command
  • THEN 系统仅显示对应类型的安装记录

Scenario: 按平台过滤

  • WHEN 用户执行 skillmgr list --platform claude--platform opencode
  • THEN 系统仅显示对应平台的安装记录

Scenario: 按作用域过滤

  • WHEN 用户执行 skillmgr list --global 或省略该参数
  • THEN 系统仅显示对应作用域的安装记录

Scenario: 无已安装项

  • WHEN install.json 为空或不存在
  • THEN 系统提示"无已安装的 skills/commands"

Requirement: 用户可以卸载已安装项

工具必须提供卸载功能,删除文件并移除安装记录。

Scenario: 卸载 skill

  • WHEN 用户执行 skillmgr uninstall skill <name> --platform <platform> --global
  • THEN 系统从 install.json 查找记录,删除对应目录,移除记录

Scenario: 卸载 command

  • WHEN 用户执行 skillmgr uninstall command <group> --platform <platform> --global
  • THEN 系统删除对应的命令文件或目录,移除记录

Scenario: 卸载不存在的项

  • WHEN install.json 中无对应记录
  • THEN 系统提示"未找到安装记录",不执行删除

Scenario: 安装路径已被手动删除

  • WHEN install.json 有记录但文件已不存在
  • THEN 系统仅移除记录,不报错

Requirement: 用户可以更新已安装项

工具必须提供更新功能,重新从源仓库安装最新版本。

Scenario: 更新单个 skill

  • WHEN 用户执行 skillmgr update skill <name> --platform <platform> --global
  • THEN 系统从源重新安装到原路径,更新 updated_at 字段

Scenario: 更新单个 command

  • WHEN 用户执行 skillmgr update command <group> --platform <platform> --global
  • THEN 系统从源重新安装到原路径,更新 updated_at 字段

Scenario: 更新所有已安装项

  • WHEN 用户执行 skillmgr update --all
  • THEN 系统遍历 install.json 中所有记录,逐个更新

Scenario: 源仓库找不到原始项

  • WHEN 更新时源仓库中不再存在该 skill/command
  • THEN 系统报错,不修改已安装文件和记录

Requirement: 用户可以清理孤立记录

工具必须提供命令扫描并清理 install.json 中文件路径已不存在的记录。

Scenario: 扫描孤立记录

  • WHEN 用户执行 skillmgr clean 命令
  • THEN 系统遍历 install.json 中所有记录,检查 install_path 是否存在

Scenario: 清理孤立记录

  • WHEN 发现安装路径不存在的记录
  • THEN 系统列出这些记录并从 install.json 中删除

Scenario: 无孤立记录

  • WHEN 所有记录的安装路径都存在
  • THEN 系统提示"无孤立记录"

Scenario: 显示清理结果

  • WHEN 清理完成
  • THEN 系统显示清理的记录数量和详情type、name、platform、scope、路径