GitHub 仪表盘技能
在 FlowAI / Soft Paper Workspace 视觉风格中创建单屏 GitHub 仓库分析仪表盘:暖白画布、白色圆角面板、固定左侧边栏、紧凑型 KPI 卡片、柔和色药丸标签、密集表格和低对比度细线。
资源映射
github-dashboard/
├── SKILL.md
├── example.html ← 渲染的参考仪表盘
└── references/
├── template.html ← 与动态构件兼容的 HTML 模板
├── example-data.json ← 规范化的公开 GitHub 数据结构
├── artifact-example.json ← 最小动态构件创建输入
└── provenance-example.json ← 安全来源/溯源示例
何时使用此技能
当用户请求关于单个 GitHub 仓库的仪表盘或报告时使用,例如:
- 仓库增长仪表盘
- 开源项目健康报告
- GitHub 星标/分支/贡献者分析
- 议题和拉取请求活动页面
- 维护者/贡献者仪表盘
如果用户要求可刷新、来源可审计或定时更新,则生成动态构件源文件(template.html、data.json、artifact.json、provenance.json)并遵循“动态构件”协议。如果用户只需要视觉构件,则生成一个自包含的 index.html。
工作流程
-
解析仓库范围
- 从用户请求中解析
owner/repo。 - 此 v1 技能针对单个仓库。如果要求多个仓库,请用户选择主仓库,或为每个仓库创建一个仪表盘。
- 如果缺少仓库,用一句简洁的问题询问 GitHub URL 或
owner/repo。
- 从用户请求中解析
-
收集公开 GitHub 数据
- 尽可能优先使用 GitHub CLI/API 获取公开仓库数据。
- 当前星标/分支/Watchers/打开议题数:
GET /repos/{owner}/{repo}(stargazers_count、forks_count、watchers_count、open_issues_count)。 - 贡献者:分页请求
GET /repos/{owner}/{repo}/contributors?per_page=100&page=N,按contributions降序排列,取仪表盘使用的前 N 个。如果只有第一页数据可用,则将总数标记为第一页估计值。 - 议题:使用 GitHub 搜索 API(
repo:{owner}/{repo} is:issue)获取总数,或分页请求GET /repos/{owner}/{repo}/issues?state=all并过滤掉包含pull_request字段的项。 - 拉取请求:使用 GitHub 搜索 API(
repo:{owner}/{repo} is:pr)获取总数,或分页请求GET /repos/{owner}/{repo}/pulls?state=all并通过Link头部计算页面数。 - 近期活动:合并最新的议题和拉取请求,规范化为可显示的行,预览列表限制在 5–10 条。
- 增长/增量指标:GitHub REST 不暴露完整的星标/分支历史增量。使用 GraphQL、星标事件快照、Events API(若可用),或明确标记增量为“估计/合成”并在
provenance.json中说明。 - 不存储认证令牌、原始 HTTP 信封、Cookie、速率限制头部或私有元数据。
-
规范化为仪表盘数据
- 必填
repository:name、fullName、url、description、language、license、created、lastUpdated。 - 必填
metrics:星标数、分支数、贡献者数、议题数、拉取请求数。存储可显示的总数以及小的增量或增长说明。 - 必填
contributors:前 5–8 位贡献者,包含login、avatar和contributions。 - 必填
recentActivity:可显示的行,包含title、typeText、typeClass、label、labelClass、author、authorAvatar和updated。不依赖模板条件判断进行议题/PR 切换。 - 图表数据仅在 GitHub 不提供精确历史时可为合成数据;需在 provenance 中记录转换方式。
- 必填
-
应用视觉系统
- 使用当前
DESIGN.md中的令牌(如果存在)。 - 如果没有提供设计系统,则使用
references/template.html中的 Soft Paper 默认值:#F2F2F0画布、白色卡片、#ECECEA边框、#0A0A0A墨水、Geist/Inter 字体、256px 侧边栏、48px 顶部栏、16px 卡片圆角。 - 保持颜色量少且语义清晰:绿色表示健康指标,琥珀色表示警告,蓝色表示功能/PR 标签,红色仅用于缺陷或风险。
- 使用当前
-
布局页面
- 外壳:256px 侧边栏 + 主面板,均为白色,圆角 16px,1px 细线边框。
- 顶部栏:左侧显示仓库上下文,右侧提供刷新/导出/操作按钮。
- 头部:仓库名称、描述以及日期/设置/操作行。
- KPI 条:5 张紧凑卡片,分别显示星标数、分支数、贡献者数、议题数、PR 数。
- 主网格:2fr/1fr 分割,左侧为增长图表或活动表格,右侧为顶级贡献者/健康卡片。
- 页脚:用小号浅色文字显示来源/最后更新说明。
-
编写构件
- 对于静态构件,生成一个自包含的
index.html,内联 CSS,不依赖外部 JS 库。 - 对于动态构件,生成
template.html、data.json、artifact.json和provenance.json;index.html由守护进程派生。 - 为主要区域标记稳定的
data-od-id值:sidebar、topbar、repo-header、kpi-strip、growth-chart、contributors、activity、provenance。
- 对于静态构件,生成一个自包含的
视觉规则
- 仅亮色模式。
- 桌面端 256px 固定侧边栏;窄屏上堆叠显示。
- 第一行展示 4 或 5 张 KPI 卡片。
- 所有计数使用等宽衬线数字。
- 头像为圆形,在表格和贡献者列表中大小为 28–32px。
- 表格正文 13px,列标签 11px 大写,行分隔线 1px。
- 卡片使用细线边框,阴影最多为:
0 1px 2px rgba(10,10,10,.04), 0 1px 1px rgba(10,10,10,.02)。 - 不使用渐变,除了小型工作流/仓库图标占位符。
- 不使页面看起来像 GitHub 本身。这是自定义运营仪表盘,不是 GitHub UI 克隆。
自检
- 每个指标都有来源或溯源说明。
- 不持久化任何私有数据或凭证。
- 数据标签针对具体仓库,不是占位符。
- 在 50% 缩放时屏幕仍清晰可读。
- 仪表盘每个区域最多使用一个纯黑色主要操作按钮。
- 状态标签和议题/PR 徽章为柔和色药丸,不使用饱和徽章。