Jira Todo - Daily Work Prioritization
Analyzes assigned tickets and recommends what to work on next, based on actual Jira data. Complements the jira-cli skill (general command reference) and jira-daily (yesterday's standup recap): this skill is for forward-looking prioritization.
Phase 1: Verify Jira CLI Works
Before anything else, confirm the CLI is installed and authenticated:
jira me
If that fails (command not found, not authenticated, any error), STOP here. Do not proceed to Phase 2 or any later phase, and do not simulate, infer, or fabricate ticket data to produce a plan anyway. Tell the user:
The
jiraCLI isn't available or isn't authenticated in this environment. Install and configure it from https://github.com/ankitpokhrel/jira-cli, then re-run this skill.
This gate exists because an agent that can't reach real Jira data will otherwise write a plausible-looking report from imagined tickets and present it as a real daily plan. Every ticket ID, priority, status, and story point anywhere in this skill's output must come from a jira command actually run this session: never a hardcoded fixture, a "simulated" placeholder, never mention a blocker that wasn't explicitly marked (label or blocking-link field) in that output, and never a helper script that was written but not executed. If a command returns no results, say so plainly rather than inventing tickets to fill out the report sections.
Phase 2: Determine Project Key
Get the project key from (in order of priority):
- Command argument:
--project ABCor-p ABC - Jira CLI config: Read
~/.config/.jira/.config.ymland extract theproject.keyvalue.
If no project key is found, ask the user to specify with --project <KEY>.
Phase 3: Gather Current Workload
Run these directly via Bash before recommending anything: every ticket in the output must trace back to one of these commands' actual stdout, not to a script that reproduces expected output without executing them:
# Get all assigned tickets in active statuses
jira issue list --assignee $(jira me) --status "To Do" "In Progress" "Code Review" "In Review" --plain --columns key,summary,status,priority,updated
# Check for blockers and dependencies
jira issue list --assignee $(jira me) --jql "status IN ('To Do', 'In Progress') AND (labels = 'blocked' OR description ~ 'blocked')" --plain
# Get recently updated tickets needing attention
jira issue list --assignee $(jira me) --updated -2d --status "Code Review" "In Review" "Waiting for Feedback" --plain
If --include-blocked is not set, drop blocked tickets from the main sections (still surface them under On Hold).
Phase 4: Apply Prioritization Algorithm
Apply this directly in the main agent: it's a short scoring pass over a daily ticket list, not worth fanning out to subagents. Only spawn parallel Explore subagents if the workload is unusually large (>30 active tickets), and only where a Task/subagent tool is available; otherwise do the same scoring pass sequentially inline regardless of ticket count.
Priority Scoring:
- Critical/Urgent Priority: Weight x 10
- Due Soon: Days until due date (lower = higher score)
- Recent Activity: Updated in last 24h = +5 points
- Blocking Others: Has dependents = +3 points
- Needs Response: Recent comments = +2 points
- Production Bug: Bug type with High+ priority = +4 points
Smart Recommendations:
if ticket.priority == "Highest" and ticket.type == "Bug":
recommendation = "DROP EVERYTHING - Critical bug"
elif ticket.has_recent_comments and ticket.status == "Code Review":
recommendation = "Address review feedback ASAP"
elif ticket.is_blocking_others:
recommendation = "Unblock others - high team impact"
elif ticket.status == "In Progress" and days_since_update > 2:
recommendation = "Continue momentum - you were making progress"
else:
recommendation = "Good candidate for focused work time"
Also check git context inline (current branch, recent commits) to see which tickets already have active work in progress, so the plan can favor continuing momentum over context-switching.
If --urgent-only is set, skip straight to just the Immediate Actions section (Priority: Highest, production bugs, blocking issues) and drop the rest of Phase 5's sections.
If --time-box <hours> is set, cap the Recommended Schedule at that many hours and drop lower-priority items that wouldn't fit rather than padding the schedule to fill it.
Phase 5: Generate Output
Track the identified items in a todo list (use TodoWrite if available; otherwise just list them in the report). For the detailed output template, see references/output-formats.md.
Report sections:
- Immediate Actions (Do First): Critical/urgent tickets requiring immediate attention
- High Impact Work (Do Today): High-priority items that fit into today's schedule
- This Week (Schedule Time): Medium-priority items to plan for the week
- On Hold (Monitor): Tickets waiting on others or blocked
- Work Summary: Active ticket count, estimated hours, sprint progress
- Smart Suggestions: Time-blocking and energy management recommendations
- Recommended Schedule: Hour-by-hour daily plan
Command Options
--project <KEY> or -p <KEY>
Specify the Jira project key explicitly.
jira-todo --project ABC
jira-todo -p PROJ
--urgent-only
Show only critical/urgent tickets requiring immediate attention (Priority: Highest, production bugs, blocking issues).
jira-todo --urgent-only
--include-blocked
Include tickets that are blocked (filtered out by default), with suggestions for unblocking.
jira-todo --include-blocked
--time-box <hours>
Optimize recommendations for specific time availability.
jira-todo --time-box 3
Integration Points
- jira-daily: previous day's work influences today's recommendations
- jira-cli: use for detailed command syntax and sprint/epic management patterns
- git: check current branch and recent commits for context on active work
Usage Examples
jira-todo # auto-detects project from config
jira-todo --project ABC # specify project explicitly
jira-todo --urgent-only # only show urgent items
jira-todo --time-box 4 # plan for limited time
jira-todo --include-blocked # include blocked tickets in analysis
Important Notes
- Requires jira-cli: install from https://github.com/ankitpokhrel/jira-cli
- Config location:
~/.config/.jira/.config.yml - Real data only: all recommendations are based on actual Jira ticket data