feat(skills): add gitlink-contributor-growth(贡献者成长体系:追踪PR/Issue活动→贡献排行→自动颁发徽章→成长报告)

新增端到端编排型 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:20 +08:00
parent 9749a4c832
commit 3671998627
1 changed files with 154 additions and 0 deletions

View File

@ -0,0 +1,154 @@
---
name: gitlink-contributor-growth
version: 1.0.0
description: "贡献者成长体系编排:追踪 PR/Issue 活动后AI 生成贡献排行、颁发徽章并产出成长报告,当用户想表彰贡献者、做月度/季度贡献回顾、激励社区活跃度时触发。"
metadata:
requires:
bins: ["gitlink-cli"]
orchestrates:
- gitlink-contributor-insight
- gitlink-user
- gitlink-commit-quality
- gitlink-release-auto
cliHelp: "gitlink-cli --help"
---
# gitlink-contributor-growth贡献者成长体系编排
**CRITICAL — 开始前必须先阅读 [`../gitlink-shared/SKILL.md`](../gitlink-shared/SKILL.md),认证/权限/API 注意事项。**
**CRITICAL — 所有写入操作issue comment、repo create-file/update-file务必先确认用户意图。**
**CRITICAL — GitLink 操作只能用 gitlink-cli。禁止用 ghGitHub CLI操作 GitLink 资源。**
**CRITICAL — 徽章授予是对真实用户的公开评价,颁奖词须客观、正向、避免贬损,颁布前向用户复述最终文案。**
---
## 工作流总览
```mermaid
flowchart TD
A[收到贡献者回顾需求] --> B{采集范围明确?}
B -->|否| B1[Step0 🤖AI澄清<br/>仓库/时间窗/维度]
B1 --> B
B -->|是| C[Step1 采集贡献数据<br/>export+contributors/prs/issues]
C --> D[Step2 🤖AI深度分析<br/>contributor-insight + commit-quality 打分]
D --> E[Step3 🤖AI生成排行榜<br/>设计4枚徽章 + 颁奖词]
E --> F{用户确认榜单?}
F -->|调整| E1[🤖AI调整权重/重排] --> F
F -->|确认| G[Step4 颁发徽章<br/>issue+comment 授予颁奖词]
G --> H[Step5 🤖AI生成成长报告<br/>CONTRIBUTION-LEADERBOARD.md]
H --> I[Step6 🤖AI总结输出]
```
---
## 编排的子 Skill
| 子 Skill | 职责 | 调用时机 |
|---|---|---|
| gitlink-contributor-insight | 贡献者活跃度、贡献类型、影响力画像 | Step2 逐人画像 |
| gitlink-user | 用户资料、heatmap、stats 核验 | Step2 候选人细化、Step4 颁奖词引用 |
| gitlink-commit-quality | 提交/PR 质量评估 | Step2 引入质量维度,避免只看数量 |
| gitlink-release-auto | 结构化亮点提炼 | Step5 报告"本期亮点"段落 |
---
## 详细步骤
### Step 0: 🤖AI 澄清采集范围AI 判断点)
- 🤖AI 判断点:向用户确认四要素:
1. **目标仓库**owner/repo—— 若只给仓库名,用 `gitlink-cli search +repos -k <name>` 反查。
2. **时间窗**(周/月/季度或起止日期)。
3. **榜单维度**(默认综合榜;可选修复/文档/新人榜)。
4. **是否公开发榜**(决定 Step4 是否评论、Step5 是否提交文件)。
- 信息齐全则跳过本步。
### Step 1: 采集贡献数据(纯命令)
优先用 `export` 模块(稳定、批量、结构化):
- `gitlink-cli export +contributors --owner <owner> --repo <repo> --format json --output contributors.json`
- `gitlink-cli export +prs --owner <owner> --repo <repo> --format json --output prs.json`
- `gitlink-cli export +issues --owner <owner> --repo <repo> --format json --output issues.json`
- 补充核验(字段不全时):
- `gitlink-cli repo +contributors --owner <owner> --repo <repo>`
- `gitlink-cli repo +activity --owner <owner> --repo <repo>`
- 🤖AI 判断点:读取三个 JSON按 login 聚合 PR/Issue/评论/合并数;识别新人(首次贡献在时间窗内)与老贡献者;取 Top N默认 15候选。
### Step 2: 🤖AI 深度分析AI 判断点 + 子 Skill
- 调 `gitlink-contributor-insight`每人活跃度、贡献类型feature/bugfix/docs/refactor、影响力。
- 调 `gitlink-commit-quality`:代表性 PR 质量评估规范、测试、聚焦度0-100 质量分。
- 调 `gitlink-user` 核验 Top 候选:
- `gitlink-cli user +info --login <login>`
- `gitlink-cli user +heatmap --login <login>`
- `gitlink-cli user +stats --login <login>`
- 🤖AI 判断点:综合打分(透明可解释):
- `综合分 = 0.4*活跃度 + 0.3*质量分 + 0.2*影响力 + 0.1*趋势`
- 分项分写入本地草稿 `scoring.md`(不提交),标注是否新人。
### Step 3: 🤖AI 生成排行榜 + 设计徽章AI 判断点)
- 🤖AI 判断点:徽章体系(可在 Step0 自定义,默认):
- 🏆 **本周之星 / 月度之星**:综合分第一(时间窗>1 月改"季度之星"
- 🔧 **修复达人**bugfix 类 PR 合并最多且质量分达标
- 📖 **文档能手**docs 类贡献最多
- 🌱 **新人突破奖**:时间窗内首次贡献且进 Top N 的新人
- 🤖AI 判断点为每位获奖者撰颁奖词草稿——客观陈述X PR、Y Issue、质量分 Z、正向具体、≤120 字、引用真实数据。
- ⚠️强制确认:把"榜单 + 徽章归属 + 颁奖词全文"复述给用户,确认或调整后才进入 Step4。
### Step 4: 颁发徽章(纯命令,须先经 Step3 确认)
在仓库"欢迎 Issue / 贡献者公告 Issue"下发表评论授予颁奖词。若无,先建一个:
- 查找:
- `gitlink-cli issue +list --owner <owner> --repo <repo> --state open --limit 50`
- 创建(若无):
- `gitlink-cli issue +create --owner <owner> --repo <repo> --title "贡献者成长榜 · <时间窗>" --body "<榜单概述>"`
- 颁发(每位获奖者一条 comment
- `gitlink-cli issue +comment --owner <owner> --repo <repo> --number <issue_number> --body "<🆔 @login | 🏅 徽章 | 📝 颁奖词>"`
- ⚠️执行前:(1) 已获 Step3 确认;(2) 每条 comment 全文再复述一次;(3) 用户点头后批量发出。
- 🤖AI 判断点:用户若要"静默颁奖"则跳过本步,仅在 Step5 报告列出。
### Step 5: 🤖AI 生成成长报告AI 判断点 + 写入命令)
- 🤖AI 判断点:撰写 `CONTRIBUTION-LEADERBOARD.md`
1. 头部:时间窗、仓库、覆盖人数、总 PR/Issue 数
2. 本期亮点:调 release-auto 提炼 3-5 条高光时刻
3. 完整排行榜rank / login / 综合分 / 分项 / 徽章
4. 徽章授予记录:颁奖词全文
5. 致谢与展望
- ⚠️写入命令(确认目标分支与路径后):
- `gitlink-cli repo +create-file --owner <owner> --repo <repo> --filepath CONTRIBUTION-LEADERBOARD.md --content "<报告>" --message "docs: 更新贡献者成长榜"`
- 文件已存在则用 `repo +update-file`(同参数)。
- 🤖AI 判断点:用户若要本地落盘不入库,则写本地文件,跳过 CLI 写入。
### Step 6: 🤖AI 总结输出AI 判断点)
- 🤖AI 判断点:汇报执行结果:
- 采集覆盖人数、PR 数、Issue 数
- 榜单Top N 与徽章归属
- 颁奖:在哪个 Issue 发了多少条 comment或说明静默
- 报告:`CONTRIBUTION-LEADERBOARD.md` 最终位置
- 后续建议:是否周期执行、是否补 `release +create` 发版公告
---
## Agent 触发示例
**用户**"帮我给 myorg/core-repo 这个仓库做上个月的贡献者回顾,颁个奖。"
**Agent**
1. Step0🤖AI确认 owner=myorg、repo=core-repo、时间窗=上月、综合榜+三枚徽章、公开颁榜 → 复述确认。
2. Step1纯命令并行 `export +contributors/prs/issues`,按 login 聚合,取 Top 15 候选。
3. Step2🤖AI调 contributor-insight 画像、commit-quality 打分、Top 5 用 `user +info/heatmap/stats` 核验;算综合分写 `scoring.md`
4. Step3🤖AI生成榜单与四枚徽章🏆月度之星/🔧修复达人/📖文档能手/🌱新人突破),写颁奖词 → 复述确认。
5. Step4纯命令用户确认后 `issue +list` 找欢迎 Issue无则 `issue +create`;对每位获奖者 `issue +comment` 颁奖(每条再次复述后发出)。
6. Step5🤖AI+纯命令):撰写 `CONTRIBUTION-LEADERBOARD.md``repo +update-file`(或 +create-file写入仓库。
7. Step6🤖AI汇报覆盖 23 人/47 PR/81 IssueTop 3 榜单,颁发 4 枚徽章于 Issue #128,报告位于仓库根。
---
## 注意事项
- **只读 vs 写**Step0-2 全只读Step3 颁奖词须确认Step4 comment、Step5 create-file/update-file 为写入须确认。
- **颁奖词红线**:客观、正向、避免贬损,颁布前复述。
- **不替代子 Skill**:贡献者深度分析仍由 contributor-insight/user/commit-quality 各自负责。