## ADDED Requirements ### Requirement: 用户可以安装命令组到全局目录 工具必须支持将整个命令组(commands 目录下的子目录)安装到平台配置目录。 #### Scenario: 全局安装命令组到 Claude Code - **WHEN** 用户执行 `skillmgr install command --platform claude --global` - **THEN** 系统将 `commands//` 下所有 .md 文件复制到 `~/.claude/commands//` #### Scenario: 全局安装命令组到 OpenCode - **WHEN** 用户执行 `skillmgr install command --platform opencode --global` - **THEN** 系统将 `commands//` 下所有 .md 文件重命名为 `-.md` 并复制到 `~/.opencode/command/` --- ### Requirement: 用户可以安装命令组到项目目录 工具必须支持将命令组安装到当前项目的平台配置目录。 #### Scenario: 项目级安装命令组到 Claude Code - **WHEN** 用户在项目目录执行 `skillmgr install command --platform claude` - **THEN** 系统将命令组复制到 `./.claude/commands//` #### Scenario: 项目级安装命令组到 OpenCode - **WHEN** 用户在项目目录执行 `skillmgr install command --platform opencode` - **THEN** 系统将命令组扁平化复制到 `./.opencode/command/` --- ### Requirement: 系统必须在所有源仓库中查找命令组 工具必须在所有已配置源仓库的 `commands/` 目录中搜索指定命令组。 #### Scenario: 找到命令组 - **WHEN** 源仓库包含 `commands//` 目录且内有 .md 文件 - **THEN** 系统使用该命令组进行安装 #### Scenario: 命令组不存在 - **WHEN** 所有源仓库都不包含指定命令组 - **THEN** 系统报错"command '' not found in any repository" #### Scenario: 命令组目录为空 - **WHEN** 找到命令组目录但其中没有 .md 文件 - **THEN** 系统报错"command group '' contains no command files" --- ### Requirement: OpenCode 平台必须扁平化命令文件名 工具必须在安装到 OpenCode 平台时,将命令文件重命名为 `-.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//` 目录已存在 - **THEN** 系统询问用户是否覆盖 #### Scenario: OpenCode 命令文件冲突 - **WHEN** 目标 `~/.opencode/command/` 中已存在同名的 `-*.md` 文件 - **THEN** 系统询问用户是否覆盖所有冲突文件 --- ### Requirement: 系统必须记录命令组安装 工具必须在成功安装后将记录写入 install.json。 #### Scenario: 记录命令组安装信息 - **WHEN** 命令组安装成功 - **THEN** 系统在 install.json 中添加 type 为 "command"、包含命令组名称和安装路径的记录