diff --git a/skills/gitlink-standup/SKILL.md b/skills/gitlink-standup/SKILL.md new file mode 100644 index 0000000..7f6e635 --- /dev/null +++ b/skills/gitlink-standup/SKILL.md @@ -0,0 +1,85 @@ +--- +name: gitlink-standup +version: 1.0.0 +description: "个人/团队日报周报:汇总成员的提交、Issue、PR、版本发布活动,按类型统计生成团队同步日报/周报。当用户提到「日报」「周报」「standup」「团队同步」「某人最近做了什么」「成员活动」「team report」时触发。" +metadata: + requires: + bins: ["gitlink-cli"] + optional_bins: ["python"] + cliHelp: "gitlink-cli user --help" +--- + +# gitlink-standup(个人/团队日报周报) + +**CRITICAL — 开始前先阅读 [`../gitlink-shared/SKILL.md`](../gitlink-shared/SKILL.md),其中包含认证、权限处理和 API 注意事项。** +**CRITICAL — GitLink 操作只能用 `gitlink-cli`。禁止用 `gh`(GitHub CLI)操作 GitLink 资源。** +**CRITICAL — 本技能全程只读,仅统计公开活动。** + +> **前置条件:** 先阅读 [`../gitlink-shared/SKILL.md`](../gitlink-shared/SKILL.md)。 + +## 何时使用本技能 + +- 团队每日/每周同步,需要汇总成员近期做了什么 +- 用户问「@某人最近在忙什么」「这周团队有哪些活动」 +- 生成个人工作日报/周报 + +## 何时不使用 + +- 项目级健康度/协作分析 → 用 `gitlink-insight` / `gitlink-health` +- 单个仓库的 Issue/PR 列表 → 用 `gitlink-issue` / `gitlink-pr` + +## 能力概览 + +| 能力 | 说明 | +|------|------| +| 活动汇总 | 按 commit / Issue / PR / 版本发布分类统计 | +| 多成员 | 一次汇总整个团队 | +| 样例展示 | 每类活动展示代表性标题 | + +## 工作流:生成日报/周报 + +### 方式 A:配套脚本(推荐) + +```bash +# 单个成员 +python scripts/standup.py --user wbtiger + +# 整个团队 +python scripts/standup.py --users wbtiger,wangyue789 --period 周 + +# JSON 输出 +python scripts/standup.py --user wbtiger --format json +``` + +参数说明: + +| 参数 | 类型 | 必填 | 说明 | +|------|------|:----:|------| +| `--user` | string | 是* | 单个成员 login(*或 `--users`) | +| `--users` | string | 否 | 多个成员 login,逗号分隔 | +| `--limit` | int | 否 | 每人采集的活动条数上限,默认 50 | +| `--period` | string | 否 | 周期标注(如 日 / 周) | +| `--format` | string | 否 | `markdown`(默认)或 `json` | +| `--output` | string | 否 | 输出文件 | + +### 方式 B:用 gitlink-cli 命令 + +```bash +# 查看用户信息 +gitlink-cli user +info --login wbtiger --format json + +# 用户动态(Raw API) +gitlink-cli api GET /users/wbtiger/project_trends --query 'page=1&limit=50' --format json +``` + +## API 注意事项 + +- 活动数据来自 `users/:login/project_trends`,`action_time` 为相对时间(如"3天前"), + 因此本技能按活动条数与类型汇总,而非精确时间区间过滤。 +- 仅统计公开活动;私有仓库活动不在其中。 + +## References + +- [api-reference.md](references/api-reference.md) — 采集接口与字段 +- [activity-types.md](references/activity-types.md) — 活动类型说明 +- [gitlink-shared](../gitlink-shared/SKILL.md) — 认证、全局参数、安全规则 diff --git a/skills/gitlink-standup/references/activity-types.md b/skills/gitlink-standup/references/activity-types.md new file mode 100644 index 0000000..71a030b --- /dev/null +++ b/skills/gitlink-standup/references/activity-types.md @@ -0,0 +1,24 @@ +# 活动类型说明 + +GitLink 用户动态(project_trends)的 `trend_type` 字段取值与本技能的呈现映射: + +| trend_type | 含义 | 报告标签 | +|------------|------|----------| +| CommitLog | 代码提交 | 💻 代码提交 | +| Issue | 创建/更新 Issue | 🐛 Issue | +| PullRequest | 创建/合并/关闭 PR | 🔀 合并请求 | +| VersionRelease | 版本发布 | 🏷️ 版本发布 | + +未识别的类型按原值展示。 + +## 汇总逻辑 + +- 对每个成员,按 `trend_type` 统计活动条数。 +- 每类活动保留最多 5 条代表性标题(取 `name` 首行,截断 70 字符)。 +- 多成员时逐一汇总并合计总活动数。 + +## 适用场景 + +- **个人日报**:`--user `,看某人最近做了什么。 +- **团队周报**:`--users a,b,c --period 周`,团队同步会前快速生成。 +- **管理视角**:观察成员活动类型分布(偏开发 / 偏协作 / 偏发版)。 diff --git a/skills/gitlink-standup/references/api-reference.md b/skills/gitlink-standup/references/api-reference.md new file mode 100644 index 0000000..7a8c769 --- /dev/null +++ b/skills/gitlink-standup/references/api-reference.md @@ -0,0 +1,47 @@ +# gitlink-standup API 参考 + +> **前置条件:** 先阅读 [`../../gitlink-shared/SKILL.md`](../../gitlink-shared/SKILL.md)。 + +本技能全程只读。 + +## 采集的接口 + +### 用户动态 + +``` +GET /users/:login/project_trends.json?page=&limit= +``` + +返回 `project_trends[]`,使用字段: + +| 字段 | 说明 | +|------|------| +| `trend_type` | 活动类型:CommitLog / Issue / PullRequest / VersionRelease | +| `action_type` | 动作描述(如"创建了代码提交(Commit)") | +| `action_time` | 相对时间(如"3天前") | +| `name` | 活动标题(提交信息 / Issue 标题 / PR 标题) | + +### 用户信息(可选) + +``` +gitlink-cli user +info --login --format json +``` + +## 时间说明 + +`action_time` 为相对时间字符串,非精确时间戳,因此本技能按**活动条数 + 类型**汇总, +通过 `--limit` 控制采集的近期活动量,而非按精确日期区间过滤。 + +## 输出字段(JSON) + +```json +[ + {"login": "wbtiger", "total_activities": 30, + "by_type": {"CommitLog": 26, "PullRequest": 4}, + "samples": {"CommitLog": ["..."], "PullRequest": ["..."]}} +] +``` + +## 错误处理 + +某成员动态采集失败时,记为 0 活动,不中断其他成员。