Install
openclaw skills install @axelhu/gitea-workflowGitea 多角色协作工作流 (issue + pr 驱动)。2 类角色:实现者(推进分配 issue + 完成后 @协调者) + 协调者(统筹所有 issue + 审阅评论 + 按计划推进阶段)。本技能只描述角色工作流,不教 Gitea API,适用于任何 Gitea 工作室(游戏/文档/开发)。
openclaw skills install @axelhu/gitea-workflow本技能定义多角色 agent + Gitea Issue 的协作模式。不讲解 Gitea API 用法(假定所有 agent 已具备),只描述角色分工 + 循环节奏 + 通讯约定 + Loop 启停。
适用范围:任何多角色 Gitea 工作室(游戏开发、文档协作、产品研发等)。
任何工作室都可以套这个模式。游戏工作室示例供参考:
| 抽象角色 | 游戏工作室示例 | 通用职责 |
|---|---|---|
| Implementer (实现者) | programmer / designer / tester / artist | 推进分配到的 issue |
| Coordinator (协调者) | producer (制作人 / team lead) | 统筹 + 审阅 + 阶段推进 |
其他示例:
- 文档协作:Implementer = 各专题作者;Coordinator = 主编
- 产品研发:Implementer = 工程师;Coordinator = PM
- 设计团队:Implementer = 设计师;Coordinator = 设计总监
每次被 cron 唤醒(默认 15-30 分钟一次)执行:
用 Gitea API 查自己仓库的 open issue 列表:
/api/v1/repos/{owner}/{repo}/issues?state=open&assignee={my-username}/api/v1/repos/{owner}/{repo}/issues?state=open + 自行 grep 标题/正文里 @my-username| 状态 | 判断依据 | 处理 |
|---|---|---|
| 未开始 | 无进度评论 | 推进:实现/写文档/画图等 |
| 进行中 | 有进度评论,未 close | 继续推进(可加评论更新状态) |
| 阻塞 | 评论或 label 显示 blocked | 在 issue 评论说明阻塞原因,@coordinator 求助(群里也 @ 一次) |
| 已完成 | 我刚 close 了 | 见步骤 3 |
| 不是我的 | assignee 不我 | 跳过 |
<issue-link> 已完成,@<coordinator-name>不发任何"还在工作"之类的中间消息。
每次被 cron 唤醒(默认 30-60 分钟一次)执行:
组织/项目名下所有仓库,open issues 列表 + 关闭时间在 [上次唤醒, 现在] 的 issues
按 repo 分组,按状态分组(未开始/进行中/阻塞/已完成)
| 来源 | 处理 |
|---|---|
| 我被 @ 的 issue 评论 | 立即回复(在 issue 里,不在群里) |
| 实现者发的"完成通知"群里消息 | 在 issue 上确认(close 或 reopen),群里简短回 ✅ |
| 阻塞通知 | 评估:开新 issue 协调/找人/换方案 |
| 纯讨论(无 @) | 不看,避免噪音 |
| 情况 | 处理 |
|---|---|
| 当前阶段所有 issue 已 close | 创建下一阶段 issue(P{N+1})+ 在群里发阶段转换通知 |
| 有未 close 但无阻塞的 issue | 催最关键的(评论 + 群里 @ 该 agent) |
| 有阻塞 issue | 评估是否能协调;不能就升级到 @老板 |
| 都没事做 | 不发任何消息,继续睡 |
只在阶段切换或异常升级时发群里消息。
| 何时 | 内容模板 |
|---|---|
| issue 完成时(close 后) | <issue-link> 已完成,@<coordinator-name> |
| 阻塞需要协调时 | <issue-link> 阻塞:[原因],@<coordinator-name> |
| 何时 | 内容模板 |
|---|---|
| 阶段切换 | P{N} 完成,进入 P{N+1} + 列新 issue 链接 |
| 严重阻塞需 @老板 | P{N} 卡住:[原因],@<老板-name> |
每个 agent 用 scripts/ 下的脚本控制自己的循环:
# 启用循环
gitea-workflow loop-on
# 停用循环(暂停 cron)
gitea-workflow loop-off
# 查看状态(当前 cron 状态 + 上次唤醒时间 + 当前 issue 计数)
gitea-workflow status
脚本具体配置(Gitea token、agent ID、cron name)由各 agent 自己配置(在
references/cron-setup.md)。 本技能只约定使用方式,不写死任何 agent 标识符。
推荐 cron(已采用):
| 角色 | 周期 | 原因 |
|---|---|---|
| Implementer | 15-30 分钟 | 检查 issue 不频繁,频率过高浪费 token |
| Coordinator | 30-60 分钟 | 审阅评论、推进项目,容许更长间隔 |
为什么不选 goal/plan:
heartbeat 可作为 cron 补充(更轻量),但不要替代:
实际使用会找最合适的:本技能以 cron 为默认实现,各 agent 可根据实际负载调整。
| 异常 | 处理 |
|---|---|
| Gitea API 返回 401 (token 失效) | 内部换 token,不在群里发(避免噪音 + 安全) |
| Gitea API 返回 5xx | 跳过本次循环,下次再说 |
| issue 卡住 >2 天 | Implementer 自动升级 → 群里 @coordinator |
| Coordinator 错过循环 >3 次 | 内部状态记一笔,下次唤醒时优先 review |
Gitea API 返回空数组 [] | 不是"0 issue" — 必须看 HTTP code + JSON message 字段 (反幻觉 fail mode) |
这样:
把这个 skill 用到非游戏工作室:
<your-org>/<your-repo> 填到 references/cron-setup.md 的 cron 配置里references/cron-setup.md 创建每个 agent 的循环message 字段skills/daily-log/ skills/memory-review/(通用 OpenClaw 技能,与本 workflow 正交)