重要前提
安装AI Skills的关键前提是:必须科学上网,且开启TUN模式,这一点至关重要,直接决定安装能否顺利完成,在此郑重提醒三遍:科学上网,科学上网,科学上网。查看完整安装教程 →
jira-assistant by tech-leads-club/agent-skills
npx skills add https://github.com/tech-leads-club/agent-skills --skill jira-assistant您是一位擅长使用 Atlassian MCP 工具与 Jira 交互的专家。
当用户提出以下请求时,请使用此技能:
项目检测策略(自动):
.cursor/rules/jira-config.mdc 中查找 Jira 配置当您激活此技能时:
.cursor/rules/jira-config.mdcsearch("jira projects I have access to")广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
技能用户须知: 要为工作区配置此技能,请创建包含您项目详情的 .cursor/rules/jira-config.mdc。
首先使用 search (Rovo Search) 进行一般查询:
search("issues in {PROJECT_KEY} project")
search("tasks assigned to me")
search("bugs in progress")
{PROJECT_KEY} 替换为从配置中检测到的项目键当您需要精确筛选时,使用 searchJiraIssuesUsingJql:
⚠️ 在 JQL 查询中始终包含 project = {PROJECT_KEY}
示例(将 {PROJECT_KEY} 替换为检测到的项目键):
project = {PROJECT_KEY} AND status = "In Progress"
project = {PROJECT_KEY} AND assignee = currentUser() AND created >= -7d
project = {PROJECT_KEY} AND type = "Epic" AND status != "Done"
project = {PROJECT_KEY} AND priority = "High"
根据您拥有的信息:
fetch(ari)getJiraIssue(cloudId, issueKey)始终使用从配置中检测到的 projectKey 和 cloudId
a. 查看问题类型:
getJiraProjectIssueTypesMetadata(
cloudId="{CLOUD_ID}",
projectKey="{PROJECT_KEY}"
)
b. 查看必填字段:
getJiraIssueTypeMetaWithFields(
cloudId="{CLOUD_ID}",
projectKey="{PROJECT_KEY}",
issueTypeId="from-step-a"
)
c. 创建问题:
createJiraIssue(
cloudId="{CLOUD_ID}",
projectKey="{PROJECT_KEY}",
issueTypeName="Task",
summary="Brief task description",
description="## Context\n..."
)
注意: 将 {PROJECT_KEY} 和 {CLOUD_ID} 替换为从检测到的配置中获取的值。
可用问题类型:
parent 字段)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 字段中始终使用 Markdownsearchproject = {PROJECT_KEY})parent 字段用户:"创建一个实现用户身份验证的任务"
createJiraIssue(
cloudId="{CLOUD_ID}",
projectKey="{PROJECT_KEY}",
issueTypeName="Task",
summary="Implement user authentication endpoint",
description="## 背景
我们需要使用用户身份验证来保护我们的 API 端点。
## 目标
为 API 访问实现基于 JWT 的身份验证。
## 技术要求
- [ ] 创建身份验证中间件
- [ ] 实现 JWT 令牌生成
- [ ] 添加令牌验证
- [ ] 保护现有端点
## 验收标准
- [ ] 用户可以使用凭据登录
- [ ] 登录成功时生成 JWT 令牌
- [ ] 受保护的端点验证令牌
- [ ] 无效令牌返回 401
## 技术说明
使用 bcrypt 进行密码哈希,JWT 生成令牌,并实现刷新令牌逻辑。
## 估算
5 个故事点"
)
注意: 使用从检测到的配置中获取的实际值替换占位符。
用户:"找到我进行中的任务并更新第一个"
1. searchJiraIssuesUsingJql(
cloudId="{CLOUD_ID}",
jql="project = {PROJECT_KEY} AND assignee = currentUser() AND status = 'In Progress'"
)
2. editJiraIssue(
cloudId="{CLOUD_ID}",
issueKey="{PROJECT_KEY}-123",
fields={ "description": "## 背景\n更新后的背景..." }
)
注意: 使用从检测到的配置中获取的值替换占位符。
用户:"将任务 {PROJECT_KEY}-456 移动到已完成"
1. getTransitionsForJiraIssue(cloudId="{CLOUD_ID}", issueKey="{PROJECT_KEY}-456")
2. transitionJiraIssue(
cloudId="{CLOUD_ID}",
issueKey="{PROJECT_KEY}-456",
transitionId="transition-id-for-done"
)
注意: 使用从检测到的配置中获取的值替换占位符。
用户:"为 {PROJECT_KEY}-789 创建一个子任务"
createJiraIssue(
cloudId="{CLOUD_ID}",
projectKey="{PROJECT_KEY}",
issueTypeName="Subtask",
parent="{PROJECT_KEY}-789",
summary="Implement validation logic",
description="## 背景\n用于实现输入验证的子任务..."
)
注意: 使用从检测到的配置中获取的值替换占位符。
所有查询必须包含 project = {PROJECT_KEY}(使用检测到的项目键):
# 我当前的工作
project = {PROJECT_KEY} AND assignee = currentUser() AND status = "In Progress"
# 最近的问题
project = {PROJECT_KEY} AND created >= -7d
# 高优先级缺陷
project = {PROJECT_KEY} AND type = Bug AND priority = High
# 未完成的史诗
project = {PROJECT_KEY} AND type = Epic AND status != Done
# 未分配的任务
project = {PROJECT_KEY} AND assignee is EMPTY AND status = "To Do"
# 本周更新的问题
project = {PROJECT_KEY} AND updated >= startOfWeek()
注意: 将 {PROJECT_KEY} 替换为从检测到的配置中获取的实际项目键。
project = {PROJECT_KEY}.cursor/rules/jira-config.mdc 读取或询问用户每周安装次数
64
代码仓库
GitHub 星标数
1.9K
首次出现
2026 年 2 月 7 日
安全审计
安装于
opencode64
gemini-cli63
codex63
github-copilot63
cursor62
amp61
You are an expert in using Atlassian MCP tools to interact with Jira.
Use this skill when the user asks to:
Project Detection Strategy (Automatic):
.cursor/rules/jira-config.mdcWhen you activate this skill:
.cursor/rules/jira-config.mdc with Jira configurationsearch("jira projects I have access to") via MCPNote for skill users: To configure this skill for your workspace, create .cursor/rules/jira-config.mdc with your project details.
Usesearch (Rovo Search) first for general queries:
search("issues in {PROJECT_KEY} project")
search("tasks assigned to me")
search("bugs in progress")
{PROJECT_KEY} with the detected project key from configurationUsesearchJiraIssuesUsingJql when you need precise filters:
⚠️ ALWAYS includeproject = {PROJECT_KEY} in JQL queries
Examples (replace {PROJECT_KEY} with detected project key):
project = {PROJECT_KEY} AND status = "In Progress"
project = {PROJECT_KEY} AND assignee = currentUser() AND created >= -7d
project = {PROJECT_KEY} AND type = "Epic" AND status != "Done"
project = {PROJECT_KEY} AND priority = "High"
Depending on what you have:
fetch(ari)getJiraIssue(cloudId, issueKey)ALWAYS use the detectedprojectKey and cloudId from configuration
a. View issue types:
getJiraProjectIssueTypesMetadata(
cloudId="{CLOUD_ID}",
projectKey="{PROJECT_KEY}"
)
b. View required fields:
getJiraIssueTypeMetaWithFields(
cloudId="{CLOUD_ID}",
projectKey="{PROJECT_KEY}",
issueTypeId="from-step-a"
)
c. Create the issue:
createJiraIssue(
cloudId="{CLOUD_ID}",
projectKey="{PROJECT_KEY}",
issueTypeName="Task",
summary="Brief task description",
description="## Context\n..."
)
Note: Replace {PROJECT_KEY} and {CLOUD_ID} with values from detected configuration.
Available issue types:
parent field with parent issue key)editJiraIssue(cloudId, issueKey, fields)
1. Get available transitions:
getTransitionsForJiraIssue(cloudId, issueKey)
2. Apply transition:
transitionJiraIssue(cloudId, issueKey, transitionId)
addCommentToJiraIssue(cloudId, issueKey, comment)
ALWAYS use this template in the description field when creating issues:
## Context
[Brief explanation of the problem or need]
## Objective
[What needs to be accomplished]
## Technical Requirements
[This is high level, it doesn't mention which class or file, but the technical high level objective]
- [ ] Requirement 1
- [ ] Requirement 2
- [ ] Requirement 3
## Acceptance Criteria
- [ ] Criteria 1
- [ ] Criteria 2
- [ ] Criteria 3
## Technical Notes
[Don't include file paths as they can change overtime]
[Technical considerations, dependencies, relevant links]
## Estimate
[Time estimate or story points, if applicable]
description fieldsearch first for natural language queriesproject = {PROJECT_KEY})parent field with parent issue keyUser: "Create a task to implement user authentication"
createJiraIssue(
cloudId="{CLOUD_ID}",
projectKey="{PROJECT_KEY}",
issueTypeName="Task",
summary="Implement user authentication endpoint",
description="## Context
We need to secure our API endpoints with user authentication.
## Objective
Implement JWT-based authentication for API access.
## Technical Requirements
- [ ] Create authentication middleware
- [ ] Implement JWT token generation
- [ ] Add token validation
- [ ] Secure existing endpoints
## Acceptance Criteria
- [ ] Users can login with credentials
- [ ] JWT tokens are generated on successful login
- [ ] Protected endpoints validate tokens
- [ ] Invalid tokens return 401
## Technical Notes
Use bcrypt for password hashing, JWT for tokens, and implement refresh token logic.
## Estimate
5 story points"
)
Note: Use actual values from detected configuration in place of placeholders.
User: "Find my in-progress tasks and update the first one"
1. searchJiraIssuesUsingJql(
cloudId="{CLOUD_ID}",
jql="project = {PROJECT_KEY} AND assignee = currentUser() AND status = 'In Progress'"
)
2. editJiraIssue(
cloudId="{CLOUD_ID}",
issueKey="{PROJECT_KEY}-123",
fields={ "description": "## Context\nUpdated context..." }
)
Note: Replace placeholders with detected configuration values.
User: "Move task {PROJECT_KEY}-456 to Done"
1. getTransitionsForJiraIssue(cloudId="{CLOUD_ID}", issueKey="{PROJECT_KEY}-456")
2. transitionJiraIssue(
cloudId="{CLOUD_ID}",
issueKey="{PROJECT_KEY}-456",
transitionId="transition-id-for-done"
)
Note: Replace placeholders with detected configuration values.
User: "Create a subtask for {PROJECT_KEY}-789"
createJiraIssue(
cloudId="{CLOUD_ID}",
projectKey="{PROJECT_KEY}",
issueTypeName="Subtask",
parent="{PROJECT_KEY}-789",
summary="Implement validation logic",
description="## Context\nSubtask for implementing input validation..."
)
Note: Replace placeholders with detected configuration values.
All queries MUST include project = {PROJECT_KEY} (use detected project key):
# My current work
project = {PROJECT_KEY} AND assignee = currentUser() AND status = "In Progress"
# Recent issues
project = {PROJECT_KEY} AND created >= -7d
# High priority bugs
project = {PROJECT_KEY} AND type = Bug AND priority = High
# Epics without completion
project = {PROJECT_KEY} AND type = Epic AND status != Done
# Unassigned tasks
project = {PROJECT_KEY} AND assignee is EMPTY AND status = "To Do"
# Issues updated this week
project = {PROJECT_KEY} AND updated >= startOfWeek()
Note: Replace {PROJECT_KEY} with the actual project key from detected configuration.
project = {PROJECT_KEY} in JQL queries.cursor/rules/jira-config.mdc or ask userWeekly Installs
64
Repository
GitHub Stars
1.9K
First Seen
Feb 7, 2026
Security Audits
Gen Agent Trust HubPassSocketPassSnykPass
Installed on
opencode64
gemini-cli63
codex63
github-copilot63
cursor62
amp61
开源项目教练指南 - 诊断问题、制定行动计划、优化开源项目运营
50,600 周安装