home / skills / grandcamel / jira-assistant-skills / jira-assistant
This skill helps you route Jira task requests to the right specialized skill, accelerating accuracy and avoiding misrouting.
npx playbooks add skill grandcamel/jira-assistant-skills --skill jira-assistantReview the files below or copy the command above to add this skill to your agents.
---
name: "jira-assistant"
description: "JIRA automation hub routing to 13 specialized skills for any JIRA task: issues, workflows, agile, search, time tracking, service management, and more."
version: "2.1.0"
# Implements: SKILLS_ROUTER_SKILL_PROPOSAL v2.1
author: "jira-assistant-skills"
license: "MIT"
allowed-tools: ["Bash", "Read", "Glob", "Grep"]
---
# 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
1. **Explicit skill mention wins** - If user says "use jira-agile", use it
2. **Entity signals** - Issue key present → likely jira-issue or jira-lifecycle
3. **Quantity determines bulk** - 50+ issues → jira-bulk (consider bulk for 10+, required for 50+)
4. **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:
1. Sprint metadata (dates, goals, capacity) → jira-agile
2. Issues in the current sprint → jira-search
Ask: "Do you want sprint details or the issues in the sprint?"
**"Update the issue"**
Could mean:
1. Change fields on one issue → jira-issue
2. Transition status → jira-lifecycle
3. 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:
1. First search with jira-search to find issues
2. 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
1. Use jira-agile to create the epic → Note epic key (e.g., TES-100)
2. 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
3. Confirm: "Created epic TES-100 with N stories"
### Bulk Close from Search
1. Use jira-search to find matching issues
2. Use jira-bulk with --dry-run to preview
3. 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
This skill is a JIRA automation hub that routes user requests to one of 13 specialized JIRA skills. It does not perform JIRA operations directly; it chooses the correct skill for issue CRUD, workflows, agile tasks, searches, time tracking, service management, admin work, and bulk actions. The hub enforces safety rules, clarifies ambiguous requests, and tracks short-term context to improve routing accuracy.
The hub analyzes user intent, keywords, entity signals (like issue keys), and item counts to pick the most appropriate downstream skill. It follows explicit routing rules, negative triggers, and a disambiguation table to avoid incorrect routing. For potentially destructive operations it asks clarifying questions and requires confirmation before delegating to high‑risk skills.
Will the hub perform JIRA changes directly?
No. The hub only routes requests to specialized skills that perform operations; it never executes changes itself.
How does it decide between single and bulk actions?
It uses numeric signals and language cues: mention of 50+ issues forces jira-bulk; unclear counts trigger a clarifying question.
What happens for ambiguous requests?
The hub asks targeted clarifying questions when a request could map to multiple skills or implies destructive actions.