3.7 KiB
3.7 KiB
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、路径)