Help us improve
Share bugs, ideas, or general feedback.
From runesmith-jira
Create, format, and push Jira ticket drafts for any issue type (Task, Story, Bug, Epic). Includes JSON format specification, field guidance per issue type, and the push-to-Jira workflow. Trigger on "create a ticket", "make a Jira ticket", "write a ticket for this", "draft a ticket", "create a task for", "make the ticket".
npx claudepluginhub runemarklabs/runesmith --plugin runesmith-jiraHow this skill is triggered — by the user, by Claude, or both
Slash command
/runesmith-jira:ticketThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Create, format, and push Jira tickets with proper structure and field guidance.
Mandates invoking relevant skills via tools before any response in coding sessions. Covers access, priorities, and adaptations for Claude Code, Copilot CLI, Gemini CLI.
Share bugs, ideas, or general feedback.
Create, format, and push Jira tickets with proper structure and field guidance.
Supports Task, Story, Bug, Epic with issue-type-specific fields and acceptance criteria.
lib/atlassian-rest.md - endpoints + ADF bodylib/credentials.md - auth resolutionlib/consent.md - trigger phrases for pushlib/tokens.md - {PROJECT_KEY}, {LEAD_ACCOUNT_ID}lib/comms-check.md - runs firstlib/user-prompts.md - structured-input requirement for any user promptThis skill follows the marketplace-wide user-prompt standard in lib/user-prompts.md. Every user prompt MUST use the host client's structured input UI (single-pick, multi-pick, or text-input form). Never freeform plain-text yes/no questions. The only exception is the consent-trigger gate documented in lib/consent.md, which waits for user-initiated phrases like "make the ticket".
See lib/comms-check.md. Pause for to: user items.
.credentials per credentials.md. Required: ATLASSIAN_API_URL, ATLASSIAN_API_TOKEN, ATLASSIAN_API_EMAIL. If missing → "Run /core:setup."{PROJECT_KEY}: ATLASSIAN_JIRA_PROJECT_KEY from .credentials, then CLAUDE.md, else ask user.accountId: if user provides email, look up via GET /rest/api/3/user/search?query=<email>. If no assignee given, leave unset.GET /rest/api/3/field. Use priority by default. Map to ATLASSIAN_BUG_SEVERITY_FIELD only if set.Use for:
Do not use for:
consent.md)For all types:
For Task/Story:
/rest/api/3/field)For Bug:
priority unless ATLASSIAN_BUG_SEVERITY_FIELD configuredFor Epic:
Convert markdown description to ADF (see atlassian-rest.md). Minimal example:
{
"fields": {
"project": { "key": "{PROJECT_KEY}" },
"issuetype": { "name": "Task" },
"summary": "Short summary",
"description": {
"type": "doc",
"version": 1,
"content": [
{ "type": "paragraph", "content": [{ "type": "text", "text": "Body paragraph" }] }
]
},
"labels": ["bootstrap"],
"assignee": { "accountId": "{LEAD_ACCOUNT_ID}" },
"priority": { "name": "Medium" }
}
}
Show formatted JSON in chat. Ask: "Push this ticket to {PROJECT_KEY}?"
Wait for consent trigger phrase per consent.md. Do not push without it.
POST {ATLASSIAN_API_URL}/rest/api/3/issue
On success, response includes key and self. Construct browse URL:
{ATLASSIAN_API_URL}/browse/<key>
✓ {KEY} created
{summary}
{ATLASSIAN_API_URL}/browse/{KEY}
credentials.mdaccountId (not email/name)key captured| Status | Response | Action |
|---|---|---|
| 400 | errorMessages: ["customfield_X is required"] | Discover field via /rest/api/3/field, prompt user |
| 401 | invalid auth | Re-read .credentials, retry once, then "Run /core:setup." |
| 403 | no permission to create in project | Surface, abort |
| 404 | project not found | Confirm {PROJECT_KEY} |
| 429 | rate limit | Honor Retry-After, retry once |
No consent given: Hold the draft, do not push. Tell user "Say 'make the ticket' to push."
Severity field missing: "Severity is a custom field. Set ATLASSIAN_BUG_SEVERITY_FIELD in .credentials or use Priority."