1. Fetch the Issue/PR
Use GitHub CLI to get full details:
```bash
# For issues
gh issue view --json number,title,body,labels,state,author,createdAt
# For PRs
gh pr view --json number,title,body,labels,state,author,createdAt,files,additions,deletions
```
Determine the type based on content: bug report, feature request, question, documentation issue, or pull request.
2. Duplicate and Prior Decision Search
Search for related closed issues and discussions:
```bash
# Search closed issues with relevant labels
gh issue list --state closed --label wontfix --search "" --limit 10
gh issue list --state closed --label duplicate --search "" --limit 10
gh issue list --state closed --label invalid --search "" --limit 10
# General search across all issues
gh search issues "" --repo peteonrails/voxtype --limit 15
# Search discussions for prior decisions
gh api repos/peteonrails/voxtype/discussions --jq '.[].title' 2>/dev/null || echo "No discussions API access"
```
Extract 3-5 keywords from the issue title and body for searching.
3. Related PR Search
Find open PRs that might address this issue:
```bash
gh pr list --state open --search "" --limit 10
```
4. Documentation Check
Read relevant documentation to determine if user misunderstands setup or configuration:
README.md - Installation and quick startdocs/TROUBLESHOOTING.md - Common issues and solutionsdocs/CONFIGURATION.md - Config file optionsdocs/PARAKEET.md - Parakeet-specific setup (experimental)docs/MODEL_SELECTION_GUIDE.md - Model and engine selection
If the reported issue is actually documented expected behavior or a setup mistake, note this in the report.
5. Project Fit Assessment
Read CLAUDE.md sections on Project Principles and Non-Goals.
Project Principles (all work should align with these):
- Dead simple user experience
- Backwards compatibility
- Performance first
- Excellent CLI help
- Every option configurable everywhere
- Documentation in the right places
Non-Goals (requests for these should be declined):
- Windows/macOS support (Linux-first, Wayland-native)
- GUI configuration (CLI and config file are the interface)
Also check:
- Issues/discussions closed with decisions against similar features
- CLAUDE.md roadmap for what's planned vs out of scope
6. PR Quality Assessment (PRs only)
For pull requests, additionally assess:
- Linked issue: Does it reference an issue? Is that issue valid?
- Scope: Does it do exactly what the linked issue asks, or does it include scope creep?
- Code style: Does it follow conventions in CLAUDE.md?
- Tests: Are there tests for new functionality?
- Documentation: Are user-facing changes documented?
- Breaking changes: Does it break backwards compatibility?
7. Label Recommendation
Based on analysis, recommend appropriate labels from:
| Label | When to Apply |
|-------|---------------|
| bug | Confirmed bug in existing functionality |
| enhancement | Feature request or improvement |
| documentation | Documentation issue or improvement |
| question | User asking for help, not reporting a bug |
| duplicate | Already reported in another issue |
| invalid | Not a valid issue (spam, off-topic, etc.) |
| wontfix | Valid but won't be addressed (non-goal, out of scope) |
| good first issue | Well-defined, isolated, good for newcomers |
| help wanted | Needs community contribution |
| deb | Related to Debian packaging |
| rpm | Related to RPM packaging |
| aur | Related to AUR source package |
| aur-bin | Related to AUR binary package |
| nixos | Related to NixOS packaging |
| omarchy | Related to Omarchy distribution |
Apply multiple labels when appropriate (e.g., bug + deb for a Debian-specific bug).