JIRA Assistant
This hub routes requests to specialized JIRA skills. It does not execute JIRA operations directly—it helps find the right skill.
Risk Levels
| Operation |
Risk |
Notes |
| Route to skill |
- |
Read-only routing decision |
| Skill discovery |
- |
Lists available skills |
| Context tracking |
- |
In-memory only |
Risk Legend: - Safe, read-only | ! Caution, modifiable | !! Warning, destructive but recoverable | !!! Danger, irreversible
Quick Reference
| I want to... |
Use this skill |
Risk |
| Create/edit/delete a single issue, view/show issue details |
jira-issue |
⚠️ |
| Search with JQL, export results |
jira-search |
- |
| Change status, assign, resolve, manage versions/components |
jira-lifecycle |
⚠️ |
| Manage sprints, epics, subtasks, story points |
jira-agile |
- |
| Add comments, attachments, watchers |
jira-collaborate |
- |
| Link issues, view dependencies, blocker chains |
jira-relationships |
- |
| Log time, manage worklogs, time reports |
jira-time |
- |
| Handle service desk requests, SLAs, queues, approvals, assets, knowledge base |
jira-jsm |
- |
| Bulk operations on many issues (50+) with dry-run preview |
jira-bulk |
⚠️⚠️ |
| Git branch names, commits, PR descriptions |
jira-dev |
- |
| Custom field discovery and Agile field configuration |
jira-fields |
- |
| Project discovery, cache management, diagnostics |
jira-ops |
- |
| Project settings, permissions, automation rules |
jira-admin |
⚠️⚠️ |
Risk Legend: - Read-only/safe | ⚠️ Has destructive ops (confirm) | ⚠️⚠️ High-risk (confirm + dry-run)
Routing Rules
- Explicit skill mention wins - If user says "use jira-agile", use it
- Entity signals - Issue key present → likely jira-issue or jira-lifecycle
- Quantity determines bulk - 50+ issues → jira-bulk (consider bulk for 10+, required for 50+)
- Keywords drive routing:
- "show", "view", "display", "get", "retrieve", "see", "details", "look up", "check" (with issue reference) → jira-issue
- "create", "update", "delete" (single issue) → jira-issue
- "search", "find", "JQL", "filter" → jira-search
- "sprint", "epic", "backlog", "story points", "subtask" → jira-agile
- "transition", "move to", "assign", "close", "version", "release", "component", "resolve", "reopen", "archive" → jira-lifecycle
- "comment", "attach", "watch", "notify", "notification", "activity", "history", "changelog" → jira-collaborate
- "link", "blocks", "depends on", "clone", "dependency graph", "blocker chain" → jira-relationships
- "log time", "worklog", "estimate", "time report", "timesheet" → jira-time
- "service desk", "SLA", "customer", "request", "queue", "approval", "knowledge base", "asset" → jira-jsm
- "branch name", "commit", "PR" → jira-dev
- "custom field", "field ID" → jira-fields
- "cache", "warm cache", "project discovery", "diagnostics", "performance", "request batching" → jira-ops
- "permissions", "project settings", "automation", "automation rule", "users", "groups", "notifications", "screens", "issue types", "workflows", "notification scheme", "permission scheme" → jira-admin
Negative Triggers
| Skill |
Does NOT handle |
Route to instead |
| jira-issue |
Bulk (50+), transitions, comments, sprints, time |
jira-bulk, jira-lifecycle, jira-collaborate, jira-agile, jira-time |
| jira-search |
Single issue lookup, issue modifications |
jira-issue, jira-bulk |
| jira-lifecycle |
Field updates, bulk transitions |
jira-issue, jira-bulk |
| jira-agile |
Issue CRUD (except epic/subtask), JQL, time tracking |
jira-issue, jira-search, jira-time |
| jira-bulk |
Single issue ops, sprint management |
jira-issue, jira-agile |
| jira-collaborate |
Field updates, bulk comments |
jira-issue, jira-bulk |
| jira-relationships |
Field updates, epic/sprint linking |
jira-issue, jira-agile |
| jira-time |
SLA tracking, date-based searches |
jira-jsm, jira-search |
| jira-jsm |
Standard project issues, non-service-desk searches |
jira-issue, jira-search |
| jira-dev |
Issue field updates, JQL searches |
jira-issue, jira-search |
| jira-fields |
Field value searching, field value updates |
jira-search, jira-issue |
| jira-ops |
Project configuration, issue operations |
jira-admin, jira-issue |
| jira-admin |
Issue CRUD, bulk operations |
jira-issue, jira-bulk |
When to Clarify First
Ask the user before routing when:
- Request matches 2+ skills with similar likelihood
- Request is vague or could be interpreted multiple ways
- Destructive operations are implied
Disambiguation Table
| Pattern |
Ambiguity |
Question |
Options |
| "update issues" (no count) |
Single vs multiple |
"One issue or multiple?" |
jira-issue, jira-bulk |
| "show the sprint" |
Details vs issues |
"Sprint details or issues in sprint?" |
jira-agile, jira-search |
| "link PR" |
Link to JIRA or create link |
"Link PR to JIRA issue or create issue relationship?" |
jira-dev, jira-relationships |
| "close them" (after search) |
Single vs bulk |
"Close all N issues found?" |
jira-bulk (with confirmation) |
| "delete issues" |
Count unclear |
"How many issues? (One uses jira-issue, multiple uses jira-bulk)" |
jira-issue, jira-bulk |
Disambiguation Examples
"Show me the sprint"
Could mean:
- Sprint metadata (dates, goals, capacity) → jira-agile
- Issues in the current sprint → jira-search
Ask: "Do you want sprint details or the issues in the sprint?"
"Update the issue"
Could mean:
- Change fields on one issue → jira-issue
- Transition status → jira-lifecycle
- Update multiple issues → jira-bulk
Ask: "What would you like to update - fields, status, or multiple issues?"
"Create an issue in the epic"
Context determines:
- Epic context explicit → jira-agile
- Just issue creation → jira-issue
"Find all P1 bugs and close them"
Multi-step workflow:
- First search with jira-search to find issues
- Then confirm count before using jira-bulk to close
Ask: "I found N bugs. Want me to close them all?"
Context Awareness
Pronoun Resolution
When user says "it" or "that issue":
- If exactly one issue mentioned in last 3 messages → use it
- If multiple issues mentioned → ask: "Which issue - TES-123 or TES-456?"
- If no issue in last 5 messages → ask: "Which issue are you referring to?"
After CREATE:
User: "create a bug in TES" → TES-789 created
User: "assign it to me"
→ "it" = TES-789 (the issue just created)
User: "create a bug in DEMO" → DEMO-105 created
User: "show me the details of the bug we just created"
→ "the bug we just created" = DEMO-105 (use jira-issue to retrieve details)
After SEARCH:
User: "find all open bugs" → Found TES-100, TES-101, TES-102
User: "close them"
→ "them" = the search results (use jira-bulk)
Project Scope
When user mentions a project:
- Remember it for subsequent requests in this conversation
- "Create a bug in TES" → TES is now the active project
- "Create another bug" → Use TES implicitly
- Explicit project mention updates the active project
Context Expiration
After 5+ messages or 5+ minutes since last reference:
- Re-confirm rather than assume: "Do you mean TES-123 from earlier?"
- Don't guess when context is stale
Common Workflows
Create Epic with Stories
- Use jira-agile to create the epic → Note epic key (e.g., TES-100)
- Use jira-issue to create each story with
--epic TES-100 flag to link during creation
- Alternatively: create stories first, then use
jira-as agile epic add-issues to link existing issues
- Confirm: "Created epic TES-100 with N stories"
Bulk Close from Search
- Use jira-search to find matching issues
- Use jira-bulk with --dry-run to preview
- Confirm count with user before executing
Data Passing Between Steps
When one skill's output feeds another:
- Capture entity IDs from responses (e.g., epic key from jira-agile)
- State this explicitly: "Created EPIC-123. Now creating stories..."
- Reference captured data in subsequent operations
Error Handling
If a skill fails:
- Report the error clearly
- Suggest recovery options from docs/SAFEGUARDS.md
- Offer alternative approaches
If a skill is not available:
- Acknowledge the limitation
- Suggest alternatives from the Quick Reference table
Permission Awareness
Before operations that might fail due to access:
- Check if user has mentioned permission issues before
- Suggest
jira-admin for permission checks when blocked
Discoverability
/jira-assistant-skills:browse-skills - List all skills with descriptions
/jira-assistant-skills:skill-info <name> - Detailed skill information
If user asks "what can you do?" or similar:
- Show the Quick Reference table
- Offer to explain specific skills
What This Hub Does NOT Do
- Execute JIRA operations directly (always delegates)
- Guess when uncertain (asks instead)
- Perform destructive operations without confirmation
- Route to deprecated or unavailable skills without warning
1---2name: jira-assistant3description: JIRA automation hub routing to 13 specialized skills for any JIRA task: issues, workflows, agile, search, time tracking, service management, and more.4license: MIT5---67# JIRA Assistant89This hub routes requests to specialized JIRA skills. It does not execute JIRA operations directly—it helps find the right skill.1011## Risk Levels1213| Operation | Risk | Notes |14|-----------|------|-------|15| Route to skill | `-` | Read-only routing decision |16| Skill discovery | `-` | Lists available skills |17| Context tracking | `-` | In-memory only |1819**Risk Legend**: `-` Safe, read-only | `!` Caution, modifiable | `!!` Warning, destructive but recoverable | `!!!` Danger, irreversible2021## Quick Reference2223| I want to... | Use this skill | Risk |24|--------------|----------------|:----:|25| Create/edit/delete a single issue, view/show issue details | jira-issue | ⚠️ |26| Search with JQL, export results | jira-search | - |27| Change status, assign, resolve, manage versions/components | jira-lifecycle | ⚠️ |28| Manage sprints, epics, subtasks, story points | jira-agile | - |29| Add comments, attachments, watchers | jira-collaborate | - |30| Link issues, view dependencies, blocker chains | jira-relationships | - |31| Log time, manage worklogs, time reports | jira-time | - |32| Handle service desk requests, SLAs, queues, approvals, assets, knowledge base | jira-jsm | - |33| Bulk operations on many issues (50+) with dry-run preview | jira-bulk | ⚠️⚠️ |34| Git branch names, commits, PR descriptions | jira-dev | - |35| Custom field discovery and Agile field configuration | jira-fields | - |36| Project discovery, cache management, diagnostics | jira-ops | - |37| Project settings, permissions, automation rules | jira-admin | ⚠️⚠️ |3839**Risk Legend**: `-` Read-only/safe | `⚠️` Has destructive ops (confirm) | `⚠️⚠️` High-risk (confirm + dry-run)4041---4243## Routing Rules44451. **Explicit skill mention wins** - If user says "use jira-agile", use it462. **Entity signals** - Issue key present → likely jira-issue or jira-lifecycle473. **Quantity determines bulk** - 50+ issues → jira-bulk (consider bulk for 10+, required for 50+)484. **Keywords drive routing**:49 - "show", "view", "display", "get", "retrieve", "see", "details", "look up", "check" (with issue reference) → jira-issue50 - "create", "update", "delete" (single issue) → jira-issue51 - "search", "find", "JQL", "filter" → jira-search52 - "sprint", "epic", "backlog", "story points", "subtask" → jira-agile53 - "transition", "move to", "assign", "close", "version", "release", "component", "resolve", "reopen", "archive" → jira-lifecycle54 - "comment", "attach", "watch", "notify", "notification", "activity", "history", "changelog" → jira-collaborate55 - "link", "blocks", "depends on", "clone", "dependency graph", "blocker chain" → jira-relationships56 - "log time", "worklog", "estimate", "time report", "timesheet" → jira-time57 - "service desk", "SLA", "customer", "request", "queue", "approval", "knowledge base", "asset" → jira-jsm58 - "branch name", "commit", "PR" → jira-dev59 - "custom field", "field ID" → jira-fields60 - "cache", "warm cache", "project discovery", "diagnostics", "performance", "request batching" → jira-ops61 - "permissions", "project settings", "automation", "automation rule", "users", "groups", "notifications", "screens", "issue types", "workflows", "notification scheme", "permission scheme" → jira-admin6263---6465## Negative Triggers6667| Skill | Does NOT handle | Route to instead |68|-------|-----------------|------------------|69| jira-issue | Bulk (50+), transitions, comments, sprints, time | jira-bulk, jira-lifecycle, jira-collaborate, jira-agile, jira-time |70| jira-search | Single issue lookup, issue modifications | jira-issue, jira-bulk |71| jira-lifecycle | Field updates, bulk transitions | jira-issue, jira-bulk |72| jira-agile | Issue CRUD (except epic/subtask), JQL, time tracking | jira-issue, jira-search, jira-time |73| jira-bulk | Single issue ops, sprint management | jira-issue, jira-agile |74| jira-collaborate | Field updates, bulk comments | jira-issue, jira-bulk |75| jira-relationships | Field updates, epic/sprint linking | jira-issue, jira-agile |76| jira-time | SLA tracking, date-based searches | jira-jsm, jira-search |77| jira-jsm | Standard project issues, non-service-desk searches | jira-issue, jira-search |78| jira-dev | Issue field updates, JQL searches | jira-issue, jira-search |79| jira-fields | Field value searching, field value updates | jira-search, jira-issue |80| jira-ops | Project configuration, issue operations | jira-admin, jira-issue |81| jira-admin | Issue CRUD, bulk operations | jira-issue, jira-bulk |8283---8485## When to Clarify First8687Ask the user before routing when:88- Request matches 2+ skills with similar likelihood89- Request is vague or could be interpreted multiple ways90- Destructive operations are implied9192### Disambiguation Table9394| Pattern | Ambiguity | Question | Options |95|---------|-----------|----------|---------|96| "update issues" (no count) | Single vs multiple | "One issue or multiple?" | jira-issue, jira-bulk |97| "show the sprint" | Details vs issues | "Sprint details or issues in sprint?" | jira-agile, jira-search |98| "link PR" | Link to JIRA or create link | "Link PR to JIRA issue or create issue relationship?" | jira-dev, jira-relationships |99| "close them" (after search) | Single vs bulk | "Close all N issues found?" | jira-bulk (with confirmation) |100| "delete issues" | Count unclear | "How many issues? (One uses jira-issue, multiple uses jira-bulk)" | jira-issue, jira-bulk |101102### Disambiguation Examples103104**"Show me the sprint"**105Could mean:1061. Sprint metadata (dates, goals, capacity) → jira-agile1072. Issues in the current sprint → jira-search108109Ask: "Do you want sprint details or the issues in the sprint?"110111**"Update the issue"**112Could mean:1131. Change fields on one issue → jira-issue1142. Transition status → jira-lifecycle1153. Update multiple issues → jira-bulk116117Ask: "What would you like to update - fields, status, or multiple issues?"118119**"Create an issue in the epic"**120Context determines:121- Epic context explicit → jira-agile122- Just issue creation → jira-issue123124**"Find all P1 bugs and close them"**125Multi-step workflow:1261. First search with jira-search to find issues1272. Then confirm count before using jira-bulk to close128129Ask: "I found N bugs. Want me to close them all?"130131---132133## Context Awareness134135### Pronoun Resolution136137When user says "it" or "that issue":138- If exactly one issue mentioned in last 3 messages → use it139- If multiple issues mentioned → ask: "Which issue - TES-123 or TES-456?"140- If no issue in last 5 messages → ask: "Which issue are you referring to?"141142**After CREATE**:143```144User: "create a bug in TES" → TES-789 created145User: "assign it to me"146→ "it" = TES-789 (the issue just created)147148User: "create a bug in DEMO" → DEMO-105 created149User: "show me the details of the bug we just created"150→ "the bug we just created" = DEMO-105 (use jira-issue to retrieve details)151```152153**After SEARCH**:154```155User: "find all open bugs" → Found TES-100, TES-101, TES-102156User: "close them"157→ "them" = the search results (use jira-bulk)158```159160### Project Scope161162When user mentions a project:163- Remember it for subsequent requests in this conversation164- "Create a bug in TES" → TES is now the active project165- "Create another bug" → Use TES implicitly166- Explicit project mention updates the active project167168### Context Expiration169170After 5+ messages or 5+ minutes since last reference:171- Re-confirm rather than assume: "Do you mean TES-123 from earlier?"172- Don't guess when context is stale173174---175176## Common Workflows177178### Create Epic with Stories1791. Use jira-agile to create the epic → Note epic key (e.g., TES-100)1802. Use jira-issue to create each story with `--epic TES-100` flag to link during creation181 - Alternatively: create stories first, then use `jira-as agile epic add-issues` to link existing issues1823. Confirm: "Created epic TES-100 with N stories"183184### Bulk Close from Search1851. Use jira-search to find matching issues1862. Use jira-bulk with --dry-run to preview1873. Confirm count with user before executing188189### Data Passing Between Steps190When one skill's output feeds another:191- Capture entity IDs from responses (e.g., epic key from jira-agile)192- State this explicitly: "Created EPIC-123. Now creating stories..."193- Reference captured data in subsequent operations194195---196197## Error Handling198199If a skill fails:200- Report the error clearly201- Suggest recovery options from docs/SAFEGUARDS.md202- Offer alternative approaches203204If a skill is not available:205- Acknowledge the limitation206- Suggest alternatives from the Quick Reference table207208### Permission Awareness209Before operations that might fail due to access:210- Check if user has mentioned permission issues before211- Suggest `jira-admin` for permission checks when blocked212213---214215## Discoverability216217- `/jira-assistant-skills:browse-skills` - List all skills with descriptions218- `/jira-assistant-skills:skill-info <name>` - Detailed skill information219220If user asks "what can you do?" or similar:221- Show the Quick Reference table222- Offer to explain specific skills223224---225226## What This Hub Does NOT Do227228- Execute JIRA operations directly (always delegates)229- Guess when uncertain (asks instead)230- Perform destructive operations without confirmation231- Route to deprecated or unavailable skills without warning