用途
Jira Skill 用于将 Jira 工单操作接入对话流程,全部通过 Atlassian MCP 完成。主要覆盖四类操作:查看工单、根据工单生成 Git 分支名、流转工单状态、创建新工单。
触发方式包括:用户提到 jira、ticket、工单键(正则 [A-Z][A-Z0-9]+-\d+)、branch from ticket、transition status、start work、pr opened、pr merged 等关键词,或直接输入 /jira。
不适用场景:GitHub Issues 应使用 /issue-analyze;搜索 Jira 工单属于 v1.1(暂缓);通用项目管理不在范围内。
主要能力
输入解析
从用户输入中提取 issueKey 和可选的 host:
- 裸键:OK-51513 → key=OK-51513
- 完整 URL:https://foo.atlassian.net/browse/OK-51513 → key=OK-51513, host=foo.atlassian.net
- 软件 URL:https://foo.atlassian.net/jira/software/.../OK-51513 → key=OK-51513, host=foo.atlassian.net
- 分支上下文:从 git branch --show-current 自动提取,通过 {TICKET_PATTERN} 正则匹配
正则:工单键 ([A-Z][A-Z0-9]+-\d+);host https?://([^/]+.atlassian.net)。
CloudId 解析
- 调用 getAccessibleAtlassianResources()
- 0 个结果 → 报错“Atlassian MCP not configured or unauthorized”
- 1 个结果 → 自动使用其 cloudId
- N 个结果 → 若提供了 host 且匹配则使用匹配的 cloudId;提供了 host 但不匹配则警告并让用户选择或中止;未提供 host 则让用户选择实例
cloudId 不做持久化,每次运行时解析,会话内由上下文自然缓存。
子命令 view
步骤:解析输入得到 issueKey(URL 时含 host)→ 解析 cloudId → 调用 getJiraIssue(cloudId, issueKey) → 格式化输出。
输出格式包含标题“## KEY: Summary”,以及字段表格(Status、Assignee、Priority、Type、Created),下方为 Description(前 500 字符,超出截断)。
子命令 branch
步骤:解析输入得到 issueKey → 解析 cloudId → getJiraIssue 获取 summary 和 issuetype → 按 issue type 映射分支前缀(见 references/branch-policy.md)→ 若提供 --type 则覆盖 → 从 summary 生成 slug → 组装分支名 ${prefix}/${issueKey}-${slug} → 检查本地与远程冲突 → 计划模式输出分支名和命令,执行模式运行 git checkout -b。
计划输出示例:Branch: feat/OK-51513-add-user-profile-page;From: OK-51513 "Add user profile page" (Story);To create: git checkout -b feat/OK-51513-add-user-profile-page。执行模式(--execute)直接运行 git checkout -b <branch>。
子命令 transition
步骤:解析输入得到 issueKey 和 --event 值 → 解析 cloudId → getJiraIssue 获取当前状态 → getTransitionsForJiraIssue 获取可用流转 → 将 event 匹配到目标流转(见 references/transition-mapping.md)→ 计划模式显示计划,执行模式经 AskUserQuestion 后调用 transitionJiraIssue。
计划输出示例:Issue: OK-51513 "Add user profile page";Current: To Do;Event: start_work;Target: In Progress (transition id: 21)。
子命令 create
步骤:从输入提取项目键(裸键如 OK,或从工单键前缀提取)→ 解析 cloudId → getJiraProjectIssueTypesMetadata(cloudId, projectKey) 列出可用类型 → 校验 issue type(大小写不敏感匹配)→ 将描述格式化为 markdown(见 references/create-policy.md)→ 计划模式显示创建计划,执行模式经 AskUserQuestion 后调用 createJiraIssue。
输入来源支持两种:--summary 和 --description 显式值;或从用户提示中推断 summary 和 description(如 Background、Items 等结构化内容)。
createJiraIssue 参数:cloudId(步骤 2 解析)、projectKey(来自输入)、issueTypeName(经可用类型校验)、summary(来自 --summary 或上下文)、description(来自 --description 或上下文格式化的 markdown)、contentFormat 固定为 "markdown"。
执行输出示例:✅ Created: OK-51514,并附 https://yourorg.atlassian.net/browse/OK-51514。
使用方式
命令示例:
- /jira view OK-51513 → 显示工单详情(summary、status、assignee、priority、type、description)
- /jira branch OK-51513 → 计划:feat/OK-51513-add-user-profile-page
- /jira branch OK-51513 --type fix --execute → 执行 git checkout -b fix/OK-51513-add-user-profile-page
- /jira transition OK-51513 --event start_work → 计划:To Do → In Progress
- /jira transition OK-51513 --event pr_merged --execute --comment "Merged via PR #42" → 执行流转并添加评论
- /jira create OK --summary "Fix login timeout" --type Bug → 计划:在 OK 中创建 Bug
- /jira create OK --summary "Add user dashboard" --type Story --description "## Background\nDashboard needed for..." --execute → ✅ Created: OK-51515
默认均为计划模式,需加 --execute 才实际执行。
适用场景
- 开发者在对话中快速查看 Jira 工单信息
- 从工单自动生成符合团队规范的分支名并创建分支
- 根据事件(如 start_work、pr_merged)流转工单状态
- 在对话中直接创建 Jira 工单
限制
- 依赖 Atlassian MCP,未连接时提示“Atlassian MCP not connected. Enable Atlassian integration in claude.ai settings.”
- OAuth 过期时提示重新授权
- 工单不存在、流转不可用、网络错误、项目不存在、issue type 不可用等均有对应降级提示
- 搜索 Jira 工单功能属于 v1.1,暂缓
- 不适用于 GitHub Issues 和通用项目管理
- 分支前缀映射、slug 算法、冲突检测、流转事件词汇与解析算法、描述格式指南等细节见对应 references 文件,资料中未展开具体内容