SuperAPI AI 工具集

issue-lifecycle

编程与开发

查看项目

更新于 10-16 04:06

技能介绍

用途

Issue Lifecycle 是一个用于在开发过程中持续更新 GitHub Issue 的技能。其核心原则是:Issue 是唯一事实来源,必须保持最新。该技能应在整个工作过程中使用,而不是作为一个单独的步骤。

主要能力

该技能定义了在以下关键时刻应执行的更新:

时刻 更新类型
开始工作 状态 → In Progress
遇到阻塞 评论说明阻塞
做出决策 评论记录决策
发现新信息 评论记录发现
完成验收标准 在正文中勾选
完成验证 发布验证报告
创建 PR 将 PR 链接到 Issue
工作完成 状态 → Done

更新类型包括状态更新(项目字段)、评论更新和复选框更新(验收标准)。

使用方式

状态更新(项目字段)

# 获取 item ID
ITEM_ID=$(gh project item-list [PROJECT_NUMBER] --owner @me \
  --format json | jq -r '.items[] | select(.content.number == [ISSUE_NUMBER]) | .id')

# 更新状态
gh project item-edit --project-id [PROJECT_ID] --id $ITEM_ID \
  --field-id [STATUS_FIELD_ID] \
  --single-select-option-id [NEW_STATUS_OPTION_ID]

评论更新

gh issue comment [ISSUE_NUMBER] --body "## Progress Update

**Time:** $(date -u +%Y-%m-%dT%H:%M:%SZ)

### Completed
- Implemented X
- Fixed Y

### In Progress
- Working on Z

### Blockers
- None

### Next Steps
- Will do A next"

复选框更新(验收标准)

当验收标准满足时:

  1. 读取当前 Issue 正文
  2. 找到验收标准复选框
  3. 将 - [ ] 改为 - [x]
  4. 更新 Issue 正文
# 获取当前正文
BODY=$(gh issue view [ISSUE_NUMBER] --json body -q '.body')

# 更新复选框(使用 sed 的示例)
NEW_BODY=$(echo "$BODY" | sed 's/- \[ \] First criterion/- [x] First criterion/')

# 更新 Issue
gh issue edit [ISSUE_NUMBER] --body "$NEW_BODY"

更新频率

最低更新要求:

  • 开始时 - “Starting work on this issue”
  • 被阻塞时 - 立即记录阻塞
  • 解除阻塞时 - 记录解决方案
  • 创建 PR 时 - 链接 PR
  • 完成时 - 最终状态更新

推荐更新:

  • 每个重要步骤之后
  • 做出影响方法的决策时
  • 发现意外复杂性时
  • 每 30-60 分钟活跃工作

更新内容

进度评论格式:

## Progress Update - [TIME]

### Completed
- [What was done]

### Currently Working On
- [Active work]

### Decisions Made
- [Decision]: [Rationale]

### Issues Encountered
- [Issue]: [How resolved or current status]

### Next Steps
- [What comes next]

决策评论格式:

## Decision: [Brief Title]

**Context:** [Why this decision was needed]

**Options Considered:**
1. [Option A] - [Pros/Cons]
2. [Option B] - [Pros/Cons]

**Decision:** [Chosen option]

**Rationale:** [Why this option was chosen]

阻塞评论格式:

## Blocked: [Brief Description]

**Blocked at:** [TIME]
**Blocking issue:** [What's preventing progress]

**What was tried:**
1. [Attempt 1]
2. [Attempt 2]

**Needs:** [What's needed to unblock]

**Impact:** [How this affects timeline/scope]

阅读 Issue 历史

在开始任何 Issue 的工作之前:

# 查看 Issue 及所有评论
gh issue view [ISSUE_NUMBER] --comments

# 查看时间线
gh issue view [ISSUE_NUMBER] --json timeline

查找:

  • 之前的尝试
  • 已知阻塞
  • 已做出的决策
  • 相关讨论

项目字段更新

保持以下字段最新:

字段 更新时间
Status 工作状态变化时
Verification 运行验证后
Criteria Met 勾选标准后
Last Verified 验证运行后

适用场景

该技能适用于使用 GitHub Issue 进行任务跟踪的开发工作流,特别是需要实时可见性和协作的场景。它被以下技能使用:

  • issue-driven-development - 贯穿所有步骤
  • acceptance-criteria-verification - 验证后报告
  • error-recovery - 记录失败

限制与反模式

应避免的反模式:

反模式 问题
最后批量更新 工作期间无可见性
“Made progress”评论 不够具体
只在成功时更新 失败也需要记录
跳过阻塞记录 丢失出错上下文
未验证就关闭 关闭前必须验证

推荐的良好模式:

良好模式 好处
随做随更新 实时可见性
具体的进度说明 清晰记录发生了什么
记录失败 从问题中学习
立即记录阻塞 更快解除阻塞
关闭前验证 确保质量

检查清单

每次工作会话,确保:

  • Issue 状态反映当前状态
  • 任何阻塞都已记录
  • 决策已记录
  • 完成的验收标准已勾选
  • 验证报告已发布
  • PR 已链接