gh-issue-lifecycle

State machine for GitHub issues and how they connect to code.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "gh-issue-lifecycle" with this command: npx skills add poindexter12/waypoint/poindexter12-waypoint-gh-issue-lifecycle

Issue Lifecycle

State machine for GitHub issues and how they connect to code.

State Diagram

                ┌─────────────────┐
                │  needs-triage   │ ← New issue created
                └────────┬────────┘
                         │ triage
                ┌────────▼────────┐
    ┌───────────│    accepted     │ ← In backlog
    │           └────────┬────────┘
    │                    │ start work
    │           ┌────────▼────────┐
    │    ┌──────│  in-progress    │ ← Active development
    │    │      └────────┬────────┘
    │    │               │ PR merged
    │    │      ┌────────▼────────┐
    │    │      │    completed    │ ← Issue resolved
    │    │      └─────────────────┘
    │    │
    │    │ blocked
    │    │      ┌─────────────────┐
    │    └─────►│     blocked     │ ← Waiting on dependency
    │           └─────────────────┘
    │
    │ needs-info
    │           ┌─────────────────┐
    └──────────►│   needs-info    │ ← Waiting for clarification
                └─────────────────┘

State Definitions

Open States

State Label Meaning

New needs-triage

Just created, not reviewed

Clarification needs-info

Waiting on reporter

Backlog accepted

Triaged, waiting for work

Active in-progress

Someone is working on it

Blocked blocked

Can't proceed

Closed States

State Reason Comment

Completed Fixed/implemented Via PR or manual

Duplicate Same as another "Duplicate of #N"

Won't Fix Out of scope Explain why

Invalid Not a real issue Cannot reproduce

Stale No activity Auto-closed after warning

Linking Issues to Code

Branch Naming

When starting work on issue #123 :

feat/123-short-description # feature fix/123-short-description # bug fix chore/123-short-description # maintenance docs/123-short-description # documentation i18n/locale-code # internationalization (e.g., i18n/zh-CN, i18n/ja-JP) i18n/123-locale-code # i18n with issue (e.g., i18n/42-es-MX)

Examples:

  • feat/42-add-dark-mode

  • fix/123-login-timeout

  • chore/99-update-deps

  • i18n/zh-CN

  • Chinese (Simplified) translations

  • i18n/42-ja-JP

  • Japanese translations for issue #42

PR Title

Include issue number in PR title:

feat: add dark mode (#42) fix: resolve login timeout (#123) chore: update dependencies (#99)

PR Description

Use closing keywords in PR body:

Keyword Effect

Closes #123

Auto-closes when merged

Fixes #123

Same as Closes

Resolves #123

Same as Closes

Example PR description:

Summary

Add dark mode toggle to settings page.

Closes #42

Changes

  • Add theme context
  • Create toggle component
  • Update color variables

Linking Without Closing

Reference issues without auto-close:

Related to #45 See also #67 Depends on #89

Manual Close Reasons

When closing without PR, always comment:

Duplicate

gh issue close 123 --comment "Duplicate of #456"

Won't Fix

gh issue close 123 --comment "Closing as won't fix: [reason]"

Invalid / Cannot Reproduce

gh issue close 123 --comment "Cannot reproduce with provided steps. Please reopen with more details if issue persists."

Stale

gh issue close 123 --comment "Closing due to inactivity. Please reopen if still relevant."

Stale Issue Handling

Detection

Issues with no activity for N days (typically 90):

Find stale issues

gh issue list --search "updated:<$(date -v-90d +%Y-%m-%d)"

Warning Process

  • Add stale label

  • Comment: This issue has been inactive for 90 days. It will be closed in 30 days if there's no further activity. Please comment if this is still relevant.

  • Close after 30 more days if no response

Automation (GitHub Action)

name: Stale Issues on: schedule: - cron: '0 0 * * *' jobs: stale: runs-on: ubuntu-latest steps: - uses: actions/stale@v9 with: stale-issue-message: 'This issue has been inactive for 90 days.' days-before-stale: 90 days-before-close: 30 stale-issue-label: 'stale'

Bulk Operations

Close Multiple Issues

Close all issues with label

gh issue list --label "stale" --json number --jq '.[].number' |
xargs -I {} gh issue close {} --comment "Closing stale issue"

Relabel Issues

Add label to all issues matching query

gh issue list --search "is:open label:bug" --json number --jq '.[].number' |
xargs -I {} gh issue edit {} --add-label "needs-review"

Transfer Issues

Move issue to another repo

gh issue transfer 123 owner/other-repo

Workflow Commands

Start Work on Issue

Create branch from issue

gh issue develop 123 --checkout

Or manually

git checkout -b fix/123-description main gh issue edit 123 --add-label "in-progress"

Complete Issue via PR

Create PR that closes issue

gh pr create --title "fix: resolve issue (#123)" --body "Closes #123"

Mark as Blocked

gh issue edit 123
--remove-label "in-progress"
--add-label "blocked" gh issue comment 123 --body "Blocked on #456"

Integration with Other Components

Full Issue Workflow

  • Create: Use gh-issue-templates to format issue

  • Triage: Use gh-issue-triage to add type/priority labels

  • Start Work: Use this skill's branch naming patterns (feat/123-desc)

  • Link to Code: Reference issue in PR using Closes #123

  • Close: Use gh-wrangler agent with this skill's close patterns

  • Cleanup: PR merge auto-closes issue via GitHub

State Transitions

This skill defines how issues move through states:

  • needs-triage → Initial state (set by gh-issue-templates)

  • accepted → After triage (applied by gh-wrangler using gh-issue-triage)

  • in-progress → Work started (manual or via branch creation)

  • blocked → Can't proceed (set manually with comment)

  • Closed → Via PR merge or manual close

Branch and PR Integration

When starting work on an issue:

Branch naming from this skill

git checkout -b feat/123-description

PR creation with linking

gh pr create --title "feat: description (#123)" --body "Closes #123"

Related

  • Skill: gh-issue-templates

  • Creating well-formatted issues

  • Skill: gh-issue-triage

  • Labeling and prioritization

  • Agent: gh-wrangler

  • Interactive lifecycle management

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

github-actions

No summary provided by upstream source.

Repository SourceNeeds Review
General

proxmox

No summary provided by upstream source.

Repository SourceNeeds Review
General

docker

No summary provided by upstream source.

Repository SourceNeeds Review
General

gh-issue-triage

No summary provided by upstream source.

Repository SourceNeeds Review