262 lines
6.5 KiB
Markdown
262 lines
6.5 KiB
Markdown
---
|
||
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 |
|