完成一个简易的全局skill、command管理器
This commit is contained in:
@@ -0,0 +1,95 @@
|
||||
## 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 '<name>' 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 的记录
|
||||
Reference in New Issue
Block a user