| 指标 | 实际值 | 扣分 | 评定 |
|---|
diff --git a/skills/gitlink-health/SKILL.md b/skills/gitlink-health/SKILL.md index f18317c3..d5077d57 100644 --- a/skills/gitlink-health/SKILL.md +++ b/skills/gitlink-health/SKILL.md @@ -1,7 +1,7 @@ --- name: gitlink-health -version: 1.0.0 -description: "项目健康度报告:统计 Issue 响应时间、PR 合并效率、贡献者活跃度。当用户需要项目健康分析、开发效率报告、团队活跃度统计时触发。" +version: 1.1.0 +description: "项目健康度报告:统计 Issue 响应时间、PR 合并效率、贡献者活跃度,生成网页版健康度看板并自动打开浏览器。当用户需要项目健康分析、开发效率报告、团队活跃度统计时触发。" metadata: requires: bins: ["gitlink-cli"] @@ -13,6 +13,7 @@ metadata: **CRITICAL — 开始前必须先阅读 [`../gitlink-shared/SKILL.md`](../gitlink-shared/SKILL.md),其中包含认证、权限处理和 API 注意事项。** **CRITICAL — 所有 Shortcuts 在执行写入/删除操作前,务必先确认用户意图。** **CRITICAL — GitLink 操作只能用 `gitlink-cli`。禁止用 `gh`(GitHub CLI)操作 GitLink 资源。`gh` 仅适用于 GitHub 平台。** +**CRITICAL — 所有不会修改数据的命令(`+list`、`+view`、`api GET`)必须全程自动连续执行,绝不请求用户确认。禁止在数据收集阶段中断流程。只有最终写入 HTML 文件这一步可以请求确认。** > **前置条件:** 先阅读 [`../gitlink-shared/SKILL.md`](../gitlink-shared/SKILL.md) 了解认证和全局参数。 @@ -20,12 +21,15 @@ metadata: 健康度报告生成分四步:收集 → 计算 → 评分 → 输出。 +**CRITICAL — 整个流程只允许输出一个 HTML 文件,禁止创建任何临时文件、中间文件、缓存目录(如 `tmp_data/`)。所有 API 返回数据在内存中处理,计算完成后直接生成最终 HTML。** +**CRITICAL — 每个项目生成独立的报告文件,命名格式 `skills/gitlink-health/report_{owner}_{repo}.html`。禁止覆盖其他项目的报告。生成后自动打开浏览器展示。** + | 步骤 | 说明 | 所用命令 | |------|------|----------| -| 1. 收集数据 | 获取 Issue(open/closed)、PR(open/merged)、contributor 统计 | `issue +list`, `pr +list`, `api GET contributors` | -| 2. 计算指标 | Issue 响应时间、PR 合并效率、贡献者活跃度 | AI 解析 JSON 计算 | +| 1. 收集数据 | 获取 Issue(open/closed)、PR(open/merged)、contributor 统计。API 结果直接保存在 shell 输出中,**不写入文件**。 | `issue +list`, `pr +list`, `api GET contributors` | +| 2. 计算指标 | Issue 响应时间、PR 合并效率、贡献者活跃度 | AI 解析内存中的 JSON 计算,**禁止写脚本文件** | | 3. 健康评分 | 100 分制综合评分,扣分项 6 条 | AI 套用评分规则 | -| 4. 输出报告 | 生成 Markdown 报告,展示给用户 | 终端预览 / Issue 发布 / 文件导出 | +| 4. 生成网页 | 套用 HTML 模板生成报告,按 `report_{owner}_{repo}.html` 命名保存,自动打开浏览器 | 写入 `skills/gitlink-health/report_{owner}_{repo}.html`,`start` / `open` 打开 | ## 命令参考 @@ -105,8 +109,13 @@ PR 合并效率由**三类 PR** 共同决定,需计算**三段时间**: | 贡献者总数 | `contributors.author_count` | 项目总贡献者数 | | 每人 commits | `contributors.authors[].commits` | 按 commit 数排名 | | 每人增删行数 | `contributors.authors[].additions / deletions` | 代码贡献量 | +| 每人 PR 数 / Issue 数 | PR 和 Issue 列表统计 | 在 podium 和 contributor-row 中显示 | | 活跃度分级 | 综合 commits + PRs + Issues | 高频 / 正常 / 低频 | +**CRITICAL — 每个贡献者必须同时显示 PR 数量和 Issue 数量**,格式为 `N PRs · M Issues`。 +- **Podium 前三名**(冠亚季军):`N PRs · M Issues · 🔥 高频` — 带活跃度标签。 +- **其他贡献者**(contributor-row):`N PRs · M Issues` — 不带活跃度标签。 + 活跃度分级标准: | 级别 | 条件 | @@ -144,99 +153,38 @@ PR 合并效率由**三类 PR** 共同决定,需计算**三段时间**: | 30-49 | 需关注 | 🟠 | | 0-29 | 严重 | 🔴 | -## 报告模板 +## 报告输出(HTML 网页) -### 标准模板 +### 模板文件 -```markdown -# 🏥 项目健康度报告 +报告使用 `skills/gitlink-health/template.html` 作为模板。AI 将计算后的指标填入模板中的 `{{PLACEHOLDER}}` 占位符,按 `report_{owner}_{repo}.html` 格式命名(如 `report_chroe_gitlink-cli.html`),生成到 `skills/gitlink-health/` 目录下。每个项目独立文件,不覆盖其他项目报告。 -**项目**: {OWNER}/{REPO} -**报告时间**: {DATE} -**统计周期**: {PERIOD_DAYS} 天 +### 占位符说明 ---- - -## 📊 综合评分 - -| 评分 | 等级 | -|------|------| -| {SCORE}/100 | {GRADE_ICON} {GRADE} | - -| 扣分明细 | 扣分 | 结果 | -|----------|------|------| -| Issue 积压(当前 {OPEN_ISSUES} 个) | {DEDUCTION} | {ISSUE_BACKLOG_STATUS} | -| PR 积压(当前 {OPEN_PRS} 个) | {DEDUCTION} | {PR_BACKLOG_STATUS} | -| Issue 响应时间(平均 {RESPONSE_TIME}) | {DEDUCTION} | {RESPONSE_STATUS} | -| PR 合并时间(平均 {MERGE_TIME}) | {DEDUCTION} | {MERGE_STATUS} | -| 贡献者集中度(最高占比 {TOP_SHARE}) | {DEDUCTION} | {CONCENTRATION_STATUS} | -| 近期发布(最近 {LAST_RELEASE}) | {DEDUCTION} | {RELEASE_STATUS} | - ---- - -## 🐛 Issue 分析 - -| 指标 | 数值 | -|------|------| -| 全部 Issue | {TOTAL_ISSUES} | -| 已关闭 | {CLOSED_ISSUES} | -| 未关闭 | {OPEN_ISSUES} | -| 平均关闭时长 | {AVG_RESPONSE_TIME} | -| 中位数关闭时长 | {MEDIAN_RESPONSE_TIME} | - -### 按优先级分布 - -| 优先级 | 数量 | 占比 | +| 占位符 | 来源 | 说明 | |--------|------|------| -| 🔴 紧急 | {URGENT_COUNT} | {URGENT_PCT}% | -| 🟠 高 | {HIGH_COUNT} | {HIGH_PCT}% | -| 🟡 正常 | {NORMAL_COUNT} | {NORMAL_PCT}% | -| 🟢 低 | {LOW_COUNT} | {LOW_PCT}% | +| `{{OWNER}}` / `{{REPO}}` | git remote 解析 | 项目路径 | +| `{{DATE}}` | 当前日期 | 报告生成日期 | +| `{{PERIOD_DAYS}}` | 默认 30 | 统计周期天数 | +| `{{SCORE}}` | 计算得出 | 综合评分 0-100 | +| `{{SCORE_COLOR}}` | 评分映射 | #00b894(优秀) / #0984e3(良好) / #fdcb6e(一般) / #e17055(需关注) / #d63031(严重) | +| `{{SCORE_DASH}}` | 评分计算 | SVG stroke-dasharray:`(SCORE/100*377) 377` | +| `{{GRADE}}` | 评分映射 | 优秀 / 良好 / 一般 / 需关注 / 严重 | +| `{{DEDUCTION_ROWS}}` | 扣分明细 | 6 行 `
| 指标 | 实际值 | 扣分 | 评定 |
|---|