1
0

完成一个简易的全局skill、command管理器

This commit is contained in:
2026-02-25 14:33:56 +08:00
parent f4cb809f9d
commit 2d327b5af8
60 changed files with 6053 additions and 1 deletions

View File

@@ -0,0 +1,124 @@
## 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、路径