gitlink-cli/skills/gitlink-workflow/references/workflow-community-ops.md

207 lines
6.3 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.

# Workflow: Community Ops社区运营自动化
> **前置条件:** 先阅读 [`../../gitlink-shared/SKILL.md`](../../../gitlink-shared/SKILL.md) 了解认证、全局参数和安全规则。
> **AI Agent 工作流**:此工作流专为 AI Agent 设计,用于自动化社区运营。
AI Agent 自动完成社区运营任务,包括 Issue 分类、负责人分配、周报生成、Release Notes 发布。
## 工作流概述
Community Ops 工作流自动化社区运营的四个核心环节Issue 分析 → 负责人分配 → 周报生成 → Release Notes 发布。
## 适用场景
- **Issue 管理**:自动分类和分配新 Issue
- **周报生成**:汇总本周数据生成社区周报
- **发版管理**:生成 Release Notes 并发布
- **定期运营**:每周/每月定期执行社区运营
## 触发词
- "社区运营" / "community ops"
- "周报" / "weekly report"
- "发版" / "release notes"
- "Issue 分类" / "issue triage"
## 参数
| 参数 | 必填 | 说明 |
|------|------|------|
| `--owner` | 否 | 仓库所有者(自动从 git remote 解析) |
| `--repo` | 否 | 仓库名称(自动从 git remote 解析) |
| `--weeks-ago` | 否 | 生成 N 周前的周报(默认 0 = 本周) |
| `--dry-run` | 否 | 预览模式,不执行写入操作 |
## 工作流步骤
### 阶段 1Issue 自动分类
**步骤 1.1** — 获取 open issues
```bash
gitlink-cli issue +list --owner {OWNER} --repo {REPO} --state open --limit 100 --format json
```
**步骤 1.2** — 分类规则:
| 类型 | 标签 | 关键词 |
|------|------|--------|
| Bug | `bug` | bug, error, crash, fault, fix |
| Feature | `feature` | feature, enhancement, add, support, request |
| Question | `question` | how, question, help |
| Docs | `documentation` | doc, readme, guide, tutorial, example |
**步骤 1.3** — 添加标签:
```bash
gitlink-cli issue +label-add --owner {OWNER} --repo {REPO} --number {ISSUE_ID} --labels {LABEL}
```
### 阶段 2负责人分配基于贡献度 AHP 评分)
**引用 [`workflow-contributor-growth.md`](workflow-contributor-growth.md) 的 AHP 评分模型**
负责人分配基于贡献者的 AHP 评分,优先分配给贡献度高的成员。
**步骤 2.1** — 收集数据:
```bash
# 获取仓库成员
gitlink-cli repo +members --owner {OWNER} --repo {REPO} --limit 50 --format json
# 获取 merged PR统计贡献
gitlink-cli pr +list --owner {OWNER} --repo {REPO} --state merged --limit 100 --format json
# 获取 closed Issues统计参与
gitlink-cli issue +list --owner {OWNER} --repo {REPO} --state closed --limit 100 --format json
```
**步骤 2.2** — 计算每个成员的 AHP 分数:
| 维度 | 权重 | 计算方式 |
|------|------|----------|
| Issues Created | 15% | 该成员创建的 Issue 数 / 最大值 |
| PRs Merged | 25% | 该成员合并的 PR 数 / 最大值 |
| Code Changes | 30% | 该成员代码变更行数 / 最大值 |
| Issue Comments | 15% | 该成员评论数 / 最大值 |
| Team Member | 15% | 是成员=1非成员=0 |
```
Score = NI×15 + NM×25 + NL×30 + NC×15 + MS×15
```
**步骤 2.3** — 筛选待分配 Issue 并分配:
```bash
# 只分配 Bug 和 Feature 类型的 Issue
# Bug → 标签含 "bug"/"缺陷"
# Feature → 标签含 "feature"/"功能"
# 按分数从高到低排序成员
# Bug优先分配给最高分成员确保快速解决
# Feature按分数轮流分配鼓励参与
# 分配命令
gitlink-cli issue +batch-assign --owner {OWNER} --repo {REPO} --numbers {ISSUE_NUMBERS} --assignee {LOGIN}
```
**分配策略**
- Bug 类型:优先分配给贡献度最高的成员(快速响应)
- Feature 类型:按贡献度轮流分配(鼓励更多人参与)
- 成员不足时用 Round-robin 补充
### 阶段 3周报生成
**步骤 3.1** — 收集数据:
```bash
# Closed issues
gitlink-cli issue +list --owner {OWNER} --repo {REPO} --state closed --limit 100 --format json
# Merged PRs
gitlink-cli pr +list --owner {OWNER} --repo {REPO} --state merged --limit 100 --format json
```
**步骤 3.2** — 周报模板:
```markdown
# Community Weekly Report: {WEEK_START} ~ {WEEK_END}
## Summary
- New Issues: **{NEW_COUNT}**
- Closed Issues: **{CLOSED_COUNT}**
- Merged PRs: **{MERGED_COUNT}**
## Issue Classification
| Type | Count |
|------|-------|
| Bug | {BUG_COUNT} |
| Feature | {FEATURE_COUNT} |
| Question | {QUESTION_COUNT} |
| Docs | {DOCS_COUNT} |
## Highlights
- Auto-classified and labeled {TOTAL_CLASSIFIED} issues
- Assigned responsible persons for bug and feature issues
---
*Auto-generated by gitlink-cli community-ops workflow*
```
**步骤 3.3** — 发布到 Wiki
```bash
gitlink-cli wiki +create --owner {OWNER} --repo {REPO} --title "{REPORT_TITLE}" --content "{REPORT_BODY}"
```
### 阶段 4Release Notes 生成
**引用 [`../workflow-release-notes.md`](workflow-release-notes.md)**
Release Notes 的生成遵循 Release Notes 工作流的规范:
1. **收集数据**:获取 commits、merged PR、closed Issue
2. **分类整理**:按类型归类(新功能/Bug修复/改进/破坏性变更)
3. **生成发布**:套用模板生成 Notes创建 Release
**快捷命令**
```bash
gitlink-cli release +create --tag {TAG} --name "{NAME}" --body "{NOTES}"
```
## 完整流程图
```
Issue 分类 → 负责人分配 → 周报生成 → Release Notes
↓ ↓ ↓ ↓
添加标签 API PATCH Wiki 发布 Release 创建
```
## 使用示例
### AI 交互式
用户说:"帮我跑一下社区运营"
AI 应该:
1. 确认 owner/repo自动从 git remote 解析或询问用户)
2. 依次执行四个阶段
3. 展示每阶段的结果
4. 询问是否需要调整
## 注意事项
- Issue 分类基于关键词匹配,可能不准确,建议人工审核
- 负责人分配只针对 Bug 和 Feature 类型
- 周报数据基于时间范围筛选,不是所有 open issues
- Release Notes 生成引用 changelog 工作流的规范
## References
- [workflow-release-notes](workflow-release-notes.md) — Release Notes 生成
- [workflow-issue-triage](workflow-issue-triage.md) — Issue 分类详情
- [gitlink-issue](../../gitlink-issue/SKILL.md) — Issue 操作
- [gitlink-wiki](../../gitlink-wiki/SKILL.md) — Wiki 操作
- [gitlink-release](../../gitlink-release/SKILL.md) — Release 操作