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: 用户可以安装命令组到全局目录
工具必须支持将整个命令组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"、包含命令组名称和安装路径的记录