0f96b79dba
两阶段流水线:搭建指南Markdown → JSON → UE5 Actor - 解析器:4种表格变体+范围展开+坐标表达式计算 - 配置:37种BSP资产映射+13种材质+7区域定义 - 验证:265个Actor全部通过,0错误 - Builder:UE5 Python API自动放置Actor+材质+Outliner - 报告:自动生成搭建报告Markdown Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
9.9 KiB
9.9 KiB
name, description
| name | description |
|---|---|
| gitea-collab | Gitea 协作工具 — CLI 命令速查、认证机制、Assignee 映射、标签体系、Issue/Milestone/Pipeline 操作规范、角色汇报模板 |
Gitea 协作工具
本 skill 封装 ChildHood 项目基于 Gitea 的进度管理全部实现细节。 Agent 文件只描述项目管理的逻辑(做什么),本文件描述实现细节(怎么做)。 未来若更换项目管理后端,只需替换本 skill,Agent 逻辑无需修改。
1. CLI 工具
工具路径: node scripts/gitea.js <command> [subcommand] [options]
API 封装: scripts/gitea-api.js(GiteaAPI 类,HTTP REST 调用)
服务端: micecola.top:8418,仓库 starmen1265/ChildHood
--json 标志: 所有命令支持 --json 输出纯 JSON,供脚本解析。
2. 认证机制
通过 --role <角色> 参数自动从 scripts/.gitea-tokens.json 读取对应 Token,无需手动传 GITEA_TOKEN。
| 角色 | --role 值 |
适用 Agent |
|---|---|---|
| 策划 | designer |
game-designer |
| 程序 | dev |
game-dev |
| 美术 | artist |
(暂无独立 Agent) |
| PM | pm |
game-pm |
3. Assignee 映射
创建任务时通过 --assignees 指派给对应角色的 Gitea 用户。
| 角色 | --assignees 值 |
任务 ID 前缀 |
|---|---|---|
| 策划 | ai-designer |
D-XXX |
| 程序 | ai-programmer |
P-XXX |
| 美术 | ai-artist |
A-XXX |
| PM | ai-pm |
(管理任务) |
4. 标签体系
14 个标准标签,通过 node scripts/gitea.js label init 初始化。
status(任务状态)
| 标签 | 含义 |
|---|---|
status:backlog |
待处理 |
status:ready |
已就绪,可开始 |
status:in-progress |
进行中 |
status:blocked |
被阻塞 |
status:in-review |
审查中 |
status:done |
已完成 |
gate(质量门判定)
| 标签 | 含义 |
|---|---|
gate:execution-pass |
执行案质量门通过 |
gate:execution-fail |
执行案质量门未通过 |
gate:tech-pass |
程序设计质量门通过 |
gate:tech-fail |
程序设计质量门未通过 |
gate:art-pass |
美术资产验收门通过 |
gate:art-fail |
美术资产验收门未通过 |
gate:impl-pass |
程序实现验收门通过 |
gate:impl-fail |
程序实现验收门未通过 |
注:
pipeline:*和role:*标签已废弃并从 Gitea 上删除。如旧 Issue 上仍残留这些标签,忽略即可。
5. 命令速查
issue
# 列出 Issue(支持按 assignee 过滤)
node scripts/gitea.js --role <role> issue list --milestone <标题> [--state open|closed|all] [--labels <id,...>] [--assigned <用户名>] [--json]
# 查看 Issue 详情
node scripts/gitea.js --role <role> issue get <number> [--json]
# 创建 Issue(必须指定 assignees)
node scripts/gitea.js --role <role> issue create --title "..." --body "..." --milestone <id> --assignees <用户名,...>
# 更新 Issue
node scripts/gitea.js --role <role> issue update <number> --title "..." --body "..."
# 关闭 Issue
node scripts/gitea.js --role <role> issue close <number> [--body "关闭说明"]
# 重新打开 Issue
node scripts/gitea.js --role <role> issue reopen <number>
# 评论
node scripts/gitea.js --role <role> issue comment <number> --body "评论内容"
# 查看评论
node scripts/gitea.js --role <role> issue comments <number> [--json]
# 设置标签
node scripts/gitea.js --role <role> issue labels <number> --set <id,id,...>
# 依赖关系
node scripts/gitea.js --role <role> issue deps <number>
# 阻塞关系
node scripts/gitea.js --role <role> issue block <blocker_number> <blocked_number>
node scripts/gitea.js --role <role> issue unblock <blocker_number> <blocked_number>
milestone
# 列出里程碑
node scripts/gitea.js --role <role> milestone list [--state open|closed|all] [--json]
# 创建里程碑
node scripts/gitea.js --role <role> milestone create --title "..." --description "..."
# 更新里程碑
node scripts/gitea.js --role <role> milestone update <id> --title "..." --description "..." --due "YYYY-MM-DD"
label
# 列出标签
node scripts/gitea.js --role <role> label list [--json]
# 创建标签
node scripts/gitea.js --role <role> label create --name "..." --color "#hex"
# 初始化标准标签体系
node scripts/gitea.js --role <role> label init
pipeline
# 初始化 Pipeline Tracker Meta Issue
node scripts/gitea.js --role <role> pipeline init
# 查看 Pipeline 状态
node scripts/gitea.js --role <role> pipeline status
# 更新 Pipeline 步骤状态
node scripts/gitea.js --role <role> pipeline update <tracker_number> --step <1-7> --status "状态描述"
test
# 运行 API 连通性测试(P0 + P1)
node scripts/gitea.js test
6. 数据映射
| 概念 | Gitea 对应 | 说明 |
|---|---|---|
| 任务 (P-002) | Issue | 标题含任务 ID 前缀 |
| 版本 (v0.1) | Milestone | 版本号即里程碑标题 |
| 任务状态 | Label (status:*) |
6 种状态标签 |
| 质量门结果 | Label (gate:*) |
8 种判定标签 |
| 角色归属 | Assignee | 通过 --assignees 指派 |
| 流水线步骤 | Pipeline Tracker | Meta Issue 记录全局流水线状态 |
| 角色汇报 | Issue 评论 | 各角色在对应 Issue 下评论 |
| 审查记录 | Issue 评论(摘要+链接)+ 本地 docs/plans/reviews/ |
本地文件名格式 <任务ID>-审查记录.md |
| 任务归档 | close Issue | 不需要本地 archive 文件 |
7. 任务 ID 规范
格式:[角色前缀]-[三位数字]
| 前缀 | 角色 | 示例 |
|---|---|---|
D |
策划 (Design) | D-001 |
P |
程序 (Programmer) | P-002 |
A |
美术 (Artist) | A-003 |
每个前缀从 001 独立编号。Issue 标题需包含任务 ID 前缀。
8. Pipeline Tracker
Pipeline Tracker 是一个 Meta Issue,用于记录当前版本的全局流水线状态。
- 初始化:
pipeline init(阶段开始时执行一次) - 查看状态:
pipeline status - 更新步骤:
pipeline update <number> --step <1-7> --status "描述"
9. 角色汇报模板
各角色完成工作后,在对应 Issue 下评论汇报。
策划汇报
node scripts/gitea.js --role designer issue comment <number> --body "## 策划汇报 — YYYY-MM-DD
**任务ID**: D-XXX
**状态**: 进行中 / 已完成
**产出**: path/to/output
### 完成内容
- ...
### 待确认
- ..."
程序汇报
node scripts/gitea.js --role dev issue comment <number> --body "## 程序汇报 — YYYY-MM-DD
**任务ID**: P-XXX
**状态**: 进行中 / 已完成
**产出**: path/to/output
### 完成内容
- ...
### 偏差/问题
- ..."
审查修改后汇报(审查退回修改后使用)
node scripts/gitea.js --role <role> issue comment <number> --body "## 修改汇报 — YYYY-MM-DD
**任务ID**: <ID>
**修改原因**: 质量门审查退回
### 修改内容
- [对应审查意见第X条]:[具体修改内容]
### 修改后产出
- path/to/output"
PM 审查后
# 发布审查摘要评论
node scripts/gitea.js --role pm issue comment <number> --body "## 质量门审查 [通过✅/未通过❌]
**质量门**:[类型]
**审查日期**:YYYY-MM-DD
**审查记录**:docs/plans/reviews/<task-ID>-审查记录.md
### 结论
[一句话总结]
### 问题清单(不通过时)
1. ..."
# 更新标签反映质量门结果
node scripts/gitea.js --role pm issue labels <number> --set <gate-pass|gate-fail>,<status-*>,...
# 审查通过时关闭 Issue
node scripts/gitea.js --role pm issue close <number> --body "## 任务完成 ✔
**完成日期**:YYYY-MM-DD
**产出**:path/to/output
**审查记录**:docs/plans/reviews/<task-ID>-审查记录.md"
10. PM 会话启动命令序列
PM 在每次会话启动时按序执行:
# 1. 读取当前里程碑
node scripts/gitea.js --role pm milestone list --state open
# 2. 读取活跃任务
node scripts/gitea.js --role pm issue list --milestone <当前版本>
# 3. 读取流水线状态
node scripts/gitea.js --role pm pipeline status
# 4. 读取近期评论(按需)
node scripts/gitea.js --role pm issue comments <number>
11. PM 任务管理命令序列
创建任务
# 创建 Issue(必须指定 assignees)
node scripts/gitea.js --role pm issue create \
--title "D-001 交互系统执行案" \
--body "## 任务信息\n- **任务ID**: D-001\n- **所属版本**: v0.1\n- **角色**: 策划\n- **预期产出**: docs/design/prototype/交互系统-执行案.md\n..." \
--milestone <id> \
--assignees ai-designer
# 设置标签
node scripts/gitea.js --role pm issue labels <number> --set <status-label-id>,<gate-label-id>
# 设置依赖
node scripts/gitea.js --role pm issue block <blocker_number> <new_number>
关闭任务
node scripts/gitea.js --role pm issue close <number> --body "## 任务完成 ✔\n**完成日期**: YYYY-MM-DD\n**产出**: path/to/output"
更新流水线
node scripts/gitea.js --role pm pipeline update <tracker_number> --step <1-7> --status "状态描述"
12. 其他角色读取命令
程序查看任务
# 查看分配给自己的任务
node scripts/gitea.js --role dev issue list --assigned ai-programmer --milestone <当前版本>
# 查看流水线状态
node scripts/gitea.js --role dev pipeline status
# 查看 Issue 详情
node scripts/gitea.js --role dev issue get <number>
策划查看任务
# 查看分配给自己的任务
node scripts/gitea.js --role designer issue list --assigned ai-designer --milestone <当前版本>
# 查看 Issue 详情
node scripts/gitea.js --role designer issue get <number>
美术查看任务
# 查看分配给自己的任务
node scripts/gitea.js --role artist issue list --assigned ai-artist --milestone <当前版本>
# 查看 Issue 详情
node scripts/gitea.js --role artist issue get <number>