jira-ticket-prioritizer

安装量: 39
排名: #18160

安装

npx skills add https://github.com/delexw/claude-code-misc --skill 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
返回排行榜