jira-workflow
Primitives for interacting with Jira via MCP Atlassian — configure MCP, create/update task files, comment, transition status, and assign issues.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Primitives for interacting with Jira via MCP Atlassian — configure MCP, create/update task files, comment, transition status, and assign issues.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
Read HANDOFF.md and continue from where we left off
Use when ending a session, completing a milestone, or stopping mid-task and context must be preserved for the next agent
Use when organizing raw content into slide-ready format, or when the user says "prepare slides", "structure this for a presentation", "brief for pptx".
Use when the user shares a URL or article and asks to extract key learnings, summarize topics, or generate a digest formatted for Google Chat, Slack, Discord, Telegram, or similar messaging tools. Accepts an optional format parameter.
Use when working with Kubernetes clusters, manifests, and related tasks.
Use when writing a CV, bio, LinkedIn post, or talk abstract for Silvio; when calibrating technical recommendations to Silvio's experience ("do I have experience with X?"); or when an introduction or speaker section is needed. Loads timeline, stack, credentials, and preferences on demand via the pointer table.
| name | jira-workflow |
| description | Primitives for interacting with Jira via MCP Atlassian — configure MCP, create/update task files, comment, transition status, and assign issues. |
| user-invocable | false |
Paths convention:
.jira/config.md (always here)<jira_folder>/<JIRA_TASK_ID>.md — read ## Paths → Jira folder from config.md; default .jira/This file will be created and updated by the skill to keep track of the issue's status, owner, branch, and work log. It serves as the authoritative source of truth for the issue's current state and history of actions taken.
Stored at <jira_folder>/<JIRA_TASK_ID>.md — resolve <jira_folder> from config.md → ## Paths; default .jira/.
Should use the template at jira-workflow/templates/task.md.
Rules:
Always respond in pt) do NOT apply to it.**Repo:**, no YAML frontmatter, no **Epic URL:**)## Description — do not summarize or rewrite itUse mcp__atlassian__getAccessibleAtlassianResources to get the cloudId of the Atlassian site.
Use mcp__atlassian__atlassianUserInfo to get the accountId of the logged-in user.
Use mcp__atlassian__getJiraIssue with responseContentFormat: "markdown".
Fields needed for the task file: key, summary, status, description, assignee, sprint, epic.
Resolve the Jira folder path before writing any file:
.jira/config.md → ## Paths → Jira folder value.config.md doesn't exist, default to .jira/.Task file path: <jira_folder>/<JIRA_TASK_ID>.md (create the folder if needed).
If the resolved Jira folder is .jira/: run grep -xF '.jira/' .gitignore — if it doesn't match exactly, suggest adding .jira/ to .gitignore and ask before making any change.
Do NOT use the Write tool to create the task file. Use the script below — it copies the template and substitutes placeholders, ensuring the format is always correct regardless of the issue description's internal structure.
Steps:
/tmp/jira_description_<JIRA_TASK_ID>.txt using the Write tool.<VALUE> with actual data from the issue:skill_dir="$(readlink -f ~/.claude/skills/jira-workflow)"
python3 "${skill_dir}/scripts/create-task-file.py" \
--output <jira_folder>/<ISSUE_KEY>.md \
--issue-key <ISSUE_KEY> \
--summary "<SUMMARY>" \
--site "<SITE>" \
--story-key "<STORY_KEY>" \
--story-summary "<STORY_SUMMARY>" \
--epic-key "<EPIC_KEY>" \
--epic-summary "<EPIC_SUMMARY>" \
--status "<STATUS>" \
--assignee "<ASSIGNEE>" \
--sprint "<SPRINT>" \
--description-file /tmp/jira_description_<JIRA_TASK_ID>.txt
Omit --story-key/--story-summary, --epic-key/--epic-summary, or --sprint entirely if the values are empty — the script removes those lines automatically.
Sync task file content as a comment on the issue (via mcp__atlassian__addCommentToJiraIssue with contentFormat: "markdown") at these moments:
mcp__atlassian__getTransitionsForJiraIssue to list available transitions.mcp__atlassian__transitionJiraIssue with the transition.id found.Status field in the task file.Use mcp__atlassian__editJiraIssue with:
{
"fields": {
"assignee": { "accountId": "<current_user_account_id>" }
}
}
Use mcp__atlassian__createJiraIssue with issueTypeName, summary, and projectKey.
If .jira/config.md exists in the current project, apply the additional_fields defined in its "Issue creation — required fields" section before creating any issue.
After creation, link to the epic via mcp__atlassian__editJiraIssue with customfield_10014: "<EPIC_KEY>" if the parent field is not accepted by the project's issue type.