Files
ChildHood/.claude/skills/gitea-pm/SKILL.md
T

262 lines
6.5 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-pm"
description: "PM 专属项目管理技能 — 任务创建/关闭/里程碑管理/Pipeline Tracker、会话启动、角色汇报模板。"
---
# Gitea PM 技能
> PM Agent 的专属技能,封装所有项目管理操作。
> 所有配置(连接信息、Token、角色映射、标签定义)从 `gitea-config.json` 读取。
> 本文档不含项目特定信息。
---
## 1. CLI 工具
```bash
node .claude/skills/gitea-pm/gitea.js --role pm <command> [subcommand] [options]
```
**`--json` 标志**:所有命令支持 `--json` 输出纯 JSON,供脚本解析。
---
## 2. 认证与角色映射
- `--role <角色名>` 自动解析 Token 和 Assignee(从 `gitea-config.json` 的 `roles` 配置)
- `--assigned <角色名>` 自动解析为 Gitea 用户名
- `--assignees <角色名,...>` 同上
- 环境变量 `GITEA_TOKEN` 优先级最高
---
## 3. PM 会话启动
PM 每次启动时:
1. **读取当前阶段**:`pipeline status`
2. **列出激活里程碑**:`milestone list --state open`
3. **列出所有活跃任务**:`issue list --state open`,展示摘要
4. **展开需要关注的任务**:仅对 `status:in-progress`、`status:blocked`、`review:pass` 的任务执行 `issue get`
5. **按阶段调用技能**:无进度 → project-initializer / 草图 → stage-sketch / 总路线 → stage-roadmap / 迭代 → stage-iteration
---
## 4. 命令速查
### 🔒 PM-only 命令
#### 任务创建
```bash
# 创建任务(assignee 自动从 --role 映射;如需指定其他角色,用 --assignees)
node .claude/skills/gitea-pm/gitea.js --role pm issue create \
--title "D-001 概念设计" \
--body "任务正文" \
--milestone <id|标题> \
--labels <id,...>
# 创建任务并指派给策划(显式指定)
node .claude/skills/gitea-pm/gitea.js --role pm issue create \
--title "D-001 概念设计" \
--assignees designer \
--milestone <id|标题>
# 设置标签
node .claude/skills/gitea-pm/gitea.js --role pm issue labels <number> --set <id,id,...>
# 设置依赖
node .claude/skills/gitea-pm/gitea.js --role pm issue block <blocker_number> <blocked_number>
node .claude/skills/gitea-pm/gitea.js --role pm issue unblock <blocker_number> <blocked_number>
```
#### 任务关闭(用户确认后)
```bash
node .claude/skills/gitea-pm/gitea.js --role pm issue close <number> --body "关闭说明"
```
#### 任务重开
```bash
node .claude/skills/gitea-pm/gitea.js --role pm issue reopen <number>
```
#### 里程碑管理
```bash
node .claude/skills/gitea-pm/gitea.js --role pm milestone create \
--title "标题" --description "描述"
node .claude/skills/gitea-pm/gitea.js --role pm milestone update <id> \
--title "..." --state closed
```
#### Pipeline Tracker
```bash
# 初始化
node .claude/skills/gitea-pm/gitea.js --role pm pipeline init
# 更新阶段
node .claude/skills/gitea-pm/gitea.js --role pm pipeline update <number> --field 阶段 --value "迭代阶段"
# 更新当前迭代
node .claude/skills/gitea-pm/gitea.js --role pm pipeline update <number> --field 当前迭代 --value "v1.4"
```
#### 标签初始化
```bash
node .claude/skills/gitea-pm/gitea.js --role pm label init
node .claude/skills/gitea-pm/gitea.js --role pm label create --name "名称" --color "#RRGGBB"
```
### 通用命令(PM 也用)
```bash
# 查询
node .claude/skills/gitea-pm/gitea.js --role pm issue list --state open
node .claude/skills/gitea-pm/gitea.js --role pm issue get <number>
node .claude/skills/gitea-pm/gitea.js --role pm issue comments <number>
node .claude/skills/gitea-pm/gitea.js --role pm issue deps <number>
node .claude/skills/gitea-pm/gitea.js --role pm milestone list --state open
node .claude/skills/gitea-pm/gitea.js --role pm label list
node .claude/skills/gitea-pm/gitea.js --role pm pipeline status
# 测试连通
node .claude/skills/gitea-pm/gitea.js --role pm test
```
---
## 5. 任务 ID 规范
格式:`[角色前缀]-[三位数字]`
| 前缀 | 角色 | `--assignees` 值(角色名) |
|------|------|--------------------------|
| `D` | 策划 | `designer` |
| `P` | 程序 | `dev` |
| `A` | 美术 | `artist` |
每个前缀从 001 独立编号。
---
## 6. Pipeline Tracker
Pipeline Tracker 是一个 Meta Issue,仅记录**无法从 Issue/Milestone 推导**的信息:
- **当前阶段**:草图阶段 / 总路线阶段 / 迭代阶段
- **当前迭代**:版本号(迭代阶段时填写)
- **阶段历史**:阶段转换记录表
**不记录**:里程碑详情、Issues 计数、流水线步骤状态、任务索引(这些从查询获取)。
---
## 7. 角色汇报模板
各角色完成工作后在对应 Issue 下评论。
### 策划汇报
```
## 策划汇报 — YYYY-MM-DD
**任务ID**: D-XXX
**状态**: 进行中 / 已完成
**产出**: path/to/output
### 完成内容
- ...
### 待确认
- ...
```
### 程序汇报
```
## 程序汇报 — YYYY-MM-DD
**任务ID**: P-XXX
**状态**: 进行中 / 已完成
**产出**: path/to/output
### 完成内容
- ...
### 偏差/问题
- ...
```
### 审查修改后汇报
```
## 修改汇报 — YYYY-MM-DD
**任务ID**: <ID>
**修改原因**: 质量门审查退回
### 修改内容
- [对应审查意见第X条]:[具体修改内容]
### 修改后产出
- path/to/output
```
### PM 确认关闭任务
```
## 任务完成 ✔
**完成日期**:YYYY-MM-DD
**产出**:path/to/output
```
---
## 8. PR 操作(发布合并)
迭代完成时,PM 负责创建 develop → main 的 PR:
```bash
# 列出当前 PR
node .claude/skills/gitea-pm/gitea.js --role pm pr list
# 创建发布 PR
bash .claude/scripts/git-workflow.sh release "迭代名称"
# 或手动创建
node .claude/skills/gitea-pm/gitea.js --role pm pr create \
--base main --head develop \
--title "Merge develop → main: 迭代名称" \
--body "发布描述"
# 查看 PR 详情
node .claude/skills/gitea-pm/gitea.js --role pm pr get <number>
# 合并 PR(用户审查确认后)
node .claude/skills/gitea-pm/gitea.js --role pm pr merge <number> --style merge
# 合并后同步
bash .claude/scripts/git-workflow.sh post-release
```
---
## 9. 标签体系
从 `gitea-config.json` 的 `labels` 字段定义。`label init` 命令从此配置创建标签。
### 标签类别
| 类别 | 前缀 | 用途 |
|------|------|------|
| status | `status:` | 任务状态(backlog/ready/in-progress/blocked/in-review/done) |
| review | `review:` | 审查结果(pass/fail) |
| stage | `stage:` | 开发阶段(sketch/roadmap/iteration) |
| gate | `gate:` | 旧标签,保留用于历史 Issue |