Signed-off-by: Angel123456 <Angel123456@example.org> |
||
|---|---|---|
| .. | ||
| examples | ||
| skills | ||
| README.md | ||
| architecture.html | ||
README.md
GitLink 社区运营自动化工作流
端到端社区运营自动化:新 Issue 自动分类 → 分配责任人 → 定期生成社区周报 → 自动发布 Release Notes
四个 Skill 统一编排 — 每个阶段由独立的 Skill(SKILL.md)驱动,Agent 按 Skill 步骤直接调用 CLI 执行。
gitlink-community-opsSkill 作为统一入口编排三个子 Skill。
真实运行项目: Angel123456/gitlink-cli(GitLink 平台)
运行服务器: ssh -p 39925 root@connect.westb.seetacloud.com
一、架构总览
┌─────────────────────────────────────────────────────────────────────┐
│ gitlink-community-ops (统一入口 Skill) │
│ │
│ Step 0: 环境检测 + 参数收集 (OWNER/REPO/BACKEND) │
│ ↓ │
│ Step 1: ┌──────────────────────────────────────┐ │
│ │ gitlink-issue-triage-rules (子 Skill) │ │
│ │ → Issue 自动分类 + 分配责任人 │ │
│ │ → 规则匹配 + LLM 兜底 + 写回 │ │
│ └──────────────────────────────────────┘ │
│ ↓ │
│ Step 2: ┌──────────────────────────────────────┐ │
│ │ gitlink-community-report (子 Skill) │ │
│ │ → 社区周报自动生成 + 发布 │ │
│ └──────────────────────────────────────┘ │
│ ↓ │
│ Step 3: ┌──────────────────────────────────────┐ │
│ │ gitlink-release-notes (子 Skill) │ │
│ │ → Release Notes 自动生成 + 发布 │ │
│ └──────────────────────────────────────┘ │
│ ↓ │
│ Step 4: 输出工作流总结 │
│ │
│ 底层: gitlink-cli / gh / glab / curl → 各平台 REST API │
└─────────────────────────────────────────────────────────────────────┘
四个 Skill 的职责分工:
| Skill | 职责 | 模式 | 触发词 |
|---|---|---|---|
gitlink-community-ops |
统一编排入口 | C1 (纯文档) | "社区运营自动化"、"一键社区巡检" |
gitlink-issue-triage-rules |
Issue 自动分类 + 分配责任人 | C1 (纯文档) | "分拣 Issue"、"按规则打标签" |
gitlink-community-report |
社区周报生成 + 发布 | C1 (纯文档) | "生成社区周报"、"weekly report" |
gitlink-release-notes |
Release Notes 生成 + 发布 | C1 (纯文档) | "发布 Release Notes"、"版本发布" |
关键依赖关系:
- Step 1 (分拣) 必须先完成 → Issue 才有标签 → Step 2/3 的数据才准确
- Step 2 (周报) 和 Step 3 (Release Notes) 独立于彼此,可单独执行
- 每个子 Skill 独立做 dry-run 预览 + 用户确认,不在编排层一次性全确认
独立架构图文件:
docs/architecture.html(可在浏览器中打开查看)
二、Skill 1 — gitlink-issue-triage-rules(Issue 自动分类 + 分配责任人)
执行机制
Agent 加载 gitlink-issue-triage-rules/SKILL.md,按 Step 0-7 直接调用 CLI 执行:
- Step 0:后端检测 + 认证检查
- Step 1:从 SKILL.md 内嵌 YAML 代码块加载规则(mode / rules[] / defaults)
- Step 2:列出未分拣 Issue(
gitlink-cli issue +list --state open) - Step 3:建立标签 + 成员 + 优先级 ID 映射
- Step 4:按 SKILL.md 规则评估每条 Issue(keyword 匹配 / LLM 兜底)
- Step 5:dry-run 预览(Markdown 表格,必须先看)
- Step 6:用户确认后写回(先
+view回读防清空 →api PATCH→+comment审计) - Step 7:验证写回结果(
+view)
内嵌规则 (mode: hybrid)
| 规则 ID | 类型 | 匹配关键词 | 标签 (GitLink 中文) | 优先级 |
|---|---|---|---|---|
| bug-default | bug | 错误, 失败, 崩溃, panic, crash | 缺陷 | high |
| question-default | question | 请问, 如何, 怎么, how to | 疑问 | normal |
| docs-typo | docs | typo, 文档, README | 文档 | low |
hybrid 模式:规则优先匹配,无命中时 LLM 兜底。
双语 Label 翻译
GitLink/Gitee 后端优先中文标签(缺陷/功能/疑问/文档),GitHub/GitLab 后端优先英文(bug/enhancement/question/docs)。一份规则兼容 4 个平台。
CRITICAL 约束
- 写回前必须
+view回读标题和正文(防 PATCH 清空这两个字段) - 默认 dry-run,用户确认后才执行写回
- 每次写回附带审计评论(含 matched_rules)
三、Skill 2 — gitlink-community-report(社区周报生成 + 发布)
执行机制
Agent 加载 gitlink-community-report/SKILL.md,按 Step 0-6 直接调用 CLI 执行:
| Step | 动作 | CLI 命令 |
|---|---|---|
| 0 | 后端检测 + 认证 | gitlink-cli auth status |
| 1 | 采集数据 | issue +list (open/closed) + release +list + member +list |
| 2 | 时间过滤 + 统计 | Agent 计算本周新建/关闭/标签分布/高优先级 |
| 3 | 生成周报 | 按内嵌 Markdown 模板填充 |
| 4 | dry-run 预览 | 输出完整周报内容 |
| 5 | 发布周报 | gitlink-cli issue +create --title "📊 社区周报 ..." --body <周报> |
| 6 | 验证 | 确认周报 Issue 已创建 |
周报结构
周报包含:概览(开放/关闭/新建/关闭数)、本周新建 Issue 清单、本周关闭 Issue 清单、标签分布、高优先级待办、本周 Release。
周报标识
标题前缀 📊 社区周报,便于其他 Skill 自动识别跳过(不纳入 Issue 分拣)。
四、Skill 3 — gitlink-release-notes(Release Notes 生成 + 发布)
执行机制
Agent 加载 gitlink-release-notes/SKILL.md,按 Step 0-6 直接调用 CLI 执行:
| Step | 动作 | CLI 命令 |
|---|---|---|
| 0 | 后端检测 + 认证 | gitlink-cli auth status |
| 1 | 采集数据 | issue +list (closed/open) + release +list |
| 2 | 版本号去重 + 分类 | Bug 修复 / 新功能 / 其他改进 |
| 3 | 生成 Release Notes | 按内嵌 Markdown 模板填充 |
| 4 | dry-run 预览 | 输出完整 Release Notes |
| 5 | 创建 Release | gitlink-cli release +create --name --tag --target master --body <notes> |
| 6 | 验证 | 确认 Release 已创建 |
Issue 分类逻辑
| 分类组 | GitLink/Gitee 标签 | GitHub/GitLab 标签 |
|---|---|---|
| Bug 修复 | 缺陷 | bug |
| 新功能 | 功能 | enhancement, feature |
| 其他改进 | 不属于以上两组 | 不属于以上两组 |
版本命名
默认 vYYYY.MM.DD(如 v2026.07.10)。当天已有同名 tag 时追加序号 -2、-3。用户也可指定版本号(如 v1.2.0)。
五、Skill 4 — gitlink-community-ops(统一入口)
编排逻辑
Step 0 → 环境检测 + 参数收集 (OWNER/REPO/BACKEND/PERIOD/VERSION)
Step 1 → 加载并执行 gitlink-issue-triage-rules → 分拣 Issue
Step 2 → 加载并执行 gitlink-community-report → 生成周报
Step 3 → 加载并执行 gitlink-release-notes → 发布 Release
Step 4 → 输出工作流总结
编排规则:
- 顺序执行:Step 1 必须先完成(分拣后才有标签数据供周报和 Release Notes 使用)
- 逐个确认:每个子 Skill 的写回操作需独立确认
- 上下文传递:OWNER / REPO / BACKEND 在子 Skill 间自动继承
- 容错继续:某子 Skill 失败不阻塞后续步骤
- 可选跳过:用户可只执行部分步骤
六、串联的 CLI 命令 / Skill 调用清单(≥3 ✓)
本工作流串联了 4 个 Skill + 12 类 gitlink-cli 命令:
| # | 类型 | 命令/调用 | 阶段 | 作用 |
|---|---|---|---|---|
| 1 | Skill | gitlink-issue-triage-rules | 1 | Issue 自动分类+分配 |
| 2 | Skill | gitlink-community-report | 2 | 社区周报生成+发布 |
| 3 | Skill | gitlink-release-notes | 3 | Release Notes 生成+发布 |
| 4 | Skill | gitlink-community-ops | 编排 | 统一入口,编排1-3 |
| 5 | CLI | auth status |
1/2/3 | 认证检测 |
| 6 | CLI | issue +list |
1/2/3 | 拉取 Issue 列表 |
| 7 | CLI | label +list |
1 | 标签 ID 映射 |
| 8 | CLI | member +list |
1 | 成员映射 |
| 9 | CLI | issue +view |
1 | 写回前回读 (CRITICAL) |
| 10 | CLI | api PATCH |
1 | 写回标签/优先级/责任人 |
| 11 | CLI | issue +comment |
1 | 审计评论 |
| 12 | CLI | issue +create |
2 | 发布周报 |
| 13 | CLI | release +list |
2/3 | 统计/去重 |
| 14 | CLI | release +create |
3 | 发布 Release |
七、可复现的执行方式
环境要求
- 服务器已安装
gitlink-cli并gitlink-cli auth status显示已登录 - 四个 Skill 的 SKILL.md 文件已安装到 Agent 的 skills 目录
- 目标仓库已有标签和成员
Skill 安装位置
~/.workbuddy/skills/ # WorkBuddy Agent或其他AI Agent
├── gitlink-issue-triage-rules/SKILL.md
├── gitlink-community-report/SKILL.md
├── gitlink-release-notes/SKILL.md
└── gitlink-community-ops/SKILL.md (统一入口)
# 或项目级:
<project>/.workbuddy/skills/
├── gitlink-issue-triage-rules/SKILL.md
├── gitlink-community-report/SKILL.md
├── gitlink-release-notes/SKILL.md
└── gitlink-community-ops/SKILL.md
执行方式
方式 A:WorkBuddy / Agent 对话触发
# 全流程 (一键)
"帮我跑 Angel123456/gitlink-cli 的完整社区运营工作流"
# 单阶段
"帮我分拣 Angel123456/gitlink-cli 的未分拣 Issue" → 只触发 gitlink-issue-triage-rules
"帮我生成 Angel123456/gitlink-cli 的社区周报" → 只触发 gitlink-community-report
"帮我发布 Angel123456/gitlink-cli 的 Release Notes" → 只触发 gitlink-release-notes
# 部分流程
"帮我分拣 Issue,然后生成周报" → Step 1 + Step 2
定期自动化
WorkBuddy Automation
使用 WorkBuddy 的定时自动化功能,每周一自动触发 gitlink-community-ops Skill。
八、真实运行效果
Step 1 — Issue 自动分类 (gitlink-issue-triage-rules, 2026-07-10)
Agent 按 SKILL.md 步骤执行,hybrid 模式(规则匹配 + LLM 兜底):
| Issue | 标题 | 命中规则 | 标签 | 优先级 | 责任人 |
|---|---|---|---|---|---|
| #2 | 建议支持 Markdown 格式的评论 | LLM 兜底 | 功能 | 正常 | Angel123456 |
| #5 | 建议支持 JSON 格式日志输出 | LLM 兜底 | 功能 | 正常 | Angel123456 |
| #7 | 建议支持 Markdown 格式的评论 | LLM 兜底 ⚠️(与#2重复) | 重复 | 正常 | Angel123456 |
写回方式:
gitlink-cli api PATCH,写回前先+view回读防清空,写回后+comment审计。
Step 2 — 社区周报 (gitlink-community-report, 2026-07-10)
周报标题:📊 社区周报 2026-07-10,发布为 Issue #9。
包含:概览(开放8/关闭0)、本周新建Issue清单、标签分布、高优先级待办、本周Release。
Step 3 — Release Notes (gitlink-release-notes, 2026-07-10)
版本号 v2026.07.10,记录了 Step 1-2 的社区运营改进。
Release 已创建并验证(总 Release: 2)。
九、文件清单
community-ops/
├── README.md # 本说明文档
├── SKILL.md # gitlink-issue-triage-rules Skill 指令文件
├── skills/ # Skill 文件目录
│ ├── gitlink-community-report/SKILL.md # 社区周报 Skill
│ ├── gitlink-release-notes/SKILL.md # Release Notes Skill
│ └── gitlink-community-ops/SKILL.md # 统一入口 Skill
├── logs/
│ ├── step1-issue-triage.log # Step 1 Issue 分拣日志
│ ├── step2-community-report.log # Step 2 周报日志
│ └── step3-release-notes.log # Step 3 Release Notes 日志
└── docs/
└── architecture.html # 架构图
十、安全策略
- 默认 dry-run:所有子 Skill 默认先预览,用户确认后才执行写回
- 逐个确认:每个子 Skill 的写回操作需独立确认(不在编排层一次性全确认)
- view 回读:Step 1 写回前必须
+view回读标题和正文(防清空) - 规则可审计:每次写回附带审计评论,记录命中规则和匹配方式
- 版本去重:Step 3 自动检测已有 Release,避免 tag 冲突
- 容错继续:某步骤失败不阻塞后续