mk:jira — Routing Skill
What This Skill Does
mk:jira is a pure routing layer as of v2.8.3. Its sole purpose is to identify the right mk:jira-* leaf for the user's Jira task and point at it. No execution.
The Atlassian-MCP-coupled implementation has been removed. Jira execution now lives in 16 thin leaf skills (each forks a dedicated agent in .claude/agents/) backed by the jira-as CLI installed via npx mewkit setup.
When to Use
- Triggers: "jira", "jira ticket", ambiguous Jira intent
- NOT for: Direct execution — forward to a specific
mk:jira-{leaf}. If you already know the leaf, invoke it directly.
Routing Table
| User intent | Leaf skill |
|---|---|
| Get/create/update/delete a single issue | mk:jira-issue |
| Find issues by criteria; export; filters | mk:jira-search |
| Transition through workflow; assign; resolve | mk:jira-lifecycle |
| Comments, attachments, watchers, notify | mk:jira-collaborate |
| Issue links, blockers, dependencies | mk:jira-relationships |
| Worklogs, time tracking, reports | mk:jira-time |
| Epics, sprints, backlog, story points | mk:jira-agile |
| Custom field discovery + configuration | mk:jira-fields |
| Bulk ops (10+ issues, dry-run mandatory) | mk:jira-bulk |
| Service Management (queues, SLAs, customers) | mk:jira-jsm |
| Project/user/group/scheme administration | mk:jira-admin |
| Git/PR/branch-name integration | mk:jira-dev |
| Cache + project-context discovery | mk:jira-ops |
| Evaluate ticket complexity + inconsistencies | mk:jira-evaluator |
| Estimate story points (heuristic) | mk:jira-estimator |
| Analyze ticket context + media; RCA | mk:jira-analyst |
Setup
One-time:
bash
npx mewkit setup # auto-installs jira-as into .claude/skills/.venv
cp .claude/.env.example .claude/.env
# edit MEOW_JIRA_API_TOKEN, MEOW_JIRA_EMAIL, MEOW_JIRA_SITE_URLThe SessionStart hook jira-env-loader.sh validates .claude/.env and emits [mk:jira] env OK / [mk:jira] <KEY> missing. The wrapper scripts/jira-as.sh translates MEOW_JIRA_* → native JIRA_* env per call.
See Environment Variables — Jira for the full list.
Architecture
mk:jira (router, ≤80 lines) ← recommends a leaf, never executes
├── shared resources (used by all 16 leaves):
│ ├── scripts/{jira-as.sh, jql-sanitize.sh, fetch-workflow.sh}
│ ├── scripts/requirements.txt ← pip deps installed by mewkit setup
│ └── references/{install-and-auth, cli-idioms, safety-framework}.md
└── 16 thin leaf skills (each: context: fork → matching agent in .claude/agents/)
├── 13 domain leaves (issue, search, lifecycle, collaborate, relationships, time,
│ agile, fields, bulk, jsm, admin, dev, ops)
└── 3 intelligence leaves (evaluator, estimator, analyst)
tasks/jira-workflows/ ← discovered Jira workflow cache (NEW in 2.8.3)
├── README.md
├── _schemes/<PROJECT_KEY>.md ← project → workflow-name mapping
└── <workflow-slug>.md ← full statuses + transitions per workflowHandoff
mk:intake→ recommends the rightmk:jira-*leaf based on triagemk:planning-engine→ consumesmk:jira-evaluator+mk:jira-estimatorreports for capacity analysismk:cookPhase 3 → may invokemk:jira-issueto create implementation ticketsmk:shipPhase 5 → may invokemk:jira-devfor branch-name + PR description
Gotchas
mk:jiraitself never executes; if you find yourself thinking aboutjira-ascommands inside this skill, you're in the wrong place — forward to a leaf.- Escape hatch: if
jira-asis unusable (mTLS, multi-profile), invoke Atlassian MCP directly perreferences/install-and-auth.md. The router does NOT auto-fallback.