完成一个简易的全局skill、command管理器
This commit is contained in:
@@ -0,0 +1,95 @@
|
||||
## ADDED Requirements
|
||||
|
||||
### Requirement: 用户可以安装命令组到全局目录
|
||||
|
||||
工具必须支持将整个命令组(commands 目录下的子目录)安装到平台配置目录。
|
||||
|
||||
#### Scenario: 全局安装命令组到 Claude Code
|
||||
|
||||
- **WHEN** 用户执行 `skillmgr install command <group> --platform claude --global`
|
||||
- **THEN** 系统将 `commands/<group>/` 下所有 .md 文件复制到 `~/.claude/commands/<group>/`
|
||||
|
||||
#### Scenario: 全局安装命令组到 OpenCode
|
||||
|
||||
- **WHEN** 用户执行 `skillmgr install command <group> --platform opencode --global`
|
||||
- **THEN** 系统将 `commands/<group>/` 下所有 .md 文件重命名为 `<group>-<action>.md` 并复制到 `~/.opencode/command/`
|
||||
|
||||
---
|
||||
|
||||
### Requirement: 用户可以安装命令组到项目目录
|
||||
|
||||
工具必须支持将命令组安装到当前项目的平台配置目录。
|
||||
|
||||
#### Scenario: 项目级安装命令组到 Claude Code
|
||||
|
||||
- **WHEN** 用户在项目目录执行 `skillmgr install command <group> --platform claude`
|
||||
- **THEN** 系统将命令组复制到 `./.claude/commands/<group>/`
|
||||
|
||||
#### Scenario: 项目级安装命令组到 OpenCode
|
||||
|
||||
- **WHEN** 用户在项目目录执行 `skillmgr install command <group> --platform opencode`
|
||||
- **THEN** 系统将命令组扁平化复制到 `./.opencode/command/`
|
||||
|
||||
---
|
||||
|
||||
### Requirement: 系统必须在所有源仓库中查找命令组
|
||||
|
||||
工具必须在所有已配置源仓库的 `commands/` 目录中搜索指定命令组。
|
||||
|
||||
#### Scenario: 找到命令组
|
||||
|
||||
- **WHEN** 源仓库包含 `commands/<group>/` 目录且内有 .md 文件
|
||||
- **THEN** 系统使用该命令组进行安装
|
||||
|
||||
#### Scenario: 命令组不存在
|
||||
|
||||
- **WHEN** 所有源仓库都不包含指定命令组
|
||||
- **THEN** 系统报错"command '<group>' not found in any repository"
|
||||
|
||||
#### Scenario: 命令组目录为空
|
||||
|
||||
- **WHEN** 找到命令组目录但其中没有 .md 文件
|
||||
- **THEN** 系统报错"command group '<group>' contains no command files"
|
||||
|
||||
---
|
||||
|
||||
### Requirement: OpenCode 平台必须扁平化命令文件名
|
||||
|
||||
工具必须在安装到 OpenCode 平台时,将命令文件重命名为 `<group>-<action>.md` 格式。
|
||||
|
||||
#### Scenario: 转换命令文件名
|
||||
|
||||
- **WHEN** 安装 `commands/lyxy-kb/init.md` 到 OpenCode
|
||||
- **THEN** 文件被重命名为 `lyxy-kb-init.md`
|
||||
|
||||
#### Scenario: 保留 .md 扩展名
|
||||
|
||||
- **WHEN** 转换文件名时
|
||||
- **THEN** 系统保留 `.md` 扩展名
|
||||
|
||||
---
|
||||
|
||||
### Requirement: 系统必须处理命令组目录冲突
|
||||
|
||||
工具必须在安装前检查目标目录或文件是否已存在。
|
||||
|
||||
#### Scenario: Claude Code 命令组目录冲突
|
||||
|
||||
- **WHEN** `~/.claude/commands/<group>/` 目录已存在
|
||||
- **THEN** 系统询问用户是否覆盖
|
||||
|
||||
#### Scenario: OpenCode 命令文件冲突
|
||||
|
||||
- **WHEN** 目标 `~/.opencode/command/` 中已存在同名的 `<group>-*.md` 文件
|
||||
- **THEN** 系统询问用户是否覆盖所有冲突文件
|
||||
|
||||
---
|
||||
|
||||
### Requirement: 系统必须记录命令组安装
|
||||
|
||||
工具必须在成功安装后将记录写入 install.json。
|
||||
|
||||
#### Scenario: 记录命令组安装信息
|
||||
|
||||
- **WHEN** 命令组安装成功
|
||||
- **THEN** 系统在 install.json 中添加 type 为 "command"、包含命令组名称和安装路径的记录
|
||||
Reference in New Issue
Block a user