Prioritize issues
Agent skills for Claude Code, Codex, and Gemini CLI — shared workflows for testing, code review, issue triage, and dev loop automation.
npx -y skills add jerseycheese/agent-skills --skill prioritize-issuesAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Analyzes all open GitHub issues to identify the highest-priority candidates for implementation. Scores by value, effort, age, and roadmap alignment. Produces a ranked top-5 with detailed technical specs for the top 3. Use when planning what to work on next, triaging a backlog, or preparing for a sprint. Trigger on phrases like "what should I work on", "prioritize my issues", "what's the highest value issue", "triage my backlog", "help me pick the next issue", "what's worth doing next".
SKILL.md
4.9 KB, as published. Nobody here has run it
Issue Prioritization
1. Discover the repo
If the user didn't specify a repo, infer it:
gh repo view --json nameWithOwner -q .nameWithOwner
2. Fetch all open issues
Pull the full backlog — not just recent issues:
gh issue list --state open --limit 200 --json number,title,labels,createdAt,body,milestone,comments
If the repo has more than 200 open issues, paginate. Also fetch any recent comments on the top candidates to catch context updates:
gh issue view [NUMBER] --json number,title,body,labels,comments,createdAt,milestone
3. Pre-filter
Skip issues labeled wontfix, duplicate, invalid, or question. Skip closed issues (should be excluded by the list query, but double-check).
4. Score each issue
For each issue, assess these dimensions. You don't need to output the raw scores — use them internally to reason about rank.
Value (0-10)
| Factor | Points |
|---|---|
| User-facing bug that breaks functionality | +3 |
| User-facing improvement | +2 |
| Internal/no user impact | +0-1 |
| Unblocks multiple other issues | +2 |
| Unblocks one other issue | +1 |
| Aligned with active milestone or roadmap goal | +2-3 |
Labels: critical, blocking, P0 | +2 |
Effort (0-10, lower is better)
| Factor | Points |
|---|---|
| Major architectural change | +4 |
| Touches many files/systems | +3 |
| Moderate complexity | +2 |
| Simple, well-scoped change | +1 |
| Requires extensive E2E + manual testing | +3 |
| Unit tests only | +1 |
| Breaking changes or migrations | +3 |
| Low-risk, isolated change | +0-1 |
Labels: good first issue, small, quick | -1 (lower effort) |
Age bonus
Issues that have been open longer tend to get pushed down unfairly. Apply a small bonus:
- Open 2-8 weeks: +0.1
- Open 2-6 months: +0.3
- Open 6+ months: +0.5
This is a tiebreaker, not a primary driver. A low-value chore open for a year still loses to a critical bug opened yesterday.
Priority score
score = (value * 2) / (effort + 1) + age_bonus
5. Select top 5
Rank by score. Among ties, prefer:
- Issues that unblock other work
- Older issues (age bonus already helps here)
- Better roadmap alignment
6. Create technical specs for top 3
For each of the top 3 candidates:
Problem statement — 1-2 sentences explaining the actual problem.
Scope boundaries
- What IS included
- What is NOT included (be explicit about adjacent work that's out of scope)
Technical approach — Brief approach that leverages existing patterns in the codebase. Check what's already there before assuming new code is needed.
Existing code to leverage — List specific components, utilities, or patterns that apply.
Implementation plan — 3-5 concrete steps.
MVP test plan — 2-4 tests that directly map to acceptance criteria. No "renders without crashing" tests.
Files to modify / create — Based on codebase exploration, not guessing.
Success criteria — Checkboxes pulled directly from the issue.
7. Output format
# Issue Priority Analysis
Total open issues analyzed: [N]
## Top 5 Candidates
### 1. #[number] — [title]
Priority score: [X]
- Value/Effort: [ratio and reasoning]
- Roadmap alignment: [High/Medium/Low — one sentence]
- Effort: [Small/Medium/Large]
- Dependencies: [list or "none"]
[Repeat for 2-5]
---
## Technical Specs (Top 3)
### #[number]: [title]
**Problem**
[1-2 sentences]
**Scope**
In: [list]
Out: [list]
**Approach**
[Brief technical approach]
**Existing code to leverage**
[List]
**Implementation plan**
1. [step]
2. [step]
3. [step]
**MVP tests**
1. [test and what it validates]
2. [test and what it validates]
**Files**
- Modify: [paths]
- Create: [paths]
**Success criteria**
- [ ] [criterion from issue]
---
[Repeat for other top candidates]
## Recommended next action
Work on #[NUMBER]. [One sentence on why this one over the others right now.]
Leave out emojis. Keep the output scannable — the user will skim it to make a final call.
8. Handing off to implementation
Once a candidate is picked, suggest driving the build with /goal rather than manual turn-by-turn iteration — e.g. /goal "issue #N acceptance criteria met, PR open, CI green". A separate evaluator decides when it's done, so the run doesn't need babysitting. For working several candidates at once, kick them off as background sessions (claude --bg) and watch them in Agent View (claude agents).