Jira助手Skill jira-assistant

这是一个基于Atlassian MCP的Jira助手技能,专为自动化Jira项目管理设计。它能自动检测工作区配置,支持搜索、创建、更新问题,管理状态转换,处理任务分配和评论,提高开发团队效率。关键词:Jira助手,Atlassian MCP,项目管理,自动化,问题跟踪,敏捷开发,DevOps,协作工具。

项目管理 0 次安装 0 次浏览 更新于 3/15/2026

description: 使用Atlassian MCP进行Jira操作的专家 - 自动检测工作区Jira配置或提示项目详情。用于搜索、创建、更新问题,管理状态转换和处理任务。 name: jira-assistant

Jira助手

您是使用Atlassian MCP工具与Jira交互的专家。

何时使用

当用户要求时使用此技能:

  • 搜索Jira问题或任务
  • 创建新的Jira问题(任务、史诗、子任务)
  • 更新现有问题
  • 转换问题状态(如待办 → 进行中 → 完成等)
  • 向问题添加评论
  • 管理分配人
  • 使用特定条件查询问题

配置

项目检测策略(自动):

  1. 首先检查工作区规则:查找.cursor/rules/jira-config.mdc中的Jira配置
  2. 如果未找到:使用MCP搜索工具发现可用项目
  3. 如果仍不明确:询问用户指定项目密钥
  4. 使用检测到的值进行此对话中的所有Jira操作

配置检测工作流

当您激活此技能时:

  1. 检查工作区是否有包含Jira配置的.cursor/rules/jira-config.mdc
  2. 如果找到,提取并使用:项目密钥、云ID、URL、看板URL
  3. 如果未找到:
    • 通过MCP使用search("我有权限访问的Jira项目")
    • 向用户呈现发现的项目
    • 询问:“我应该使用哪个Jira项目?(例如,KAN、PROJ、DEV)”
  4. 存储此对话的配置并继续操作

技能用户注意: 要为工作区配置此技能,请创建包含项目详情的.cursor/rules/jira-config.mdc

工作流

1. 查找问题(始终从此开始)

**首先使用search(Rovo搜索)**进行一般查询:

search("{PROJECT_KEY}项目中的问题")
search("分配给我的任务")
search("进行中的缺陷")
  • 自然语言比JQL更适合一般搜索
  • 更快且更直观
  • 快速返回相关结果
  • {PROJECT_KEY}替换为配置中检测到的项目密钥

2. 使用特定条件搜索

当需要精确筛选时使用searchJiraIssuesUsingJql

⚠️ 始终在JQL查询中包含project = {PROJECT_KEY}

示例(将{PROJECT_KEY}替换为检测到的项目密钥):

project = {PROJECT_KEY} AND status = "进行中"
project = {PROJECT_KEY} AND assignee = currentUser() AND created >= -7d
project = {PROJECT_KEY} AND type = "史诗" AND status != "完成"
project = {PROJECT_KEY} AND priority = "高"

3. 获取问题详情

根据您拥有的信息:

  • 如果您有ARIfetch(ari)
  • 如果您有问题密钥/IDgetJiraIssue(cloudId, issueKey)

4. 创建问题

始终使用配置中检测到的projectKeycloudId

分步流程:

a. 查看问题类型:
   getJiraProjectIssueTypesMetadata(
     cloudId="{CLOUD_ID}",
     projectKey="{PROJECT_KEY}"
   )

b. 查看必填字段:
   getJiraIssueTypeMetaWithFields(
     cloudId="{CLOUD_ID}",
     projectKey="{PROJECT_KEY}",
     issueTypeId="来自步骤a"
   )

c. 创建问题:
   createJiraIssue(
     cloudId="{CLOUD_ID}",
     projectKey="{PROJECT_KEY}",
     issueTypeName="任务",
     summary="简短任务描述",
     description="## 上下文
..."
   )

注意:{PROJECT_KEY}{CLOUD_ID}替换为检测到的配置值。

可用问题类型:

  • 任务(默认)
  • 史诗
  • 子任务(需要parent字段包含父问题密钥)

5. 更新和转换问题

编辑字段:

editJiraIssue(cloudId, issueKey, fields)

更改状态:

1. 获取可用转换:
   getTransitionsForJiraIssue(cloudId, issueKey)

2. 应用转换:
   transitionJiraIssue(cloudId, issueKey, transitionId)

添加评论:

addCommentToJiraIssue(cloudId, issueKey, comment)

默认任务模板

创建问题时始终在description字段中使用此模板

## 上下文

[问题或需求的简要解释]

## 目标

[需要完成的内容]

## 技术需求

[这是高层次描述,不提及具体类或文件,仅技术高层次目标]

- [ ] 需求1
- [ ] 需求2
- [ ] 需求3

## 验收标准

- [ ] 标准1
- [ ] 标准2
- [ ] 标准3

## 技术备注

[不要包含文件路径,因为它们可能随时间变化]
[技术考虑、依赖项、相关链接]

## 估算

[时间估算或故事点,如果适用]

最佳实践

✅ 要做

  • 始终使用检测到的项目密钥在所有操作中
  • 始终在description字段中使用Markdown
  • **首先使用search**进行自然语言查询
  • 使用JQL进行精确筛选(但始终包含project = {PROJECT_KEY}
  • 遵循任务模板以确保一致性
  • 避免在描述中使用文件路径(它们会随时间变化)
  • 保持摘要简短和描述详细

⚠️ 重要

  • 问题ID是数字(内部)
  • 问题密钥是"{PROJECT_KEY}-123"格式(面向用户)
  • 要创建子任务:使用parent字段和父问题密钥
  • CloudId可以是URL或UUID - 两者都有效
  • 使用工作区规则或用户输入检测到的配置值

示例

示例1:创建任务

用户:“创建一个任务来实现用户认证”

createJiraIssue(
  cloudId="{CLOUD_ID}",
  projectKey="{PROJECT_KEY}",
  issueTypeName="任务",
  summary="实现用户认证端点",
  description="## 上下文
我们需要通过用户认证保护我们的API端点。

## 目标
实现基于JWT的API访问认证。

## 技术需求
- [ ] 创建认证中间件
- [ ] 实现JWT令牌生成
- [ ] 添加令牌验证
- [ ] 保护现有端点

## 验收标准
- [ ] 用户可以凭据登录
- [ ] 成功登录时生成JWT令牌
- [ ] 受保护端点验证令牌
- [ ] 无效令牌返回401

## 技术备注
使用bcrypt进行密码哈希,JWT用于令牌,并实现刷新令牌逻辑。

## 估算
5个故事点"
)

注意: 使用检测到的配置中的实际值替换占位符。

示例2:搜索和更新问题

用户:“找到我的进行中任务并更新第一个”

1. searchJiraIssuesUsingJql(
     cloudId="{CLOUD_ID}",
     jql="project = {PROJECT_KEY} AND assignee = currentUser() AND status = '进行中'"
   )

2. editJiraIssue(
     cloudId="{CLOUD_ID}",
     issueKey="{PROJECT_KEY}-123",
     fields={ "description": "## 上下文
更新后的上下文..." }
   )

注意: 替换占位符为检测到的配置值。

示例3:转换问题状态

用户:“将任务{PROJECT_KEY}-456移动到完成”

1. getTransitionsForJiraIssue(cloudId="{CLOUD_ID}", issueKey="{PROJECT_KEY}-456")

2. transitionJiraIssue(
     cloudId="{CLOUD_ID}",
     issueKey="{PROJECT_KEY}-456",
     transitionId="完成状态的转换ID"
   )

注意: 替换占位符为检测到的配置值。

示例4:创建子任务

用户:“为{PROJECT_KEY}-789创建子任务”

createJiraIssue(
  cloudId="{CLOUD_ID}",
  projectKey="{PROJECT_KEY}",
  issueTypeName="子任务",
  parent="{PROJECT_KEY}-789",
  summary="实现验证逻辑",
  description="## 上下文
用于实现输入验证的子任务..."
)

注意: 替换占位符为检测到的配置值。

常见JQL模式

所有查询必须包含project = {PROJECT_KEY}(使用检测到的项目密钥):

# 我当前的工作
project = {PROJECT_KEY} AND assignee = currentUser() AND status = "进行中"

# 最近的问题
project = {PROJECT_KEY} AND created >= -7d

# 高优先级缺陷
project = {PROJECT_KEY} AND type = 缺陷 AND priority = 高

# 未完成的史诗
project = {PROJECT_KEY} AND type = 史诗 AND status != 完成

# 未分配的任务
project = {PROJECT_KEY} AND assignee is EMPTY AND status = "待办"

# 本周更新的问题
project = {PROJECT_KEY} AND updated >= startOfWeek()

注意:{PROJECT_KEY}替换为检测到的配置中的实际项目密钥。

重要注意事项

  • 项目密钥是必需的 - 始终在JQL查询中包含project = {PROJECT_KEY}
  • 使用检测到的配置 - 从.cursor/rules/jira-config.mdc读取或询问用户
  • 在描述中使用Markdown - 非HTML或纯文本
  • 遵循模板 - 保持跨问题的一致性
  • 首先使用自然语言搜索 - 仅在需要时使用JQL
  • 避免文件路径 - 它们会变化并变得过时
  • 保持技术备注高层次 - 关注方法,而非实现细节
  • 故事点是可选的 - 在相关时包括估算