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,104 @@
## ADDED Requirements
### Requirement: 系统必须支持 Claude Code 平台
工具必须内置 Claude Code 平台的目录结构和命名规则。
#### Scenario: Skill 安装路径
- **WHEN** 安装 skill 到 Claude Code
- **THEN** 目标路径为 `<base>/.claude/skills/<skill-name>/`
#### Scenario: Command 安装路径
- **WHEN** 安装 command 到 Claude Code
- **THEN** 目标路径为 `<base>/.claude/commands/<command-group>/`
#### Scenario: 保持源目录结构
- **WHEN** 复制文件到 Claude Code
- **THEN** 系统保持源仓库的目录结构不变
---
### Requirement: 系统必须支持 OpenCode 平台
工具必须内置 OpenCode 平台的目录结构和命名规则。
#### Scenario: Skill 全局安装路径
- **WHEN** 全局安装 skill 到 OpenCode
- **THEN** 目标路径为 `~/.config/opencode/skills/<skill-name>/`
#### Scenario: Skill 项目级安装路径
- **WHEN** 项目级安装 skill 到 OpenCode
- **THEN** 目标路径为 `./.opencode/skills/<skill-name>/`
#### Scenario: Command 全局安装路径
- **WHEN** 全局安装 command 到 OpenCode
- **THEN** 目标路径为 `~/.config/opencode/commands/`
#### Scenario: Command 项目级安装路径
- **WHEN** 项目级安装 command 到 OpenCode
- **THEN** 目标路径为 `./.opencode/commands/`
#### Scenario: Skill 保持结构
- **WHEN** 复制 skill 到 OpenCode
- **THEN** 系统保持源目录结构
#### Scenario: Command 扁平化
- **WHEN** 复制 command 到 OpenCode
- **THEN** 系统将文件重命名为 `<group>-<action>.md` 并放置在 commands/ 目录下
---
### Requirement: 系统必须根据作用域确定基础路径
工具必须根据全局/项目作用域计算正确的基础路径。
#### Scenario: 全局作用域
- **WHEN** 用户指定 `--global` 参数
- **THEN** 基础路径为用户主目录(`~``$HOME`
#### Scenario: 项目作用域
- **WHEN** 用户未指定 `--global` 参数
- **THEN** 基础路径为当前工作目录
---
### Requirement: 系统必须生成文件映射表
适配器必须生成源文件到目标文件的完整映射表,供事务性安装使用。
#### Scenario: Skill 文件映射
- **WHEN** 适配 skill 文件
- **THEN** 系统返回源路径到目标路径的 map包括所有子目录和文件
#### Scenario: Command 文件映射Claude
- **WHEN** 适配 command 到 Claude Code
- **THEN** 系统返回 `commands/<group>/<action>.md``<base>/.claude/commands/<group>/<action>.md` 的映射
#### Scenario: Command 文件映射OpenCode
- **WHEN** 适配 command 到 OpenCode
- **THEN** 系统返回 `commands/<group>/<action>.md``<base>/commands/<group>-<action>.md` 的映射(全局时 base 为 `~/.config/opencode`,项目级时为 `./.opencode`
---
### Requirement: 系统必须处理不支持的平台
工具必须拒绝处理未实现的平台。
#### Scenario: 不支持的平台参数
- **WHEN** 用户指定未实现的平台(如 `--platform cursor`
- **THEN** 系统报错"unsupported platform: cursor"