jira-assistant について
Atlassian MCP ツールで Jira の課題を検索・管理する Cursor 向けスキルです。ワークスペースルールからプロジェクト設定を読み取るか、MCP でプロジェクトを探して操作を進めます。
主な機能
- 01自然言語と JQL による課題検索
- 02タスク、エピック、サブタスクの作成
- 03課題の編集とステータス変更
- 04コメント追加と担当者管理
- 05ワークスペースルールからの設定検出
活用シーン
- 01自分に割り当てられた進行中の作業を検索
- 02定型テンプレートで Jira 課題を作成
- 03フィールド更新や課題ステータスの変更
- 04既存課題へのコメント追加
MCP 対応
Atlassian MCP ツールを使い、Jira プロジェクトの検出、課題の検索・取得・作成・更新を行います。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ tech-leads-club/ agent-skills --skill jira-assistantインストール後、Claude Code で/jira-assistantを入力して読み込まれたか確認します。
同梱ファイルREADME.md
詳細
Jira アシスタント
Atlassian MCP ツールを使用して Jira を操作するエキスパートです。
使用する場面
次のことをユーザーから依頼された場合に、このスキルを使用します。
- Jira の課題やタスクを検索する
- 新しい Jira の課題(タスク、エピック、サブタスク)を作成する
- 既存の課題を更新する
- 課題のステータスを遷移する(未対応 → 進行中 → 完了など)
- 課題にコメントを追加する
- 担当者を管理する
- 特定の条件で課題を検索する
設定
プロジェクト検出方法(自動):
- 最初にワークスペースのルールを確認する:
.cursor/rules/jira-config.mdcで Jira の設定を探します - 見つからない場合:MCP の検索ツールを使って、利用可能なプロジェクトを検出します
- それでも不明な場合:ユーザーにプロジェクトキーを指定してもらいます
- 検出した値を使用する:この会話でのすべての Jira 操作に使用します
設定の検出ワークフロー
このスキルを有効にしたとき:
- ワークスペースに Jira の設定を含む
.cursor/rules/jira-config.mdcがあるか確認します - 見つかった場合は、プロジェクトキー、Cloud ID、URL、ボード URL を抽出して使用します
- 見つからない場合:
- MCP 経由で
search("jira projects I have access to")を使用します - 検出されたプロジェクトをユーザーに提示します
- 「どの Jira プロジェクトを使用しますか?(例:KAN、PROJ、DEV)」と尋ねます
- MCP 経由で
- この会話用に設定を保存し、操作を進めます
**スキルの利用者への注意:**ワークスペースでこのスキルを設定するには、プロジェクトの詳細を記載した .cursor/rules/jira-config.mdc を作成してください。
ワークフロー
1. 課題を見つける(必ずここから開始)
一般的な検索には、まず search(Rovo Search)を使用します。
search("issues in {PROJECT_KEY} project")
search("tasks assigned to me")
search("bugs in progress")
- 一般的な検索では、JQL より自然言語のほうが適しています
- より高速で直感的です
- 関連する結果をすばやく返します
{PROJECT_KEY}を、設定から検出したプロジェクトキーに置き換えます
2. 特定の条件で検索する
正確なフィルターが必要な場合は、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"
3. 課題の詳細を取得する
手元にある情報に応じて、次のようにします。
- ARI がある場合:
fetch(ari) - 課題キーまたは ID がある場合:
getJiraIssue(cloudId, issueKey)
4. 課題を作成する
設定から検出した projectKey と cloudId を必ず使用してください
手順:
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..."
)
注意:{PROJECT_KEY} と {CLOUD_ID} を、検出した設定値に置き換えてください。
利用可能な課題タイプ:
- Task(デフォルト)
- Epic
- Subtask(親課題のキーを指定した
parentフィールドが必要です)
5. 課題を更新・遷移する
フィールドを編集する:
editJiraIssue(cloudId, issueKey, fields)
ステータスを変更する:
1. Get available transitions:
getTransitionsForJiraIssue(cloudId, issueKey)
2. Apply transition:
transitionJiraIssue(cloudId, issueKey, transitionId)
コメントを追加する:
addCommentToJiraIssue(cloudId, issueKey, comment)
デフォルトのタスクテンプレート
課題の作成時は、description フィールドに必ずこのテンプレートを使用してください。
## 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フィールドでは必ず Markdown を使用する- 自然言語のクエリには最初に
searchを使用する - 正確なフィルタリングには JQL を使用する(ただし、必ず
project = {PROJECT_KEY}を含めてください) - 一貫性を保つため、タスクテンプレートに従う
- 説明にファイルパスを含めない(時間の経過とともに変わるため)
- 要約は簡潔にし、説明は詳細に記述する
⚠️ 重要
- Issue ID は数値です(内部用)
- Issue Key は
"{PROJECT_KEY}-123"の形式です(ユーザー向け) - サブタスクを作成する場合:親課題のキーを指定した
parentフィールドを使用します - CloudId には URL と UUID のどちらも指定できます
- ワークスペースのルールまたはユーザー入力から検出した設定値を使用する
例
例 1:タスクを作成する
User: "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"
)
**注意:**プレースホルダーは、検出した設定の実際の値に置き換えてください。
例 2:課題を検索して更新する
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..." }
)
**注意:**プレースホルダーは、検出した設定値に置き換えてください。
例 3:課題のステータスを遷移する
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"
)
**注意:**プレースホルダーは、検出した設定値に置き換えてください。
例 4:サブタスクを作成する
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..."
)
**注意:**プレースホルダーは、検出した設定値に置き換えてください。
一般的な JQL パターン
すべてのクエリに project = {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()
注: {PROJECT_KEY} を、検出された設定にある実際のプロジェクトキーに置き換えてください。
重要な注意事項
- プロジェクトキーは必須です — JQL クエリには必ず
project = {PROJECT_KEY}を含めてください - 検出された設定を使用してください —
.cursor/rules/jira-config.mdcから読み取るか、ユーザーに尋ねてください - 説明には Markdown を使用してください — HTML やプレーンテキストは使用しないでください
- テンプレートに従ってください — 課題間の一貫性を保てます
- まず自然言語検索を使用してください — 必要な場合にのみ JQL を使用してください
- ファイルパスは避けてください — 変更され、古くなる可能性があります
- 技術的なメモは概要レベルにとどめてください — 実装の詳細ではなく、アプローチに焦点を当ててください
- ストーリーポイントは任意です — 該当する場合は見積もりを含めてください