docs(workflows): 移除 zhangqing 任务三脚本产物,改走编排 Skill 路线

按任务三"全部是 Markdown 文档(编排 Skill),不写 Go 代码、不写 shell 脚本"的核心原则:
- 删除 reproduce.sh 及 payload-v0.2.0-beta.2.json
- 同步修订 README.md 与 agent-dialogue-triggers.md 中对脚本的引用
远端 GitLink 已发布的 Release/Issue/Label/评论不受影响(脚本写入早在 2026-06-29 落地)。
下一步用编排 Skill(SKILL.md)串联任务二子 Skill 实现 ①⑤⑦ 工作流。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
zhangqing 2026-07-02 19:14:55 +08:00
parent e075c82f52
commit 82ff856e46
4 changed files with 1 additions and 206 deletions

View File

@ -31,19 +31,12 @@
| `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]`(写入)段,评委可选择只跑只读段验证流程。
复现方式见 [`agent-dialogue-triggers.md`](agent-dialogue-triggers.md):在 Claude Code 里粘贴触发语,让 Agent 加载任务二的 Skill 来串联执行 ①⑤⑦ 三个工作流,把对话过程截图即为 PDF 要求的「Agent 对话记录」产物PDF「正确做法」明确Agent 对话记录是首要产物)。
---

View File

@ -117,13 +117,3 @@ gitlink-cli.exe 在 C:/Users/Lenovo/Desktop/gitlink-cli/ 目录下,已 auth lo
3. **命令调用**Agent 调 gitlink-cli 的命令行(带参数)
4. **真实写入回执**:服务器返回的 `ok:true` / `id` / `version_id`
5. **网页验证**:复制返回的 URL 到浏览器打开看到真实效果
---
## 与 reproduce.sh 的关系
| 产物 | 角色 | 适合谁看 |
|------|------|---------|
| **Agent 对话记录**(本文档触发的) | 首要产物,演示"Skill 驱动 Agent" | 评委看过程 |
| `reproduce.sh` | 辅助产物,纯命令复现 | 评委验结果 |
| 3 份执行报告 | 落地证据,含 Skill 蓝图对照 | 评委查细节 |

View File

@ -1,7 +0,0 @@
{
"tag_name": "v0.2.0-beta.2",
"name": "v0.2.0 Beta 2 - 任务三交付补强(预发布)",
"body": "> 本版本为 **v0.2.0-beta.1 的补强预发布**。在 beta.1 基础上补充「Skill 蓝图对照」与「Agent 对话触发语」两类交付物,验证 PDF「Skill 作为设计蓝图、Agent 对话作为首要产物」的要求。\n>\n> 正式版 v0.2.0 将在任务三 7 个工作流全部完工后由整合者发布。\n\n## v0.2.0 Beta 2 — 任务三交付补强版(预发布)\n\n本版本是 beta.1 的迭代补强,重点回答 PDF「正确做法」对任务三的核心要求**Skill 不是摆设,是真正驱动 Agent 执行的设计蓝图Agent 对话记录是首要产物,脚本是辅助。**\n\n### 📚 文档 · Skill 蓝图对照补强\n\n- docs(workflows): zhangqing 任务三 ①⑤⑦ 三份执行报告各新增「Skill 蓝图对照」段,**逐动作引用 SKILL.md 行号**,证明每步执行都严格按蓝图落地\n- docs(workflows): README 新增「Skill 作为设计蓝图」总览表,集中展示 9 个执行动作到 SKILL.md 行号的映射\n- docs(workflows): 新增 `agent-dialogue-triggers.md` — 给评委的 Agent 对话触发语,含 ①⑤⑦ 三个工作流的单条/分步触发语,演示 Skill 自动加载\n\n### 🎯 覆盖的 Skill 蓝图行号映射\n\n| 工作流 | SKILL.md 蓝图位置 |\n|--------|------------------|\n| ① 步骤 1 分类 | `gitlink-issue-triage/SKILL.md` 工作流 1第 54-117 行)|\n| ① 步骤 3 周报 | `gitlink-insight/SKILL.md` 工作流 2第 116-166 行)|\n| ① 步骤 4 发版 | `gitlink-release-auto/SKILL.md` 一/二/三(第 32-189 行)|\n| ⑤ 取数 + 发奖 | `gitlink-insight/SKILL.md` 工作流 3第 169-203 行)+ `gitlink-issue-triage` 工作流 1第 80-117 行)|\n| ⑦ 识别 + 引导 | `gitlink-onboarding/SKILL.md` 工作流 1第 50-95 行)+ 工作流 2第 99-145 行)|\n\n### 🤝 贡献者\n\n感谢以下贡献者参与本版本开发@zhangqing\n",
"target_commitish": "master",
"prerelease": true
}

View File

@ -1,181 +0,0 @@
#!/usr/bin/env bash
# ============================================================
# 任务三 zhangqing 工作流可复现脚本(① ⑤ ⑦)
# ============================================================
# 用法:
# cd <path-to>/gitlink-cli
# bash reproduce.sh
#
# 前置:
# 1. gitlink-cli.exe 已构建并在 PATH 或当前目录
# 2. 已运行 gitlink-cli auth login 登录token 存 keychain
# 3. 当前账号对 ylly/gitlink-cli 有 Manager 权限
#
# 注意:脚本含写入操作(发版/建 label/建 Issue/发评论),
# 评委可选择只跑只读段(标注 [READ]),跳过写入段(标注 [WRITE])。
# ============================================================
set -e
OWNER=ylly
REPO=gitlink-cli
CLI="./gitlink-cli.exe"
WORKDIR="$(mktemp -d)"
echo "工作目录: $WORKDIR"
# ============================================================
# 工作流 ① 社区运营自动化
# ============================================================
echo ""
echo "========================"
echo " 工作流 ① 社区运营自动化"
echo "========================"
# --- [READ] 步骤1列出未分类 Issue ---
echo "[①-1] 列出开放 Issue..."
$CLI issue +list --owner $OWNER --repo $REPO --state open --format json > "$WORKDIR/issues_open.json"
# --- [READ] 步骤2查 assigners演示识别平台限制---
echo "[①-2] 查 assigners 候选已知返回空——GitLink 平台限制)..."
$CLI issue +assigners --owner $OWNER --repo $REPO --format json > "$WORKDIR/assigners.json" || true
# --- [READ] 步骤3采集周报数据 ---
echo "[①-3] 采集周报数据..."
$CLI issue +list --owner $OWNER --repo $REPO --state closed --format json > "$WORKDIR/issues_closed.json"
$CLI pr +list --owner $OWNER --repo $REPO --state merged --format json > "$WORKDIR/prs_merged.json"
$CLI release +list --owner $OWNER --repo $REPO --format json > "$WORKDIR/releases.json"
# --- [WRITE] 步骤4发版 v0.2.0-beta.1(预发布)---
echo "[①-4] 生成 Release Notes 并发版WRITE..."
PYTHONIOENCODING=utf-8 python <<PYEOF
import json
body = """## v0.2.0 Beta 1 - 智能运营能力升级版(预发布)
### 新功能 · Skills 智能套件
- gitlink-issue-triage / gitlink-release-auto / gitlink-commit-quality
- gitlink-code-review / gitlink-insight / gitlink-compliance
- 文档智能维护 + 新人引导
### 新功能 · Shortcut 命令扩展
- wiki / label / notification / member / milestone / compare / pr / webhook / repo / issue
- api --body-file解决 Windows 中文编码)
### Bug 修复
- notification / issue --label / wiki gateway / label path / pr closed time
"""
payload = {
"tag_name": "v0.2.0-beta.1",
"name": "v0.2.0 Beta 1 - 任务三阶段版(预发布)",
"body": body,
"target_commitish": "master",
"prerelease": True,
}
with open(r"$WORKDIR/release_payload.json", "w", encoding="utf-8") as f:
json.dump(payload, f, ensure_ascii=False)
PYEOF
MSYS_NO_PATHCONV=1 $CLI api POST /$OWNER/$REPO/releases --body-file "$WORKDIR/release_payload.json" --format json
# 验证发版
echo "[①-4-verify] 验证发版..."
$CLI release +list --owner $OWNER --repo $REPO --format json > "$WORKDIR/releases_after.json"
# ============================================================
# 工作流 ⑤ 贡献者成长体系
# ============================================================
echo ""
echo "========================"
echo " 工作流 ⑤ 贡献者成长体系"
echo "========================"
# --- [READ] 步骤1采集贡献数据 ---
echo "[⑤-1] 采集贡献者数据..."
git log --format="%an" | sort | uniq -c | sort -rn > "$WORKDIR/commits.txt"
# --- [READ] 步骤2生成排行榜见 contributor_leaderboard.md---
echo "[⑤-2] 排行榜已生成 → 见交付包 contributor_leaderboard.md"
# --- [WRITE] 步骤3a创建 3 个徽章 label ---
echo "[⑤-3a] 创建 3 个徽章 labelWRITE..."
PYTHONIOENCODING=utf-8 python <<PYEOF
import json
for i, (name, color) in enumerate([
("星级贡献者", "#FFD700"),
("活跃贡献者", "#FF6B35"),
("贡献者", "#87C95F"),
]):
with open(r"$WORKDIR/label_$i.json", "w", encoding="utf-8") as f:
json.dump({"name": name, "color": color}, f, ensure_ascii=False)
PYEOF
for i in 0 1 2; do
MSYS_NO_PATHCONV=1 $CLI api POST /$OWNER/$REPO/labels --body-file "$WORKDIR/label_$i.json" --format json
done
# --- [WRITE] 步骤3b创建颁奖 Issue ---
echo "[⑤-3b] 创建颁奖 IssueWRITE..."
PYTHONIOENCODING=utf-8 python <<PYEOF
import json
body = "完整排行榜见 contributor_leaderboard.md"
payload = {
"subject": "🏆 v0.2.0-beta.1 贡献者排行榜公布",
"description": body,
"priority_id": 2,
"done_ratio": 0, # 关键:必须传,否则 MySQL 报错
"issue_tag_ids": [394180], # 星级贡献者 label ID需先用 label +list 拿)
}
with open(r"$WORKDIR/issue_award.json", "w", encoding="utf-8") as f:
json.dump(payload, f, ensure_ascii=False)
PYEOF
MSYS_NO_PATHCONV=1 $CLI api POST /$OWNER/$REPO/issues --body-file "$WORKDIR/issue_award.json" --format json
# ============================================================
# 工作流 ⑦ 新人全流程保姆
# ============================================================
echo ""
echo "========================"
echo " 工作流 ⑦ 新人全流程保姆"
echo "========================"
# --- [READ] 步骤1演示邀请能力 ---
echo "[⑦-1] 演示 member 邀请能力..."
$CLI member +list --owner $OWNER --repo $REPO --format json > "$WORKDIR/members.json"
$CLI member +invite-link --owner $OWNER --repo $REPO --format json > "$WORKDIR/invite.json"
# --- [READ] 步骤2扫描 + 识别 good first issue ---
echo "[⑦-2] good first 识别AI 评估每个 Issue..."
$CLI issue +list --owner $OWNER --repo $REPO --state open --format json > "$WORKDIR/open_issues.json"
echo " → onboarding Skill 评估:现有 #8/#13/#14 good first 标记合理,无遗漏"
# --- [WRITE] 步骤3发引导评论到 good first Issue ---
echo "[⑦-3] 发个性化引导评论到 #8/#13/#14WRITE..."
PYTHONIOENCODING=utf-8 python <<PYEOF
import json
comments = {
8: "👋 欢迎贡献!任务:补 wiki 命令使用示例。入手README.zh-CN.md + shortcuts/wiki/wiki.go",
13: "👋 欢迎贡献!任务:补 Windows go build 说明。入手:参考 Makefile + scripts/build-npm.sh",
14: "👋 欢迎贡献!任务:补 wiki +list 字段说明。入手:跑 wiki +list --format json 拿真实数据",
}
for n, c in comments.items():
with open(rf"$WORKDIR/comment_{n}.json", "w", encoding="utf-8") as f:
json.dump({"notes": c}, f, ensure_ascii=False)
PYEOF
# 关键journals endpoint 必须 /v1 前缀,否则 404
for n in 8 13 14; do
MSYS_NO_PATHCONV=1 $CLI api POST /v1/$OWNER/$REPO/issues/$n/journals --body-file "$WORKDIR/comment_$n.json" --format json
done
# --- [READ] 步骤4通知系统 ---
echo "[⑦-4] 查看通知系统..."
$CLI notification +list --owner zhangqing23 --limit 10 --format json > "$WORKDIR/notifs.json"
# --- [READ] 步骤5跟踪首次贡献 ---
echo "[⑦-5] 跟踪首次贡献(数据已在 notifs.json + prs_merged.json..."
echo " → ZxR123-Z: 加入(1月前) → 提PR(2天前) → merged(2天前) → 完成首次贡献"
echo ""
echo "========================"
echo " 全部完成"
echo "========================"
echo "产物在: $WORKDIR/"
echo "公开可见成果:"
echo " - Release v0.2.0-beta.1 (version_id=2218)"
echo " - Issue #17 颁奖 + 3 个徽章 label (394180/394181/394182)"
echo " - #8/#13/#14 各 1 条引导评论"