jira-ticket-prioritizer

JIRA Ticket Prioritizer

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "jira-ticket-prioritizer" with this command: npx skills add delexw/claude-code-misc/delexw-claude-code-misc-jira-ticket-prioritizer

JIRA Ticket Prioritizer

Analyze a set of JIRA tickets to determine optimal execution order based on dependencies, priority, and grouping. Produces grouped layers usable standalone or as a pre-step before implement /forge .

Inputs

Raw arguments: $ARGUMENTS

Infer from the arguments:

  • TICKET_INPUT: comma-separated ticket keys OR a JQL query (detected by presence of = , AND , OR )

  • EXTRA_CONTEXT: (optional) additional context for prioritization

System Requirements

  • jira CLI installed and configured (https://github.com/ankitpokhrel/jira-cli)

  • Environment variable JIRA_API_TOKEN set with a valid Jira API token. Important: When checking this variable, verify at least 2 times before concluding it is not set. Never expose the value — use existence checks only.

Execution

Step 1 — Parse Input

  • Check if TICKET_INPUT contains = , AND , or OR (case-insensitive) to detect JQL

  • If JQL detected: run jira issue list --jql "TICKET_INPUT" --plain --columns key,status --no-headers to resolve to ticket keys with statuses

  • If comma-separated: split on , and trim whitespace

  • Validate each key matches [A-Z]+-\d+

  • If fewer than 2 valid tickets, report the single ticket and exit

Step 2 — Classify and Fetch All Tickets

  • Create temp directory: mkdir -p .jira-ticket-prioritizer-tmp/tickets

  • For each ticket key, fetch via jira CLI: jira issue view {KEY} --raw > .jira-ticket-prioritizer-tmp/tickets/{KEY}.json

  • Parse each ticket using the jira-ticket-viewer parse script: node ${CLAUDE_SKILL_DIR}/../jira-ticket-viewer/scripts/parse-ticket.js < .jira-ticket-prioritizer-tmp/tickets/{KEY}.json > .jira-ticket-prioritizer-tmp/tickets/{KEY}-parsed.json

  • Collect all parsed outputs into a single JSON array and write to .jira-ticket-prioritizer-tmp/all-tickets.json

  • Classify tickets by status — fetch and parse ALL tickets, then split into two groups:

  • pending = tickets with status "To Do" or "Backlog" — these will be scored, grouped, and placed in output layers

  • context = tickets with any other status ("In Progress", "In Review", "Done", "Closed", "Resolved") — these are NOT placed in layers but are used for dependency resolution in Steps 3-5

Step 3 — Build Dependency Graph

  • Run: node ${CLAUDE_SKILL_DIR}/scripts/build-dependency-graph.js < .jira-ticket-prioritizer-tmp/all-tickets.json > .jira-ticket-prioritizer-tmp/graph.json

  • Review graph output for cycles or warnings

  • See references/dependency-analysis.md for relationship mapping rules

  • The graph includes ALL tickets (pending + context) so dependencies on in-progress/done tickets are visible

Step 4 — Semantic Dependency Analysis & Parent Ticket Evaluation

  • Evaluate parent/container tickets and semantic dependencies per references/dependency-analysis.md

  • Add soft edges with confidence levels (high/medium/low) to the graph

  • Re-run topological sort if new edges were added:

  • Update all-tickets.json with additional softEdges and re-run build-dependency-graph.js

Step 5 — Priority Scoring & Grouping

  • Only score pending tickets — context tickets are not scored or placed in layers

  • For tickets at the same dependency layer, score using weights from references/priority-weights.md

  • Sort within each layer by descending score

  • Apply EXTRA_CONTEXT context as a tiebreaker or boost

  • Group related tickets within the same layer — see references/dependency-analysis.md Grouping Rules. First ticket in each group (highest score) is the primary ticket.

  • Determine repo for each ticket (REQUIRED): read the ticket summary, description, components, labels, and linked issues, then use your judgment to infer which repository from the available repo list (absolute paths provided in EXTRA_CONTEXT ) this ticket belongs to. Output the repo basename only (e.g. "elements-backend" , not the full path). Every ticket MUST have a repo — use the best match based on the ticket context. If the ticket mentions frontend/UI/React/CSS, it likely belongs to the storefront. If it mentions API/backend/database/model, it likely belongs to the backend. If genuinely ambiguous, default to the first repo in the list.

  • Determine branch for each ticket (REQUIRED): slugify the ticket key + summary into a branch name. Format: {ticket-key}-{slugified-title} — lowercase, replace spaces and special characters with hyphens, collapse consecutive hyphens, strip leading/trailing hyphens, truncate to 50 characters (e.g. "ec-123-fix-payment-bug" ). Every ticket MUST have a branch .

  • Determine hasFrontend for each group: set to true if any ticket in the group involves frontend/UI work. Infer from ticket summary, description, components, and labels — look for signals like UI, frontend, React, CSS, component, page, layout, design, Figma links, .tsx /.jsx file mentions, or visual/browser-related keywords. Set to false only when all tickets in the group are clearly backend-only.

  • Resolve cross-layer dependencies:

  • If a pending ticket depends on a context ticket with status "Done"/"Closed"/"Resolved" → dependency is resolved, ticket proceeds normally

  • If a pending ticket depends on a context ticket with any other status (e.g. "In Progress") → mark as skipped with reason including the dependency key and its status

  • If a pending ticket depends on another pending ticket in a different layer → normal layering (layer N+1 depends on layer N)

  • Tickets with status "Done"/"Closed"/"Resolved" → excluded

  • Container/parent stories with no implementable work → excluded

Step 6 — Generate Output

  • See references/output-format.md for report schema and JSON structure

  • Write .jira-ticket-prioritizer-tmp/detailed-report.json — full details including scores, justifications, dependency graph, skipped tickets, excluded tickets, and warnings

  • Write .jira-ticket-prioritizer-tmp/output.json — the grouped layers object with layers , skipped , and excluded arrays

  • Present only output.json to the user. The detailed report is saved for reference but not displayed.

Reference Files

Name When to Read

references/priority-weights.md Step 5 — scoring rules and factor weights

references/output-format.md Step 6 — report template and JSON schema

references/dependency-analysis.md Steps 3-5 — dependency detection and grouping rules

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

figma-reader

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

pir

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

forge

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

meta-prompter

No summary provided by upstream source.

Repository SourceNeeds Review