--- name: "gitea-collab" description: "Gitea 协作工具 — CLI 命令速查、认证机制、Assignee 映射、标签体系、Issue/Milestone/Pipeline 操作规范、角色汇报模板" --- # Gitea 协作工具 > 本 skill 封装 ChildHood 项目基于 Gitea 的进度管理全部实现细节。 > Agent 文件只描述项目管理的逻辑(做什么),本文件描述实现细节(怎么做)。 > 未来若更换项目管理后端,只需替换本 skill,Agent 逻辑无需修改。 --- ## 1. CLI 工具 **工具路径**: `node scripts/gitea.js [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 | | 审查 | `reviewer` | game-reviewer | --- ## 3. Assignee 映射 创建任务时通过 `--assignees` 指派给对应角色的 Gitea 用户。 | 角色 | `--assignees` 值 | 任务 ID 前缀 | |------|-----------------|-------------| | 策划 | `ai-designer` | `D-XXX` | | 程序 | `ai-programmer` | `P-XXX` | | 美术 | `ai-artist` | `A-XXX` | | PM | `ai-pm` | (管理任务) | | 审查 | `ai-reviewer` | (审查操作,不拥有任务) | --- ## 4. 标签体系 19 个标准标签,通过 `node scripts/gitea.js label init` 初始化。 ### status(任务状态) | 标签 | 含义 | |------|------| | `status:backlog` | 待处理 | | `status:ready` | 已就绪,可开始 | | `status:in-progress` | 进行中 | | `status:blocked` | 被阻塞 | | `status:in-review` | 待审查(角色完成工作后设置) | | `status:done` | 已完成 | ### gate(质量门判定 — 旧标签,保留用于历史 Issue) | 标签 | 含义 | |------|------| | `gate:execution-pass/fail` | 执行案质量门 | | `gate:tech-pass/fail` | 程序设计质量门 | | `gate:art-pass/fail` | 美术资产验收门 | | `gate:impl-pass/fail` | 程序实现验收门 | > 新工作流使用 `review:*` 标签替代 `gate:*`。旧 Issue 上的 gate 标签保留不动。 ### review(审查结果 — 新标签) | 标签 | 含义 | |------|------| | `review:pass` | 审查已通过 ✅ | | `review:fail` | 审查未通过 ❌ | ### stage(开发阶段 — 新标签) | 标签 | 含义 | |------|------| | `stage:sketch` | 草图阶段任务 | | `stage:roadmap` | 总路线阶段任务 | | `stage:iteration` | 迭代阶段任务 | > **注**:`pipeline:*` 和 `role:*` 标签已废弃并从 Gitea 上删除。如旧 Issue 上仍残留这些标签,忽略即可。 --- ## 5. 命令速查 ### issue ```bash # 列出 Issue(支持按 assignee 过滤) node scripts/gitea.js --role issue list --milestone <标题> [--state open|closed|all] [--labels ] [--assigned <用户名>] [--json] # 查看 Issue 详情 node scripts/gitea.js --role issue get [--json] # 创建 Issue(必须指定 assignees) node scripts/gitea.js --role issue create --title "..." --body "..." --milestone --assignees <用户名,...> # 更新 Issue node scripts/gitea.js --role issue update --title "..." --body "..." # 关闭 Issue node scripts/gitea.js --role issue close [--body "关闭说明"] # 重新打开 Issue node scripts/gitea.js --role issue reopen # 评论 node scripts/gitea.js --role issue comment --body "评论内容" # 查看评论 node scripts/gitea.js --role issue comments [--json] # 设置标签 node scripts/gitea.js --role issue labels --set # 依赖关系 node scripts/gitea.js --role issue deps # 阻塞关系 node scripts/gitea.js --role issue block node scripts/gitea.js --role issue unblock ``` ### milestone ```bash # 列出里程碑 node scripts/gitea.js --role milestone list [--state open|closed|all] [--json] # 创建里程碑 node scripts/gitea.js --role milestone create --title "..." --description "..." # 更新里程碑 node scripts/gitea.js --role milestone update --title "..." --description "..." --due "YYYY-MM-DD" ``` ### label ```bash # 列出标签 node scripts/gitea.js --role label list [--json] # 创建标签 node scripts/gitea.js --role label create --name "..." --color "#hex" # 初始化标准标签体系 node scripts/gitea.js --role label init ``` ### pipeline ```bash # 初始化 Pipeline Tracker Meta Issue node scripts/gitea.js --role pipeline init # 查看 Pipeline 状态 node scripts/gitea.js --role pipeline status # 更新 Pipeline 步骤状态 node scripts/gitea.js --role pipeline update --step <1-7> --status "状态描述" ``` ### test ```bash # 运行 API 连通性测试(P0 + P1) node scripts/gitea.js test ``` --- ## 6. 数据映射 | 概念 | Gitea 对应 | 说明 | |------|-----------|------| | 任务 (P-002) | Issue | 标题含任务 ID 前缀 | | 阶段/版本 | Milestone | 阶段名或版本号作为里程碑标题 | | 任务状态 | Label (`status:*`) | 6 种状态标签 | | 审查结果 | Label (`review:*`) | 通过/未通过 | | 开发阶段 | Label (`stage:*`) | 草图/总路线/迭代 | | 质量门结果 | Label (`gate:*`) | 旧标签,保留用于历史 Issue | | 角色归属 | Assignee | 通过 `--assignees` 指派 | | 当前进度 | Pipeline Tracker | Meta Issue 记录当前阶段和进度 | | 角色汇报 | Issue 评论 | 各角色在对应 Issue 下评论 | | 审查记录 | Issue 评论(摘要+链接)+ 本地 `docs/plans/reviews/` | 本地文件名格式 `<任务ID>-审查记录.md` | | 任务归档 | close Issue | 用户确认后由 PM 关闭 | --- ## 7. 任务 ID 规范 格式:`[角色前缀]-[三位数字]` | 前缀 | 角色 | 示例 | |------|------|------| | `D` | 策划 (Design) | `D-001` | | `P` | 程序 (Programmer) | `P-002` | | `A` | 美术 (Artist) | `A-003` | 每个前缀从 001 独立编号。Issue 标题需包含任务 ID 前缀。 --- ## 8. Pipeline Tracker Pipeline Tracker 是一个 **Meta Issue**,用于记录项目当前阶段和进度。 ### Tracker 正文格式 ```markdown # 流水线进度追踪 ## 当前阶段 草图阶段 / 总路线阶段 / 迭代阶段 ## 当前里程碑 - 名称: - 状态: open/closed - Open Issues: X - Closed Issues: Y ## 阶段历史 | 阶段 | 里程碑 | 进入日期 | 完成日期 | |------|--------|----------|----------| | 草图阶段 | 草图阶段 | YYYY-MM-DD | — | ``` ### 相关命令 - 初始化:`pipeline init` - 查看状态:`pipeline status` - 更新步骤:`pipeline update --step <1-7> --status "描述"` - 阶段转换时直接编辑 Issue 正文更新「当前阶段」和「阶段历史」 --- ## 9. 角色汇报模板 各角色完成工作后,在对应 Issue 下评论汇报。 ### 策划汇报 ```bash node scripts/gitea.js --role designer issue comment --body "## 策划汇报 — YYYY-MM-DD **任务ID**: D-XXX **状态**: 进行中 / 已完成 **产出**: path/to/output ### 完成内容 - ... ### 待确认 - ..." ``` ### 程序汇报 ```bash node scripts/gitea.js --role dev issue comment --body "## 程序汇报 — YYYY-MM-DD **任务ID**: P-XXX **状态**: 进行中 / 已完成 **产出**: path/to/output ### 完成内容 - ... ### 偏差/问题 - ..." ``` ### 审查修改后汇报(审查退回修改后使用) ```bash node scripts/gitea.js --role issue comment --body "## 修改汇报 — YYYY-MM-DD **任务ID**: **修改原因**: 质量门审查退回 ### 修改内容 - [对应审查意见第X条]:[具体修改内容] ### 修改后产出 - path/to/output" ``` ### PM 确认关闭任务(审查通过后) ```bash # 用户确认后关闭 Issue node scripts/gitea.js --role pm issue close --body "## 任务完成 ✔ **完成日期**:YYYY-MM-DD **产出**:path/to/output **审查记录**:docs/plans/reviews/-审查记录.md" ``` --- ## 10. PM 会话启动命令序列 PM 在每次会话启动时按序执行: ```bash # 1. 读取 Pipeline Tracker(确定当前阶段) node scripts/gitea.js --role pm pipeline status # 2. 读取当前里程碑 node scripts/gitea.js --role pm milestone list --state open # 3. 读取活跃任务 node scripts/gitea.js --role pm issue list --state open # 4. 根据阶段调用对应技能: # 无进度 → project-initializer # 草图阶段 → stage-sketch # 总路线阶段 → stage-roadmap # 迭代阶段 → stage-iteration # 5. 检查 review:pass 标签的 Issue → 请示用户是否关闭 ``` --- ## 11. PM 任务管理命令序列 ### 创建任务 ```bash # 创建 Issue(必须指定 assignees 和 stage 标签) node scripts/gitea.js --role pm issue create \ --title "D-001 概念设计" \ --body "## 任务信息\n- **任务ID**: D-001\n- **所属阶段**: 草图阶段\n- **角色**: 策划\n- **预期产出**: docs/design/概念草案.md\n..." \ --milestone \ --assignees ai-designer # 设置标签(status + stage + role) node scripts/gitea.js --role pm issue labels --set ,, # 设置依赖 node scripts/gitea.js --role pm issue block ``` ### 关闭任务(用户确认后) ```bash # 审查通过 + 用户确认关闭后 node scripts/gitea.js --role pm issue close --body "## 任务完成 ✔\n**完成日期**: YYYY-MM-DD\n**产出**: path/to/output\n**审查记录**: docs/plans/reviews/-审查记录.md" ``` --- ## 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 ``` ### 策划查看任务 ```bash # 查看分配给自己的任务 node scripts/gitea.js --role designer issue list --assigned ai-designer --milestone <当前版本> # 查看 Issue 详情 node scripts/gitea.js --role designer issue get ``` ### 美术查看任务 ```bash # 查看分配给自己的任务 node scripts/gitea.js --role artist issue list --assigned ai-artist --milestone <当前版本> # 查看 Issue 详情 node scripts/gitea.js --role artist issue get ```