gitlink-cli/examples/workflows/zhangqing-task3/README.md

135 lines
5.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# zhangqing 任务三工作流(① ⑤ ⑦)
> **任务三**:构建端到端自动化工作流
> **负责人**zhangqing
> **目标仓库**[ylly/gitlink-cli](https://gitlink.org.cn/ylly/gitlink-cli)
> **完成时间**2026-06-29
本目录演示任务三中 zhangqing 负责的 3 个端到端工作流,全部用 **任务一的 gitlink-cli 命令 + 任务二的 Skill** 串联完成,无新代码。
---
## 工作流总览
| # | 工作流 | 串联步骤 | 使用的 Skill | 公开产出 |
|---|--------|---------|-------------|---------|
| ① | 社区运营自动化 | 分类→分配→周报→发版 | issue-triage + insight + release-auto | [Release v0.2.0-beta.1](https://gitlink.org.cn/ylly/gitlink-cli/releases) |
| ⑤ | 贡献者成长体系 | 取数→排行→颁奖 | git log + issue +list + pr +list | [颁奖 Issue #17](https://gitlink.org.cn/ylly/gitlink-cli/issues/17) + 3 个徽章 label |
| ⑦ | 新人全流程保姆 | 邀请→识别→引导→通知→追踪 | onboarding | 引导评论 on #8 / #13 / #14 |
3 个工作流首尾衔接形成完整闭环:**①把任务二 7 个 Skill 发版固化 → ⑤奖励贡献者 → ⑦引导新人接力贡献**。
---
## 文件清单
| 文件 | 内容 |
|------|------|
| `README.md` | 本文件(总览 + 复现指引) |
| `01-community-ops-automation.md` | ① 社区运营自动化执行报告 |
| `05-contributor-growth.md` | ⑤ 贡献者排行榜 + 徽章授予方案 |
| `07-onboarding-nanny.md` | ⑦ 新人保姆 5 步执行报告 |
| `release-notes-v0.2.0-beta.1.md` | ① 发布的 Release Notes 全文 |
| `agent-dialogue-triggers.md` | **Agent 对话触发语**PDF 首要产物:演示 Skill 驱动 Agent |
| `reproduce.sh` | **可复现脚本**(评委照着跑) |
---
## 怎么复现
```bash
cd <gitlink-cli 仓库根目录>
# 前置:已构建 gitlink-cli.exe、已 auth login、对 ylly/gitlink-cli 有写权限
bash examples/workflows/zhangqing-task3/reproduce.sh
```
脚本标注了 `[READ]`(只读)和 `[WRITE]`(写入)段,评委可选择只跑只读段验证流程。
---
## 任务二 Skill 串联关系PDF 要求≥3 命令/Skill
| 工作流 | 串联的 Skill/命令 | 步数 |
|--------|------------------|:---:|
| ① | issue-triage → insight → release-auto | 4 |
| ⑤ | git log + issue +list + pr +list → 排行榜 → label +create + issue +create | 3 |
| ⑦ | member +invite-link → onboarding识别 + 引导评论)→ notification +list | 5 |
---
## 任务二 Skill 作为设计蓝图PDF 核心Skill = 设计蓝图)
本目录的 3 份执行报告都新增了「Skill 蓝图对照」段,**逐动作引用 SKILL.md 行号**,证明每步执行都严格按蓝图落地:
| 工作流 | 蓝图 SKILL.md 行号定位 |
|--------|----------------------|
| ① 步骤 1 分类 | `gitlink-issue-triage/SKILL.md` 工作流 1第 54-117 行),含分类规则表第 35-50 行 |
| ① 步骤 2 分配(跳过)| `gitlink-issue-triage/SKILL.md` 第 125-146 行(蓝图预判个人仓库 assigners 为空)|
| ① 步骤 3 周报 | `gitlink-insight/SKILL.md` 工作流 2第 116-166 行)|
| ① 步骤 4 发版 | `gitlink-release-auto/SKILL.md` 一/二/三(第 32-189 行),含预发布第 179-189 行 |
| ⑤ 取数 | `gitlink-insight/SKILL.md` 工作流 3第 169-203 行)|
| ⑤ 发奖 | `gitlink-issue-triage/SKILL.md` 工作流 1 Step 5-6第 80-117 行)|
| ⑦ Step 2 识别 | `gitlink-onboarding/SKILL.md` 工作流 1第 50-95 行)+ 识别标准第 31-46 行 |
| ⑦ Step 3 引导 | `gitlink-onboarding/SKILL.md` 工作流 2第 99-145 行)+ 个性化要求第 205 行 |
| ⑦ Step 5 追踪 | `gitlink-insight/SKILL.md` 工作流 3第 169-203 行)多源聚合 |
**意义**评委打开任一报告的「Skill 蓝图对照」段,可拿着 SKILL.md 行号对照检查,验证"Skill 不是摆设,是真正驱动 Agent 执行的设计蓝图"。
---
## 关键技术发现(避坑)
### 1. GitLink API 路径双轨制 ⚠
| 资源类型 | 路径前缀 | 例子 |
|---------|---------|------|
| release / label | `/owner/repo/...` | `/ylly/gitlink-cli/releases` |
| issue / journals / pulls | `/v1/owner/repo/...` | `/v1/ylly/gitlink-cli/issues/8/journals` |
混用会 404。cli 内部 `v1RepoPath()``shortcuts/issue/issue.go:14`
### 2. release +create 没有 --body-file
多行中文 markdown 用 `--body` 在 Git Bash 必乱码。改用:
```bash
MSYS_NO_PATHCONV=1 ./gitlink-cli.exe api POST /ylly/gitlink-cli/releases \
--body-file payload.json
```
### 3. 创建 issue 必须传 done_ratio
否则 MySQL 报 `Column 'done_ratio' cannot be null`。最小 payload
```json
{
"subject": "...",
"description": "...",
"priority_id": 2,
"done_ratio": 0,
"issue_tag_ids": [<label_id>]
}
```
### 4. issue create 的 issue_tag_ids 字段不生效GitLink bug
创建时传 label 数组issue 上没标签。需要创建后补:
```bash
./gitlink-cli.exe issue +update --owner <o> --repo <r> --number <n> --label <id>
```
### 5. Windows Git Bash 中文乱码根因
cli 输出 UTF-8 字节 → bash 按 GBK 解码 → 错字符 → python 转 `\uXXXX` → 再传给 cli 就把错字符写到服务器。**所有写入操作必须用 `--body-file <UTF-8文件>`**,不要 shell 拼接 JSON。
---
## 设计决策
| 决策点 | 选择 | 理由 |
|--------|------|------|
| 发版版本号 | v0.2.0-**beta.1**(预发布) | 等任务三 7 个工作流全部完工后由整合者发正式 v0.2.0,避免版本号冲突 |
| Release Notes 覆盖范围 | 仓库全部 104 个提交(含他人贡献) | 发版是仓库级动作,必须覆盖该版本全部变更,不能只写自己的 |
| ⑦ 的"新人"问题 | onboarding 主体真做,邀请段用 invite-link 演示 | 仓库无真实新人账号onboarding 核心价值(识别 + 引导)与有无新人无关 |