Files
ChildHood/.claude/skills/gitea-collab.md
T
starmen1265 0f96b79dba feat(tools): 白模关卡自动生成Python脚本——Level Builder
两阶段流水线:搭建指南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>
2026-06-07 23:03:45 +08:00

377 lines
9.9 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.
---
name: "gitea-collab"
description: "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
```bash
# 列出 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
```bash
# 列出里程碑
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
```bash
# 列出标签
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
```bash
# 初始化 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
```bash
# 运行 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 下评论汇报。
### 策划汇报
```bash
node scripts/gitea.js --role designer issue comment <number> --body "## 策划汇报 — YYYY-MM-DD
**任务ID**: D-XXX
**状态**: 进行中 / 已完成
**产出**: path/to/output
### 完成内容
- ...
### 待确认
- ..."
```
### 程序汇报
```bash
node scripts/gitea.js --role dev issue comment <number> --body "## 程序汇报 — YYYY-MM-DD
**任务ID**: P-XXX
**状态**: 进行中 / 已完成
**产出**: path/to/output
### 完成内容
- ...
### 偏差/问题
- ..."
```
### 审查修改后汇报(审查退回修改后使用)
```bash
node scripts/gitea.js --role <role> issue comment <number> --body "## 修改汇报 — YYYY-MM-DD
**任务ID**: <ID>
**修改原因**: 质量门审查退回
### 修改内容
- [对应审查意见第X条]:[具体修改内容]
### 修改后产出
- path/to/output"
```
### PM 审查后
```bash
# 发布审查摘要评论
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 在每次会话启动时按序执行:
```bash
# 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 任务管理命令序列
### 创建任务
```bash
# 创建 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>
```
### 关闭任务
```bash
node scripts/gitea.js --role pm issue close <number> --body "## 任务完成 ✔\n**完成日期**: YYYY-MM-DD\n**产出**: path/to/output"
```
### 更新流水线
```bash
node scripts/gitea.js --role pm pipeline update <tracker_number> --step <1-7> --status "状态描述"
```
---
## 12. 其他角色读取命令
### 程序查看任务
```bash
# 查看分配给自己的任务
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>
```
### 策划查看任务
```bash
# 查看分配给自己的任务
node scripts/gitea.js --role designer issue list --assigned ai-designer --milestone <当前版本>
# 查看 Issue 详情
node scripts/gitea.js --role designer issue get <number>
```
### 美术查看任务
```bash
# 查看分配给自己的任务
node scripts/gitea.js --role artist issue list --assigned ai-artist --milestone <当前版本>
# 查看 Issue 详情
node scripts/gitea.js --role artist issue get <number>
```