From kraftwork-jira
Use when working with a specific Jira ticket — viewing details, transitioning status, adding comments, editing fields, or creating new tickets
How this skill is triggered — by the user, by Claude, or both
Slash command
/kraftwork-jira:ticket-management-describeThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Read `workspace.json` from the workspace root. Extract `jira.project` and `jira.cloudId`. If the `jira` section is missing, tell the user to run `/kraft-init`.
Read workspace.json from the workspace root. Extract jira.project and jira.cloudId. If the jira section is missing, tell the user to run /kraft-init.
Single-ticket operations via acli jira CLI.
Optional subcommand and ticket ID: view, transition, comment, edit, create.
Examples: /jira-ticket PROJ-1234, /jira-ticket transition PROJ-1234, /jira-ticket create
Default (ticket ID given, no subcommand): view.
Do NOT gate on acli auth status — it returns false negatives. Instead, run the actual command. If it fails with an auth/unauthorized error, then suggest acli auth login.
acli jira workitem view [TICKET] --fields "*all"
Present:
For just the raw JSON (useful for scripting):
acli jira workitem view [TICKET] --json
Always use the Atlassian MCP tool to get real transitions — do NOT guess:
mcp__atlassian__getTransitionsForJiraIssue
cloudId: [jira.cloudId from workspace.json]
issueIdOrKey: "[TICKET]"
Present what's actually available:
[TICKET] is currently: In Progress
Available transitions:
1. Code Review → In Code Review
2. To Do
Which transition?
Note: if the desired status isn't directly reachable, you may need to step through intermediate states. Discover transitions at each step.
Try acli first (simpler, works for transitions without required fields):
acli jira workitem transition --key "[TICKET]" --status "[STATUS]" --yes
If acli fails with a required fields error, fall back to the Atlassian MCP tool which can pass fields:
mcp__atlassian__transitionJiraIssue
cloudId: [jira.cloudId from workspace.json]
issueIdOrKey: "[TICKET]"
transition: {"id": "[TRANSITION_ID]"}
fields: {"resolution": {"name": "..."}, ...}
Transitions with hasScreen: true (visible in Phase 1 response) typically require fields like Story Points, Epic Link, or Resolution. The acli CLI cannot pass these — the MCP fallback is required.
acli jira workitem view [TICKET] --fields "status"
Report new status.
Ask the user for the comment text. For long comments, write to a temp file.
For short comments:
acli jira workitem comment create --key "[TICKET]" --body "[COMMENT]"
For long comments:
echo "[COMMENT]" > /tmp/jira-comment.txt
acli jira workitem comment create --key "[TICKET]" --body-file /tmp/jira-comment.txt
Report that the comment was added.
acli jira workitem view [TICKET] --fields "summary,assignee,priority,labels,status" --json
Present current values. Ask the user what they want to change.
Build the edit command with the requested changes:
acli jira workitem edit --key "[TICKET]" --summary "[NEW_SUMMARY]"
acli jira workitem edit --key "[TICKET]" --assignee "[EMAIL]"
acli jira workitem edit --key "[TICKET]" --labels "[LABEL1,LABEL2]"
acli jira workitem edit --key "[TICKET]" --type "[NEW_TYPE]"
For self-assignment:
acli jira workitem edit --key "[TICKET]" --assignee "@me"
Multiple fields can be combined in one command:
acli jira workitem edit --key "[TICKET]" --summary "[SUMMARY]" --assignee "@me" --labels "[LABELS]"
acli jira workitem view [TICKET] --fields "summary,assignee,priority,labels"
Report updated fields.
Prompt the user for:
@me for self-assignment)Parent Epic rule: Every ticket must have a parent epic unless the type is explicitly Epic. If the user doesn't provide one, search for relevant epics and suggest matches before asking. Epics themselves are typically created by someone else or via the Jira UI — if the user asks to create an Epic, confirm that's what they intend.
To find relevant epics, search using keywords from the ticket summary:
acli jira workitem search --jql "project = [jira.project] AND type = Epic AND status != Done AND summary ~ '[KEYWORD]' ORDER BY updated DESC" --fields "key,summary,status" --limit 10
If no keyword match, fall back to recently active epics:
acli jira workitem search --jql "project = [jira.project] AND type = Epic AND status != Done ORDER BY updated DESC" --fields "key,summary,status" --limit 10
Present matches and let the user pick:
This ticket needs a parent epic. Here are some that might fit:
1. [PROJECT]-3700 Messaging AI Agent Builder
2. [PROJECT]-3600 Dashboard V4 Integration
3. [PROJECT]-3500 Admin Portal
Which epic? (number, key, or describe what you're looking for)
acli jira workitem create --project "[jira.project]" --type "[TYPE]" --summary "[SUMMARY]" --parent "[EPIC_KEY]" --description "[DESCRIPTION]"
Add optional flags as provided:
--assignee "[EMAIL]" --label "[LABELS]"
For long descriptions:
echo "[DESCRIPTION]" > /tmp/jira-description.txt
acli jira workitem create --project "[jira.project]" --type "[TYPE]" --summary "[SUMMARY]" --parent "[EPIC_KEY]" --description-file /tmp/jira-description.txt
Report: ticket key, URL, summary, type, parent epic.
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub filipeestacio/kraftwork --plugin kraftwork-jira