feat(skills): add gitlink-multi-repo-ops(多仓库协同:跨多仓库统一Issue追踪、PR状态看板、Release协调发布)

新增端到端编排型 Agent Skill,串联多个 gitlink-cli 命令完成完整自动化场景(≥3 命令/Skill 调用)。
遵循 skills 规范(SKILL.md + frontmatter),兼容 Claude Code 等 Agent 平台。
来源:GitLink 大赛 2026 子任务三(端到端自动化工作流)。
This commit is contained in:
wyxfzgg 2026-07-09 22:20:15 +08:00
parent 9749a4c832
commit 29ffb118f7
1 changed files with 147 additions and 0 deletions

View File

@ -0,0 +1,147 @@
---
name: gitlink-multi-repo-ops
version: 1.0.0
description: "多仓库协同编排:跨多个 GitLink 仓库的统一 Issue 追踪、PR 状态看板与 Release 协调发布,当用户需要同时管理/对比/协调多个仓库时触发。"
metadata:
requires:
bins: ["gitlink-cli"]
orchestrates:
- gitlink-issue
- gitlink-pr
- gitlink-release
- gitlink-insight
- gitlink-workflow
cliHelp: "gitlink-cli --help"
---
# gitlink-multi-repo-ops多仓库协同编排
**CRITICAL — 开始前必须先阅读 [`../gitlink-shared/SKILL.md`](../gitlink-shared/SKILL.md),认证/权限/API 注意事项。**
**CRITICAL — 所有写入/删除操作(批量 release create、issue batch-close务必先确认用户意图。**
**CRITICAL — GitLink 操作只能用 gitlink-cli。禁止用 ghGitHub CLI操作 GitLink 资源。**
**CRITICAL — 编排型 Skill 只做"导演",不重写子 Skill 内部逻辑。**
---
## 工作流总览
```mermaid
flowchart TD
U[用户自然语言输入<br/>含仓库名/组织/清单] --> S1[Step1 🤖AI解析仓库清单]
S1 --> S2[Step2 跨仓库数据采集<br/>循环 issue/pr/release list]
S2 --> S2J{数据齐全?}
S2J -->|否| S2
S2J -->|是| S3[Step3 🤖AI跨仓分析<br/>workflow+repo-report / +health]
S3 --> S4[Step4 🤖AI生成协同看板<br/>MULTI-REPO-DASHBOARD.md]
S4 --> S5[Step5 🤖AI Release依赖判断<br/>拓扑排序]
S5 --> CONF{用户确认发布计划?}
CONF -->|修改| S5
CONF -->|同意| S6[Step6 Release协调发布<br/>release+create 串行]
S6 --> DONE[看板 + 发布报告]
```
---
## 编排的子 Skill
| 子 Skill | 职责 | 调用时机 |
|---|---|---|
| gitlink-issue | 单仓 Issue 的 list/view/close | Step2 采集、Step6 发布前阻断检查 |
| gitlink-pr | 单仓 PR 的 list/view/merge/check-merge | Step2 采集、Step6 发布前阻断检查 |
| gitlink-release | 单仓 Release 的 list/create/view | Step2 采集、Step6 协调发布 |
| gitlink-insight | 仓库画像、贡献者、活跃度 | Step3 跨仓分析 |
| gitlink-workflow | repo-report / triage / health 汇总 | Step3 单仓报告、Step4 看板合成 |
---
## 详细步骤
### Step 1: 🤖AI 解析仓库清单AI 判断点)
- 输入:用户自然语言(如"看看 acme 组织下的 frontend、backend、infra 三个库")。
- 🤖AI 判断点:抽取规范化的 `owner/repo` 列表,去重、补全大小写。若只给组织名,先拉候选再请用户确认。
- 纯命令(仅当需枚举候选时):
- `gitlink-cli org +list --owner <org>`
- `gitlink-cli repo +list --owner <org> --limit 50`
- 🤖AI 判断点:清单为空或歧义时**必须暂停确认**,不得擅自推断。
- 产出:内部 `repo_list` 数组,供后续循环。
### Step 2: 跨仓库数据采集(纯命令,循环执行)
`repo_list` 每个 repo 循环执行只读命令,结果按仓库归档:
- `gitlink-cli issue +list --owner <owner> --repo <repo> --state open --limit 50`
- `gitlink-cli pr +list --owner <owner> --repo <repo> --state open --limit 50`
- `gitlink-cli release +list --owner <owner> --repo <repo> --limit 10`
- `gitlink-cli milestone +list --owner <owner> --repo <repo>`
- `gitlink-cli repo +info --owner <owner> --repo <repo>`
- 🤖AI 判断点某仓库采集失败404/无权限)记入 errors[]**不中断流程**,继续下一个,最终看板标注"采集失败"。
- 全部 GET安全无需确认。
### Step 3: 🤖AI 跨仓统一分析AI 判断点)
- 纯命令(逐仓库):
- `gitlink-cli workflow +repo-report --repository <owner>/<repo>`
- `gitlink-cli workflow +health --repository <owner>/<repo>`
- `gitlink-cli workflow +triage --owner <owner> --repo <repo> --state open`(若 issue 堆积)
- 🤖AI 判断点:
- 对比各仓"未关闭 Issue / 未合并 PR / 距上次 Release 时长",找瓶颈仓库与风险仓库。
- 识别跨仓关联 Issue标题/标签相似)、共享贡献者、依赖同一里程碑的发布计划。
- 汇总每仓 P0/P1 issue 与阻塞 PR形成优先级矩阵。
### Step 4: 🤖AI 生成协同看板AI 判断点)
- 纯命令(可选,补充活跃度):
- `gitlink-cli repo +activity --owner <owner> --repo <repo>`
- `gitlink-cli repo +contributors --owner <owner> --repo <repo> --limit 10`
- 🤖AI 判断点:撰写 `MULTI-REPO-DASHBOARD.md`,结构:
1. 仓库总览表(仓库 | 开放 Issue | 开放 PR | 最新 Release | 健康分)
2. 跨仓 Issue 看板(按优先级/标签归并)
3. 跨仓 PR 看板(可合并 / 阻塞 / 冲突)
4. Release 协调时间线
5. 风险提示
- 🤖AI 判断点:若用户提及"导出"
- `gitlink-cli export +issues --owner <owner> --repo <repo> --output issues.csv`
- `gitlink-cli export +prs --owner <owner> --repo <repo> --output prs.csv`
### Step 5: 🤖AI Release 依赖判断AI 判断点,关键决策)
- 纯命令(核对可合并性与现有 release
- `gitlink-cli pr +check-merge --owner <owner> --repo <repo> --number <pr>` — 发布分支 PR 冲突预检
- `gitlink-cli release +view --owner <owner> --repo <repo> --id <version_id>`
- 🤖AI 判断点:
- **依赖拓扑排序**backend 依赖 infra、frontend 依赖 backend → 发布顺序 `infra → backend → frontend`
- **发布门禁**:任一仓库有阻断级未合并 PR 或 P0 issue先警告不得自动跳过。
- 生成"建议发布顺序"草案(每仓 tag、notes 要点、顺序)。
- ⚠️强制确认:暂停并向用户确认发布计划与顺序,未确认严禁进入 Step6。
### Step 6: Release 协调发布(纯命令,需用户确认)
按拓扑顺序逐仓库串行执行(前一个失败则停止,避免半发布):
- `gitlink-cli release +create --owner <owner> --repo <repo> --tag <vX.Y.Z> --name "<标题>" --body "<notes>" --target <branch>`
- 每仓发布后核对:
- `gitlink-cli release +view --owner <owner> --repo <repo> --id <version_id>`
- 🤖AI 判断点:中间某仓失败,记录已成功与失败仓,回滚交由用户(不擅自 `release +delete`)。
- 可选(用户明确要求清理"已发布修复"的 issue再次确认后
- `gitlink-cli issue +batch-close --owner <owner> --repo <repo> --numbers <n,n>`
---
## Agent 触发示例
**用户**"帮我盘点 acme 组织的 frontend、backend、infra 三个仓库的进度,顺便把该发的版本协调发一下。"
**Agent**
1. Step1🤖AI提取 `repo_list = [acme/frontend, acme/backend, acme/infra]`
2. Step2纯命令循环三仓跑 `issue +list`、`pr +list`、`release +list`、`milestone +list`、`repo +info`,落盘 `data/`
3. Step3🤖AI逐仓 `workflow +repo-report`、`workflow +health`;对比得出"backend PR #142 阻塞 frontendinfra 已 4 个月未发版"。
4. Step4🤖AI生成 `MULTI-REPO-DASHBOARD.md`含总览表、PR 看板、Release 时间线、风险。
5. Step5🤖AI判断依赖顺序 `infra(v2.1.0) → backend(v3.4.0) → frontend(v1.9.0)``pr +check-merge` 确认 backend 发布分支无冲突 → 暂停确认。
6. 用户批准后 Step6纯命令按顺序 `release +create` 三仓,每发一个即 `release +view` 核对,汇总发布结果。
---
## 注意事项
- **只读 vs 写**Step1-4 全只读可自由执行Step5 决策与 Step6 写操作必须显式确认。
- **幂等性**:采集失败不重试到死循环;发布失败不自动回滚。
- **不替代子 Skill**:单仓深度操作细节仍由 issue/pr/release/insight/workflow 各自负责。