完成一个简易的全局skill、command管理器
This commit is contained in:
@@ -0,0 +1,78 @@
|
||||
## ADDED Requirements
|
||||
|
||||
### Requirement: 用户可以添加源仓库
|
||||
|
||||
工具必须允许用户添加 git 仓库作为 skills/commands 的源,并将配置持久化到 `~/.skillmgr/repository.json`。
|
||||
|
||||
#### Scenario: 成功添加新仓库
|
||||
|
||||
- **WHEN** 用户执行 `skillmgr add <git-url>` 命令
|
||||
- **THEN** 系统克隆仓库到 `~/.skillmgr/cache/` 并将配置写入 repository.json
|
||||
|
||||
#### Scenario: 添加已存在的仓库
|
||||
|
||||
- **WHEN** 用户添加已存在的仓库(同名)
|
||||
- **THEN** 系统提示"仓库名称已存在,请先使用 `skillmgr remove <name>` 移除",拒绝添加
|
||||
|
||||
#### Scenario: 指定仓库别名
|
||||
|
||||
- **WHEN** 用户使用 `--name` 参数指定仓库别名
|
||||
- **THEN** 系统使用指定的别名作为仓库名称
|
||||
|
||||
#### Scenario: 指定分支
|
||||
|
||||
- **WHEN** 用户使用 `--branch` 参数指定分支
|
||||
- **THEN** 系统克隆指定分支而非默认分支
|
||||
|
||||
---
|
||||
|
||||
### Requirement: 用户可以移除源仓库
|
||||
|
||||
工具必须允许用户从配置中移除已添加的源仓库。
|
||||
|
||||
#### Scenario: 成功移除仓库
|
||||
|
||||
- **WHEN** 用户执行 `skillmgr remove <name>` 命令
|
||||
- **THEN** 系统从 repository.json 中删除对应配置
|
||||
|
||||
#### Scenario: 移除不存在的仓库
|
||||
|
||||
- **WHEN** 用户尝试移除不存在的仓库名称
|
||||
- **THEN** 系统提示仓库不存在,不报错
|
||||
|
||||
---
|
||||
|
||||
### Requirement: 用户可以列出已配置的源仓库
|
||||
|
||||
工具必须提供命令列出所有已添加的源仓库及其信息。
|
||||
|
||||
#### Scenario: 列出所有仓库
|
||||
|
||||
- **WHEN** 用户执行 `skillmgr list-repos` 命令
|
||||
- **THEN** 系统显示所有仓库的名称、URL、分支和添加时间
|
||||
|
||||
#### Scenario: 无已配置仓库
|
||||
|
||||
- **WHEN** 用户执行列表命令但 repository.json 为空
|
||||
- **THEN** 系统提示"无已配置的源仓库"
|
||||
|
||||
---
|
||||
|
||||
### Requirement: 用户可以同步源仓库
|
||||
|
||||
工具必须提供命令从远程拉取最新代码,更新本地缓存。
|
||||
|
||||
#### Scenario: 同步单个仓库
|
||||
|
||||
- **WHEN** 用户执行 `skillmgr sync <name>` 命令
|
||||
- **THEN** 系统对指定仓库执行 `git pull`
|
||||
|
||||
#### Scenario: 同步所有仓库
|
||||
|
||||
- **WHEN** 用户执行 `skillmgr sync` 不带参数
|
||||
- **THEN** 系统对所有已配置仓库执行 `git pull`
|
||||
|
||||
#### Scenario: Git 操作失败
|
||||
|
||||
- **WHEN** git pull 失败(网络错误、冲突等)
|
||||
- **THEN** 系统显示 git 错误信息并继续处理其他仓库
|
||||
Reference in New Issue
Block a user