1
0
Files
Skill/openspec/changes/archive/2026-02-25-build-skillmgr-cli/specs/repository-management/spec.md

2.3 KiB

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 错误信息并继续处理其他仓库