399 lines
9.3 KiB
Markdown
399 lines
9.3 KiB
Markdown
---
|
|
description: Quick reference for GitHub Issues management via gh CLI with priority workflow
|
|
disable-model-invocation: false
|
|
---
|
|
|
|
# GitHub Issues Quick Reference
|
|
|
|
## Overview
|
|
|
|
Manage GitHub Issues using the gh CLI with priority-based workflow. All issue operations should use the gh CLI to ensure consistency and proper metadata management.
|
|
|
|
**Reference Commands**: Use `/gh-create-issue`, `/gh-close-issue`, `/gh-triage`, `/gh-status-report` for guided workflows.
|
|
|
|
---
|
|
|
|
## Priority System
|
|
|
|
### Three-Tier Priority Labels
|
|
|
|
- **P1 (Critical)**: Blocks core functionality, security issues, affects all users, data loss
|
|
- **P2 (High)**: Significant impact but has workaround, affects some users
|
|
- **P3 (Normal)**: Standard workflow items, minor bugs, feature requests
|
|
|
|
### Setting Up Priority Labels
|
|
|
|
```bash
|
|
gh label create P1 --description "Critical priority - blocks core functionality" --color d73a4a
|
|
gh label create P2 --description "High priority - significant impact" --color fbca04
|
|
gh label create P3 --description "Normal priority - standard workflow" --color 0e8a16
|
|
```
|
|
|
|
---
|
|
|
|
## Essential Commands
|
|
|
|
### Viewing Issues
|
|
|
|
**IMPORTANT**: Use `--json` format for structured, parseable output:
|
|
|
|
```bash
|
|
gh issue view 59 --json title,body,labels,state,number,author,assignees,createdAt,updatedAt
|
|
```
|
|
|
|
**Recommended JSON fields**:
|
|
- `title` - Issue title
|
|
- `body` - Full description
|
|
- `labels` - All labels (including priority)
|
|
- `state` - OPEN or CLOSED
|
|
- `number` - Issue number
|
|
- `author` - Creator
|
|
- `assignees` - Assigned users
|
|
- `createdAt` - Creation timestamp
|
|
- `updatedAt` - Last modified
|
|
|
|
**Basic Commands**:
|
|
|
|
| Action | Command |
|
|
|----------------------------|----------------------------------------------|
|
|
| List all issues | `gh issue list` |
|
|
| List open issues | `gh issue list --state open` |
|
|
| Filter by priority | `gh issue list --label P1` |
|
|
| Filter by assignee | `gh issue list --assignee @me` |
|
|
| View specific issue | `gh issue view 42 --json title,body,labels,state,number` |
|
|
| Search issues | `gh issue list --search "keyword"` |
|
|
|
|
### Creating Issues
|
|
|
|
```bash
|
|
# Basic issue
|
|
gh issue create --title "Issue title" --body "Description"
|
|
|
|
# With priority and labels
|
|
gh issue create \
|
|
--title "Authentication fails" \
|
|
--body "Users cannot log in with SSO" \
|
|
--label "P1,bug" \
|
|
--assignee "@alice"
|
|
|
|
# Interactive creation
|
|
gh issue create
|
|
```
|
|
|
|
### Updating Issues
|
|
|
|
| Action | Command |
|
|
|----------------------------|----------------------------------------------|
|
|
| Add label | `gh issue edit 42 --add-label "P2"` |
|
|
| Remove label | `gh issue edit 42 --remove-label "P3"` |
|
|
| Change title | `gh issue edit 42 --title "New title"` |
|
|
| Assign to user | `gh issue edit 42 --add-assignee "@bob"` |
|
|
| Add to milestone | `gh issue edit 42 --milestone "v1.0"` |
|
|
|
|
### Comments
|
|
|
|
```bash
|
|
# Add comment (ALWAYS include -cc signature)
|
|
gh issue comment 42 --body "Update here
|
|
|
|
-cc"
|
|
|
|
# Add comment with file
|
|
gh issue comment 42 --body-file comment.md
|
|
```
|
|
|
|
**CRITICAL**: Always end comments with `-cc` signature on its own line.
|
|
|
|
### Closing Issues
|
|
|
|
```bash
|
|
# Close with comment
|
|
gh issue close 42 --comment "Fixed in PR #43
|
|
|
|
Tested locally and in staging
|
|
|
|
-cc"
|
|
|
|
# Close without comment (not recommended)
|
|
gh issue close 42
|
|
```
|
|
|
|
### Reopening Issues
|
|
|
|
```bash
|
|
gh issue reopen 42 --comment "Issue has resurfaced
|
|
|
|
-cc"
|
|
```
|
|
|
|
---
|
|
|
|
## Workflow Examples
|
|
|
|
### Report a Bug (P1)
|
|
|
|
```bash
|
|
gh issue create \
|
|
--title "Login fails with SSO for all users" \
|
|
--body "## Description
|
|
Users cannot authenticate using SSO since deployment.
|
|
|
|
## Steps to Reproduce
|
|
1. Go to login page
|
|
2. Click 'Login with SSO'
|
|
3. Redirected to error page
|
|
|
|
## Expected Behavior
|
|
User should be authenticated and redirected to dashboard
|
|
|
|
## Actual Behavior
|
|
Error: 'Invalid OAuth state'
|
|
|
|
## Environment
|
|
- Production environment
|
|
- All users affected
|
|
- Started after deployment at 2pm" \
|
|
--label "P1,bug"
|
|
```
|
|
|
|
### Create Feature Request (P3)
|
|
|
|
```bash
|
|
gh issue create \
|
|
--title "Add dark mode to dashboard" \
|
|
--body "## Feature Description
|
|
Support dark mode theme in the user dashboard.
|
|
|
|
## Problem Statement
|
|
Users working at night find the bright interface uncomfortable.
|
|
|
|
## Proposed Solution
|
|
Add theme toggle in user settings.
|
|
|
|
## Acceptance Criteria
|
|
- [ ] User can toggle between light and dark mode
|
|
- [ ] Preference is saved per user
|
|
- [ ] All dashboard components support dark mode" \
|
|
--label "P3,enhancement"
|
|
```
|
|
|
|
### Close Fixed Issue
|
|
|
|
```bash
|
|
gh issue close 42 --comment "Fixed by implementing new auth flow in PR #43
|
|
|
|
## Changes Made
|
|
- Updated OAuth state validation
|
|
- Added session persistence
|
|
- Improved error handling
|
|
|
|
## Testing
|
|
- Tested locally with all SSO providers
|
|
- Verified in staging environment
|
|
- Monitored production for 1 hour post-deployment
|
|
|
|
No issues detected.
|
|
|
|
-cc"
|
|
```
|
|
|
|
### Triage and Prioritize
|
|
|
|
```bash
|
|
# List unlabeled issues
|
|
gh issue list --state open
|
|
|
|
# View issue details with structured data
|
|
gh issue view 45 --json title,body,labels,state,number,author,assignees
|
|
|
|
# Assign priority after assessment
|
|
gh issue edit 45 --add-label "P2"
|
|
```
|
|
|
|
---
|
|
|
|
## Priority Assessment Guidelines
|
|
|
|
### When to Use P1
|
|
|
|
- System is down or unusable
|
|
- Security vulnerabilities discovered
|
|
- Data loss or corruption occurring
|
|
- All users blocked from core functionality
|
|
- Production outage in progress
|
|
|
|
### When to Use P2
|
|
|
|
- Significant feature broken but workaround exists
|
|
- Performance severely degraded
|
|
- Affects substantial subset of users
|
|
- Important business functionality impaired
|
|
|
|
### When to Use P3
|
|
|
|
- Minor bugs with minimal impact
|
|
- UI/UX improvements
|
|
- Feature requests
|
|
- Technical debt
|
|
- Documentation updates
|
|
- Refactoring tasks
|
|
|
|
---
|
|
|
|
## Comment Signature
|
|
|
|
**CRITICAL RULE**: Every comment you post MUST end with:
|
|
|
|
```
|
|
-cc
|
|
```
|
|
|
|
This signature must be on its own line at the end of every comment. It identifies comments as being written by Claude Code for transparency and accountability.
|
|
|
|
Example:
|
|
```
|
|
Fixed the authentication issue and deployed to production.
|
|
|
|
-cc
|
|
```
|
|
|
|
---
|
|
|
|
## Best Practices
|
|
|
|
### DO
|
|
|
|
- ✅ Always assign priority labels (P1/P2/P3)
|
|
- ✅ Write descriptive, action-oriented titles
|
|
- ✅ Include reproduction steps for bugs
|
|
- ✅ Add acceptance criteria for features
|
|
- ✅ Link related PRs and commits
|
|
- ✅ Use the `-cc` signature in all comments
|
|
- ✅ Update priority if circumstances change
|
|
|
|
### DON'T
|
|
|
|
- ❌ Create issues without priority labels
|
|
- ❌ Forget the `-cc` signature in comments
|
|
- ❌ Use vague titles like "Fix bug"
|
|
- ❌ Close issues without explaining resolution
|
|
- ❌ Leave P1 issues unassigned
|
|
|
|
---
|
|
|
|
## Guided Workflows
|
|
|
|
For step-by-step guidance, use these commands:
|
|
|
|
| Task | Command |
|
|
|-----------------------------|----------------------|
|
|
| Create issue with guidance | `/gh-create-issue` |
|
|
| Close issue properly | `/gh-close-issue` |
|
|
| Triage open issues | `/gh-triage` |
|
|
| Generate status report | `/gh-status-report` |
|
|
|
|
---
|
|
|
|
## Common Patterns
|
|
|
|
### Check Status Before Work
|
|
|
|
```bash
|
|
# See what needs attention
|
|
gh issue list --label P1 --state open
|
|
|
|
# Check your assignments
|
|
gh issue list --assignee @me --state open
|
|
```
|
|
|
|
### After Fixing a Bug
|
|
|
|
```bash
|
|
# Close with summary
|
|
gh issue close 42 --comment "Fixed in PR #43
|
|
|
|
Changes: {summary}
|
|
Testing: {what was tested}
|
|
|
|
-cc"
|
|
```
|
|
|
|
### Weekly Review
|
|
|
|
```bash
|
|
# Generate status report
|
|
/gh-status-report
|
|
|
|
# Or manually:
|
|
gh issue list --label P1 --state open
|
|
gh issue list --label P2 --state open
|
|
gh issue list --state closed --limit 10
|
|
```
|
|
|
|
---
|
|
|
|
## Quick Filters
|
|
|
|
```bash
|
|
# Critical issues
|
|
gh issue list --label P1 --state open
|
|
|
|
# Unassigned issues
|
|
gh issue list --state open --json number,title,assignees | jq '.[] | select(.assignees == [])'
|
|
|
|
# Stale issues (older than 30 days)
|
|
gh issue list --state open --json number,title,createdAt
|
|
|
|
# My issues
|
|
gh issue list --assignee @me --state open
|
|
|
|
# Recent activity
|
|
gh issue list --state closed --limit 20
|
|
```
|
|
|
|
---
|
|
|
|
## Integration with Workflow
|
|
|
|
### After Code Changes
|
|
|
|
1. Search for related issues: `gh issue list --search "keyword"`
|
|
2. Add update comments with `-cc` signature
|
|
3. Close issues when resolved
|
|
4. Create follow-up issues if needed
|
|
|
|
### During Planning
|
|
|
|
1. Review open issues: `/gh-status-report`
|
|
2. Triage new issues: `/gh-triage`
|
|
3. Assign priorities and team members
|
|
4. Break down large issues into smaller tasks
|
|
|
|
### In Standups/Reviews
|
|
|
|
1. Filter by assignee to see progress
|
|
2. Check P1 issues for blockers
|
|
3. Review recently closed issues
|
|
4. Update priorities based on new information
|
|
|
|
---
|
|
|
|
## Golden Rules
|
|
|
|
1. **Always assign priority** (P1/P2/P3) when creating or triaging issues
|
|
2. **Always use `-cc` signature** in comments
|
|
3. **Be descriptive** in titles and descriptions
|
|
4. **Link related items** (PRs, commits, other issues)
|
|
5. **Document resolutions** when closing issues
|
|
6. **Use guided commands** for complex workflows
|
|
|
|
---
|
|
|
|
## Full Documentation
|
|
|
|
For complete documentation and advanced features:
|
|
- Use `/gh-create-issue` for guided issue creation
|
|
- Use `/gh-close-issue` for guided issue closure
|
|
- Use `/gh-triage` for priority management
|
|
- Use `/gh-status-report` for comprehensive reporting
|