| name | ha-emby-issue-selector |
| description | Use when starting work to select the next issue - queries GitHub project board, applies priority logic, and routes to the appropriate workflow (bug-triage or issue-executor). |
Home Assistant Emby Issue Selector
Overview
Select the next issue to work on using priority-based logic and route to the appropriate workflow.
This skill queries the GitHub project board, prioritizes issues, and directs you to either bug investigation or implementation based on issue type and status.
When to Use
- Starting a work session
- Completed an issue and need the next one
- User asks "what should I work on?"
- User asks to "pick up the next issue"
Priority Order
Issues are selected in this priority order:
| Priority | Criteria | Action |
|---|
| 1 | priority: critical + bug + confirmed | Fix immediately |
| 2 | priority: high + bug + confirmed | Fix next |
| 3 | priority: critical + bug + ai-triaged | Investigate to confirm |
| 4 | priority: high + bug + ai-triaged | Investigate to confirm |
| 5 | status: in-progress + assigned to me | Resume existing work |
| 6 | priority: critical + enhancement | Implement high-value feature |
| 7 | priority: high + enhancement | Implement important feature |
| 8 | priority: medium + bug + confirmed | Fix medium bugs |
| 9 | priority: medium + bug + ai-triaged | Investigate medium bugs |
| 10 | priority: medium + enhancement | Medium features |
| 11 | priority: low + any | Low priority items |
| 12 | Oldest unassigned | Backlog items |
Selection Workflow
Step 1: Check for In-Progress Work
gh issue list \
--label "status: in-progress" \
--assignee @me \
--state open \
-L 5
If in-progress work exists: Resume that issue first.
Step 2: Query High-Priority Items
gh issue list \
--label "bug" \
--label "confirmed" \
--label "priority: critical" \
--state open \
-L 5
gh issue list \
--label "bug" \
--label "confirmed" \
--label "priority: high" \
--state open \
-L 5
gh issue list \
--label "bug" \
--label "ai-triaged" \
--label "priority: critical" \
--state open \
-L 5
gh issue list \
--label "bug" \
--label "ai-triaged" \
--label "priority: high" \
--state open \
-L 5
Step 3: Query Enhancement Requests
gh issue list \
--label "enhancement" \
--label "priority: high" \
--state open \
-L 5
gh issue list \
--label "enhancement" \
--label "priority: medium" \
--state open \
-L 5
Step 4: Check Medium/Low Priority
gh issue list \
--label "bug" \
--label "priority: medium" \
--state open \
-L 5
gh issue list \
--label "priority: low" \
--state open \
-L 5
Step 5: Fallback - Oldest Issues
gh issue list \
--state open \
--json number,title,labels,createdAt \
--jq 'sort_by(.createdAt) | .[0:5]'
Routing Logic
After selecting an issue, route to the appropriate skill:
┌─────────────────────────────────────────────────────────────────┐
│ ROUTING DECISION │
├─────────────────────────────────────────────────────────────────┤
│ │
│ Has label "bug"? │
│ │ │
│ ├── YES ──► Has label "confirmed"? │
│ │ │ │
│ │ ├── YES ──► ha-emby-issue-executor │
│ │ │ (Fix the bug) │
│ │ │ │
│ │ └── NO ───► ha-emby-bug-triage │
│ │ (Investigate first) │
│ │ │
│ └── NO ───► Has label "enhancement" or "feature"? │
│ │ │
│ ├── YES ──► ha-emby-issue-executor │
│ │ (Implement feature) │
│ │ │
│ └── NO ───► Has label "question"? │
│ │ │
│ ├── YES ──► Answer or │
│ │ skip │
│ │ │
│ └── NO ───► Evaluate │
│ case-by-case │
│ │
└─────────────────────────────────────────────────────────────────┘
Skip Conditions
Skip issues with these labels:
| Label | Reason |
|---|
needs-info | Waiting on reporter |
status: blocked | External dependency |
upstream | Emby server issue |
ha-core | Home Assistant core issue |
status: wontfix | Won't be addressed |
status: duplicate | Already handled elsewhere |
gh issue list \
--label "bug" \
--label "confirmed" \
--state open \
--json number,title,labels \
--jq '[.[] | select(.labels | map(.name) | contains(["needs-info"]) | not)]'
Output Format
After selecting an issue, announce:
## Selected Issue
**Issue:** #42 - WebSocket disconnects on server restart
**Type:** Bug (confirmed)
**Priority:** High
**Components:** websocket, api
**Assigned:** @me
**Routing to:** ha-emby-issue-executor
**Next steps:**
1. Create branch: `issue-42-websocket-reconnect`
2. Review issue details and comments
3. Begin TDD implementation
Or for bugs needing investigation:
## Selected Issue
**Issue:** #43 - Media player shows wrong album art
**Type:** Bug (needs investigation)
**Priority:** Medium
**Components:** media-player, api
**Assigned:** @me
**Routing to:** ha-emby-bug-triage
**Next steps:**
1. Start local HA environment
2. Configure to match reporter's setup
3. Attempt reproduction
4. Gather evidence
5. Update issue with findings
Claim the Issue
Before routing, claim the issue:
gh issue edit {N} --add-assignee @me
gh issue edit {N} --add-label "status: investigating"
gh issue edit {N} --add-label "status: in-progress"
gh issue comment {N} --body "Starting investigation on this issue."
Memory Integration
Check episodic memory first:
- Previous work on this issue?
- Related issues already investigated?
- Decisions made in prior sessions?
After selecting:
- Record selected issue in memory
- Note routing decision
- Track session start
Common Scenarios
Scenario: User says "work on bugs"
gh issue list \
--label "bug" \
--state open \
--json number,title,labels \
-L 20
Scenario: User says "what's the most urgent?"
gh issue list --label "priority: critical" --state open -L 5
gh issue list --label "priority: high" --state open -L 5
Scenario: User says "continue where I left off"
gh issue list --label "status: in-progress" --assignee @me --state open
Scenario: User points to specific issue
Skip selection, validate the issue exists, claim it, and route directly.
Related Skills
| Routing To | Skill | When |
|---|
| Bug investigation | ha-emby-bug-triage | Bug without confirmed label |
| Implementation | ha-emby-issue-executor | Confirmed bugs, features |
| GitHub queries | ha-emby-github | CLI commands, labels |
Cross-references:
- For priority label meanings → See
ha-emby-github § "Priority Labels"
- For component labels → See
ha-emby-github § "Component Labels"
- For status labels → See
ha-emby-github § "Status Labels"
The Bottom Line
- Check in-progress work first
- Query by priority order
- Skip blocked/waiting issues
- Claim before routing
- Route to correct workflow:
- Unconfirmed bugs →
ha-emby-bug-triage
- Confirmed bugs →
ha-emby-issue-executor
- Features →
ha-emby-issue-executor