名称: jira 描述: 当用户提到Jira问题(例如“PROJ-123”)、询问票务、希望创建/查看/更新问题、检查sprint状态或管理其Jira工作流时使用。触发关键词如“jira”、“issue”、“ticket”、“sprint”、“backlog”或问题键模式。
Jira
与Jira的自然语言交互。支持多个后端。
后端检测
首先运行此检查以确定使用哪个后端:
1. 检查jira CLI是否可用:
→ 运行:which jira
→ 如果找到:使用CLI后端
2. 如果没有CLI,检查Atlassian MCP:
→ 查找mcp__atlassian__*工具
→ 如果可用:使用MCP后端
3. 如果两者都不可用:
→ 指导用户进行设置
| 后端 | 何时使用 | 参考 |
|---|---|---|
| CLI | jira命令可用 |
references/commands.md |
| MCP | Atlassian MCP工具可用 | references/mcp.md |
| 无 | 两者都不可用 | 指导安装CLI |
快速参考(CLI)
如果使用MCP后端,跳过此部分。
| 意图 | 命令 |
|---|---|
| 查看问题 | jira issue view ISSUE-KEY |
| 列出我的问题 | jira issue list -a$(jira me) |
| 我的进行中问题 | jira issue list -a$(jira me) -s"In Progress" |
| 创建问题 | jira issue create -tType -s"Summary" -b"Description" |
| 移动/过渡 | jira issue move ISSUE-KEY "State" |
| 分配给我 | jira issue assign ISSUE-KEY $(jira me) |
| 取消分配 | jira issue assign ISSUE-KEY x |
| 添加评论 | jira issue comment add ISSUE-KEY -b"Comment text" |
| 在浏览器中打开 | jira open ISSUE-KEY |
| 当前sprint | jira sprint list --state active |
| 我是谁 | jira me |
快速参考(MCP)
如果使用CLI后端,跳过此部分。
| 意图 | MCP工具 |
|---|---|
| 搜索问题 | mcp__atlassian__searchJiraIssuesUsingJql |
| 查看问题 | mcp__atlassian__getJiraIssue |
| 创建问题 | mcp__atlassian__createJiraIssue |
| 更新问题 | mcp__atlassian__editJiraIssue |
| 获取过渡 | mcp__atlassian__getTransitionsForJiraIssue |
| 过渡 | mcp__atlassian__transitionJiraIssue |
| 添加评论 | mcp__atlassian__addCommentToJiraIssue |
| 用户查找 | mcp__atlassian__lookupJiraAccountId |
| 列出项目 | mcp__atlassian__getVisibleJiraProjects |
请参阅references/mcp.md以获取完整的MCP模式。
触发
- “创建一个jira票”
- “给我展示PROJ-123”
- “列出我的票务”
- “将票移动到完成”
- “当前sprint中有什么”
问题键检测
问题键遵循模式:[A-Z]+-[0-9]+(例如,PROJ-123, ABC-1)。
当用户在对话中提到问题键时:
- CLI:
jira issue view KEY或jira open KEY - MCP:
mcp__atlassian__jira_get_issue与键
工作流
创建票务:
- 如果用户引用代码/票务/PRs,研究上下文
- 起草票务内容
- 与用户审查
- 使用适当后端创建
更新票务:
- 首先获取问题详情
- 检查状态(小心处理进行中的票务)
- 显示当前与建议的更改
- 在更新前获得批准
- 添加评论解释更改
在任何操作之前
问自己:
-
当前状态是什么? — 始终首先获取问题。不要假设状态、分配人或字段是用户认为的那样。
-
还有谁受到影响? — 检查观察者、链接问题、父史诗。一个“简单编辑”可能通知10个人。
-
这是可逆的吗? — 过渡可能有一道门。一些工作流需要中间状态。描述编辑没有撤销。
-
我有正确的标识符吗? — 问题键、过渡ID、账户ID。显示名称不适用于分配(MCP)。
永远不要
-
永远不要在没有获取当前状态的情况下过渡 — 工作流可能需要中间状态。“待办” → “完成”如果“进行中”是必需的,可能会静默失败。
-
永远不要使用显示名称进行分配(MCP) — 只有账户ID有效。始终先调用
lookupJiraAccountId,否则分配会静默失败。 -
永远不要在没有显示原始内容的情况下编辑描述 — Jira没有撤销。用户必须看到他们正在替换什么。
-
永远不要在没有所有必需字段的情况下使用
--no-input(CLI) — 静默失败并产生隐晦错误。首先检查项目的必需字段。 -
永远不要假设过渡名称是通用的 — “完成”、“关闭”、“完成”因项目而异。始终先获取可用过渡。
-
永远不要在没有明确批准的情况下批量修改 — 每个票务更改都会通知观察者。10次编辑 = 10次通知风暴。
安全性
- 始终在运行前显示命令/工具调用
- 始终在修改票务前获得批准
- 编辑时保留原始信息
- 更新后验证
- 始终清晰地呈现身份验证问题,以便用户解决
无可用后端
如果CLI和MCP都不可用,指导用户:
要使用Jira,您需要以下之一:
1. **jira CLI**(推荐):
https://github.com/ankitpokhrel/jira-cli
安装:brew install ankitpokhrel/jira-cli/jira-cli
设置:jira init
2. **Atlassian MCP**:
在您的MCP设置中配置Atlassian凭据。
深入了解
加载参考当:
- 创建具有复杂字段或多行内容的问题
- 构建超越简单过滤器的JQL查询
- 故障排除错误或身份验证问题
- 处理过渡、链接或sprints
不要加载参考当:
- 简单的查看/列表操作(以上快速参考足够)
- 基本状态检查(
jira issue view KEY) - 在浏览器中打开问题
| 任务 | 加载参考? |
|---|---|
| 查看单个问题 | 否 |
| 列出我的票务 | 否 |
| 创建带有描述的问题 | 是 — CLI需要/tmp模式 |
| 过渡问题 | 是 — 需要过渡ID工作流 |
| JQL搜索 | 是 — 用于复杂查询 |
| 链接问题 | 是 — MCP限制,需要脚本 |
参考:
- CLI模式:
references/commands.md - MCP模式:
references/mcp.md