| name | issue-lifecycle |
| description | Use throughout all work - ensures GitHub issues are updated continuously as work happens, not batched at the end |
Issue Lifecycle
Overview
Update issues AS work happens, not in one dump at the end.
Core principle: The issue is the source of truth. Keep it current.
This skill is used THROUGHOUT work, not as a separate step.
When to Update
Update the issue at these moments:
| Moment | Update Type |
|---|---|
| Starting work | Status → In Progress |
| Hitting a blocker | Comment explaining blocker |
| Making a decision | Comment documenting decision |
| Discovering new information | Comment with findings |
| Completing acceptance criterion | Check off in body |
| Completing verification | Post verification report |
| Raising PR | Link PR to issue |
| Work complete | Status → Done |
Update Types
Status Updates (Project Field)
# Get item ID
ITEM_ID=$(gh project item-list [PROJECT_NUMBER] --owner @me \
--format json | jq -r '.items[] | select(.content.number == [ISSUE_NUMBER]) | .id')
# Update status
gh project item-edit --project-id [PROJECT_ID] --id $ITEM_ID \
--field-id [STATUS_FIELD_ID] \
--single-select-option-id [NEW_STATUS_OPTION_ID]
Comment Updates
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"
Checkbox Updates (Acceptance Criteria)
When an acceptance criterion is met:
- Read current issue body
- Find the criterion checkbox
- Change
- [ ]to- [x] - Update the issue body
# Get current body
BODY=$(gh issue view [ISSUE_NUMBER] --json body -q '.body')
# Update checkbox (example with sed)
NEW_BODY=$(echo "$BODY" | sed 's/- \[ \] First criterion/- [x] First criterion/')
# Update issue
gh issue edit [ISSUE_NUMBER] --body "$NEW_BODY"
Update Frequency
Minimum Updates
At absolute minimum, update at these points:
- When starting - "Starting work on this issue"
- When blocked - Document the blocker immediately
- When unblocked - Document resolution
- When PR created - Link the PR
- When complete - Final status update
Recommended Updates
For active work, update more frequently:
- After each significant step
- When making decisions that affect approach
- When discovering unexpected complexity
- Every 30-60 minutes of active work
What to Include in Updates
Progress Comments
## 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 Comments
## 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]
Blocker Comments
## 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]
Anti-Patterns
Don't Do This
| Anti-Pattern | Problem |
|---|---|
| Batch updates at end | No visibility during work |
| "Made progress" comments | Not specific enough |
| Updating only on success | Failures need documentation too |
| Skipping blocker documentation | Lost context on what went wrong |
| Closing without verification | Must verify before closing |
Do This Instead
| Good Pattern | Benefit |
|---|---|
| Update as you go | Real-time visibility |
| Specific progress notes | Clear record of what happened |
| Document failures | Learn from problems |
| Document blockers immediately | Faster unblocking |
| Verification before close | Ensures quality |
Reading Issue History
Before starting work on any issue:
# View issue with all comments
gh issue view [ISSUE_NUMBER] --comments
# View timeline
gh issue view [ISSUE_NUMBER] --json timeline
Look for:
- Previous attempts
- Known blockers
- Decisions already made
- Related discussions
Project Field Updates
Keep these fields current:
| Field | When to Update |
|---|---|
| Status | When work state changes |
| Verification | After running verification |
| Criteria Met | After checking off criteria |
| Last Verified | After verification runs |
Integration with Other Skills
This skill is used by:
issue-driven-development- Throughout all stepsacceptance-criteria-verification- Post verification reportserror-recovery- Document failures
Checklist
For each work session, ensure:
- Issue status reflects current state
- Any blockers are documented
- Decisions are recorded
- Completed criteria are checked off
- Verification reports are posted
- PRs are linked