skills/whats-next/SKILL.md
Find the next logical piece of work. Use when user types /whats-next or asks what they should work on next, or wants recommendations for the next task.
npx skillsauth add jamesc/skills whats-nextInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
When activated, execute this workflow to recommend the next issue to work on:
Check current branch: Determine if we're on a feature branch and extract the issue number if present.
Check for active cycles: Query Linear for the BT team's active cycle:
streamlinear-cli graphql "query { team(id: \"BT\") { key activeCycle { id name issues { nodes { id identifier title state { name } priority } } } } }"
If an active cycle exists, prioritize issues from that cycle.
Get recent completed work: Query Linear for recently completed issues to understand work patterns:
streamlinear-cli graphql "query { issues(filter: {team: {key: {eq: \"BT\"}}, state: {name: {in: [\"Done\", \"In Review\"]}}}, orderBy: updatedAt, first: 10) { nodes { id identifier title labels { nodes { name } } parent { identifier title } } } }"
Check git history: Review recent commits to understand what areas were recently worked on:
git log --oneline -20 --format="%s" | grep -oE "BT-[0-9]+" | sort -u | head -5
Find candidate issues: Query Linear for backlog/todo issues that are ready to work on. Skip "In Progress" issues — those are already being worked on by another agent.
streamlinear-cli graphql "query { issues(filter: {team: {key: {eq: \"BT\"}}, state: {name: {in: [\"Backlog\", \"Todo\"]}}}, orderBy: priority, first: 20) { nodes { id identifier title description priority state { name } labels { nodes { name } } parent { identifier title } children { nodes { identifier state { name } } } relations { nodes { type relatedIssue { identifier state { name } } } } } } }"
Prioritize issues: Score and rank issues based on:
agent-ready label (fully specified, can start immediately)Present recommendations: Display the top 3-5 recommended issues in this format:
## Recommended Next Issues
| # | Issue | Title | Priority | Score | Why |
|---|-------|-------|----------|-------|-----|
| 1 | BT-XX | Title | High | 85 | In active cycle, unblocks BT-YY |
| 2 | BT-ZZ | Title | Medium | 65 | agent-ready, related to recent BT-WW |
| 3 | BT-AA | Title | Medium | 50 | agent-ready, no blockers |
**Top pick: BT-XX** — [one sentence explaining why this is the best choice]
For each issue include:
Optional: Start work: Ask the user if they want to start on the top recommended issue (which would run the /pick-issue workflow for that specific issue).
| Condition | Points |
|-----------|--------|
| In active cycle | +50 |
| Has agent-ready label | +30 |
| Blocker completed in last 7 days (newly unblocked) | +25 |
| Related to recently completed work (same parent or area) | +20 |
| Unblocks other issues | +15 |
| Priority 1 (Urgent) | +10 |
| Priority 2 (High) | +5 |
| Has unresolved blocking dependencies | -100 |
| Has needs-spec label (requires human input first) | -50 |
| Has blocked label | -20 |
| Is "In Progress" (another agent working on it) | -200 |
development
Use when navigating code, finding references, looking up definitions, understanding types, or tracing call hierarchies in TypeScript, Rust, or Beamtalk (.bt) files. Prefer LSP over Grep/Glob for any navigation task where symbol semantics matter.
data-ai
Find and update Linear issues that need labels, blocking relationships, or metadata. Use when user says '/update-issues' with criteria like 'no labels', 'missing agent-ready', 'needs size', etc.
data-ai
Sync modified skills and agents back to the repo and create a PR. Use when user types /sync-skills or wants to save in-session skill improvements.
development
Review current branch changes vs main. Use when user types /review-code or asks for a code review of their changes.