关于 github-analytics-scoring
用于评估 GitHub 仓库健康状况,并为议题、拉取请求和讨论排序的技能。它为报告定义评分、置信度、趋势及变化追踪规则。
主要功能
- 01仓库健康评分
- 02议题、PR 和讨论优先级
- 03发现项置信度分级
- 04跨报告变化追踪
- 05速度与贡献者指标
- 06瓶颈和趋势分类
适用场景
- 01生成单仓库或多仓库评分卡
- 02为仪表板排列议题和 PR
- 03比较多轮分析的发现项
- 04识别交付与团队瓶颈
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ community-access/ accessibility-agents --skill github-analytics-scoring安装后在 Claude Code 中输入/github-analytics-scoring确认已加载。
详细介绍
GitHub 分析评分
仓库健康评分
Health Score = 100 - (sum of weighted penalties)
Penalties - CI & Reliability:
Failing workflow, high confidence: -10 points
Flaky test (3+ failures/week): - 5 points
No CI configured: - 8 points
Penalties - Issues & PRs:
Critical unresolved bug (P0): -10 points
Security alert (critical severity): -10 points
Security alert (high severity): - 5 points
PR open >14 days (stale): - 3 points each (max -9)
Issue @mentioned, no response >7 days: - 5 points each (max -10)
>10 open issues with no labels/triage: - 3 points
Penalties - Community Health:
No CONTRIBUTING.md: - 5 points
No CODE_OF_CONDUCT.md: - 3 points
No branch protection on main: - 5 points
0 open "good first issue" labels: - 2 points
Floor: 0 (minimum score)
评分等级
| 分数 | 等级 | 含义 |
|---|---|---|
| 90-100 | A | 优秀——仓库健康,问题极少 |
| 75-89 | B | 良好——存在少量问题,管理得当 |
| 50-74 | C | 需要关注——有多个需要采取行动的信号 |
| 25-49 | D | 较差——存在影响开发速度的重大问题 |
| 0-24 | F | 严重——存在阻碍团队进展的重大问题 |
Issue 优先级评分
在内部为每个 Issue 评分,以确定其在仪表板和报告中的排序:
| 信号 | 分数 |
|---|---|
| 用户 @提及了你,但你尚未回复 | +5 |
带有 P0、P1、critical、urgent、blocker 标签 | +3 |
| 与即将到来的发布里程碑相关 | +3 |
| 自用户上次活动后有他人发表新评论 | +2 |
| 社区关注度高(5 个或更多正面表情回应) | +2 |
带有 bug 标签 | +1 |
| 分配给用户 | +1 |
| 有活跃的相关讨论帖 | +1 |
带有 wontfix、duplicate、question 标签 | -1 |
| 超过 14 天没有活动 | -2 |
Pull Request 优先级评分
| 信号 | 分数 |
|---|---|
| 已请求评审,用户尚未评审 | +5 |
| PR 有“changes requested”状态——作者需要更新 | +4 |
| PR 已获批准并可合并 | +3 |
| 目标为有即将到期截止日期的发布分支 | +3 |
| 此 PR 的 CI 失败 | +2 |
| 存在合并冲突 | +2 |
| 社区关注度高(5 个或更多正面表情回应) | +2 |
| PR 上有新评论 | +1 |
| 有与此 PR 关联的活跃讨论帖 | +1 |
| 草稿 PR | -1 |
| 超过 7 天没有活动 | -2 |
讨论优先级评分
| 信号 | 分数 |
|---|---|
| 用户被 @提及 | +3 |
| 活跃度高(24 小时内有 10 条或更多评论) | +2 |
| 与用户负责的 Issue/PR 关联 | +1 |
| 超过 7 天没有活动 | -1 |
分析发现的置信度等级
为所有瓶颈发现、健康评分扣分项和异常检测结果标注置信度。报告中的每项发现都必须包含置信度等级。
| 等级 | 适用情况 | 对报告的影响 |
|---|---|---|
| 高 | 有多个相互印证的信号,且已明确观察到(例如,本周 CI 已失败 5 次,并有日志证实) | 将其作为事实报告;建议采取补救措施 |
| 中 | 由单一来源发现,可能存在问题(例如,PR 已打开 14 天,但作者可能正在休假) | 将其作为发现报告;建议调查 |
| 低 | 可能存在某种趋势,需要人工审核(例如,开发速度似乎较低,但可能是季节性因素) | 标记为观察结果;不要从评分中扣分 |
报告中的置信度标签格式
| Finding | Severity | Confidence | Recommendation |
|---------|----------|-----------|----------------|
| 3 PRs stale >14 days | High | **High** | Assign reviewers or close |
| Velocity 40% below 4-week avg | Medium | **Medium** | Verify - may be holiday period |
| Issue activity spike on Fridays | Low | **Low** | Monitor for 2 weeks before acting |
变化追踪
针对之前的报告重新运行分析时,为每项发现标注变化状态:
| 状态 | 定义 |
|---|---|
| 已修复 | 曾出现在之前的报告中;现在已不再存在 |
| 新增 | 未出现在之前的报告中;现在出现 |
| 持续存在 | 从之前的报告中延续至今,未发生变化 |
| 回退 | 之前已修复,但现在再次出现 |
变化报告章节格式
## Changes Since Last Report ({previous date})
| Change | Finding | Details |
|--------|---------|---------|
| Fixed | 3 stale PRs resolved | Team cleared the backlog |
| New | CI failing on main | Build broke in last 24h |
| Persistent (#3) | Velocity 30% below baseline | Third consecutive week |
| Regressed | Security alert reopened | lodash advisory re-filed |
**Progress:** {N} fixed, {M} new, {P} persistent, {Q} regressed
**Score change:** {current_score} ({+/-N} from {previous_score})
升级规则
如果某项发现连续 3 份或更多报告持续存在,则升级处理:
升级处理: [{Finding}] 已连续出现在 {N} 份报告中。建议通过团队讨论或明确分配负责人来解决此问题。
开发速度指标
| 指标 | 公式 | 健康 | 警告 | 严重 |
|---|---|---|---|---|
| PR 合并率 | 每周合并的 PR 数量 | >3/周 | 1-3/周 | <1/周 |
| Issue 关闭率 | 每周关闭的 Issue 数量 | >5/周 | 2-5/周 | <2/周 |
| 评审周转时间 | PR 打开到首次评审的平均小时数 | <24 小时 | 24-72 小时 | >72 小时 |
| Issue 响应时间 | 团队首次回复前的平均小时数 | <8 小时 | 8-48 小时 | >48 小时 |
| 过期 PR 占比 | 打开超过 14 天的 PR 数量 / 所有未关闭 PR 数量 | <10% | 10-30% | >30% |
| CI 可靠性 | 通过的运行次数 / 总运行次数(7 天) | >95% | 80-95% | <80% |
贡献者指标
| 指标 | 公式 | 说明 |
|---|---|---|
| PR 提交比率 | 提交数 / 已合并 PR 数 | 比率高 = PR 规模大,可考虑拆分 |
| 评审覆盖率 | 由他人评审的 PR 数 / 已合并 PR 总数 | 比率低 = 单个贡献者形成瓶颈 |
| 首次贡献者比例 | 新贡献者数 / 活跃贡献者总数 | 社区健康增长的信号 |
| 贡献者留存率 | 上月和本月均活跃的人数 / 上月活跃人数 | 参与度健康状况 |
| 公交车因子 | 离开后会导致 50% 以上提交中断的最少贡献者人数 | <3 表示风险很高 |
瓶颈类别
| 类别 | 信号 | 示例发现 |
|---|---|---|
| 评审瓶颈 | PR 打开时间长、等待评审的 PR 超过 3 天 | “4 个 PR 等待评审超过 3 天——请指派评审者或重新分配” |
| CI 瓶颈 | 频繁失败、运行时间长 | “测试套件平均耗时 45 分钟——比 4 周平均值慢 2 倍” |
| 停滞工作 | 超过 14 天没有活动的 Issue/PR | “7 个 Issue 打开超过 30 天且近期没有评论” |
| 知识集中 | 80% 以上的提交来自一名贡献者 | “4 个核心模块中有 3 个只有一名贡献者——公交车因子为 1” |
| 响应延迟 | 新 Issue 的首次响应平均耗时超过 24 小时 | “首次响应平均耗时:38 小时——社区成员可能会觉得缺少支持” |
| 安全债务 | 未解决且打开超过 7 天的 Dependabot 警报 | “2 个严重警报已打开 12 天” |
| 发布拥堵 | 超过 10 个已合并但尚未发布的 PR | “11 个已合并的 PR 等待发布——请协调发布时间” |
趋势分类
| 趋势 | 定义 |
|---|---|
| 改善中 | 得分比上一份报告提高 5 分以上 |
| 稳定 | 得分与上一份报告相差不超过 5 分 |
| 下降中 | 得分比上一份报告降低 5 分以上 |
| 恢复中 | 连续 2 份或以上报告呈下降趋势后,得分有所提高 |
| 新增 | 没有可供比较的上一份报告 |
记分卡输出格式
单个仓库
## Repository Health Score
| Metric | Value |
|--------|-------|
| Repo | [owner/repo](url) |
| Score | {0-100} |
| Grade | {A-F} |
| Trend | {Improving / Stable / Declining} |
| Open Security Alerts | {count} |
| Stale PRs (>14 days) | {count} |
| CI Reliability (7-day) | {%} |
| Unanswered @mentions | {count} |
多仓库记分卡
## Repository Health Scorecard
| Repo | Score | Grade | Trend | Critical Issues | Notes |
|------|-------|-------|-------|-----------------|-------|
| owner/repo-a | 88 | B | Improving | 0 | |
| owner/repo-b | 54 | C | Declining | 1 | Security alert unresolved |
| owner/repo-c | 22 | F | Stable | 3 | Review bottleneck + stale PRs |
| **Average** | **54.7** | **C** | - | **4** | |
冲刺与迭代指标
配置项目看板后,跟踪冲刺指标:
| 指标 | 公式 |
|---|---|
| 冲刺完成率 | 已完成项数 / 冲刺项目总数 x 100 |
| 延续率 | 移至下一冲刺的项目数 / 计划项目数 |
| 周期时间 | 从“In Progress”到“Done”的平均天数 |
| 吞吐量 | 每个冲刺完成的项目数 |
| 阻塞率 | 处于“Blocked”状态的项目数 / 进行中的项目总数 |
评论
支持 Markdown