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,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 的记录