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