agentsclimarketplace

Jira

Skill tkolleh/skills/jira

My personal directory of AI Agent skills

Install
npx -y skills add tkolleh/skills --skill jira

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Manage Jira issues, sprints, and epics with the jira CLI (ankitpokhrel/jira-cli). Trigger on: jira, jira-cli, ticket, issue key (e.g. PROJ-123), epic, sprint, transition/move ticket, comment on ticket, assign ticket, JQL, create bug/story, "what's on my board", "my open issues". Use when the user wants to find, read, create, update, transition, comment on, assign, or link Jira work items — or list sprints/epics — via CLI. Do not use for Todoist, GitHub Issues, Linear, or generic project planning with no Jira involvement.

The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.

SKILL.md

6.9 KB, as published. Nobody here has run it

Jira CLI

Bridge natural language to jira (jira-cli). Portable across users, projects, Cloud/Server/DC — never hardcode project keys, usernames, servers, or board IDs.

Work phases in order for each request. Skip only phases marked optional when their precondition is unmet.

Prerequisites (fail fast)

command -v jira >/dev/null || { echo "jira CLI missing — install ankitpokhrel/jira-cli"; exit 1; }
jira me >/dev/null 2>&1 || { echo "jira not authenticated — run: jira init"; exit 1; }

On failure: report the exact fix (brew install jira-cli / jira init) and STOP. Do not invent issue keys or statuses.

Optional tools: jq (JSON field extract), pandoc (Markdown→Jira wiki for descriptions/comments). If missing, prefer --plain text or pass simple plain text bodies.

Phase 1 — Resolve context

Establish active issue key, project, and acting user before writes.

  1. Issue key — Prefer explicit key in the user message ([A-Z][A-Z0-9]+-\d+). Else parse current git branch (feat/PROJ-123-…, PROJ-123-…). Else search (Phase 2). Never invent keys.
  2. Project — Explicit -p KEY / user text wins. Else default from config (jira uses ~/.config/.jira/.config.yml, override with JIRA_CONFIG_FILE). For another project always pass -p KEY or JQL project = KEY.
  3. UserME=$(jira me) for "me" / "my". Assignees accept email or exact display name; self-assign: jira issue assign KEY "$(jira me)".
  4. Session memory (optional) — If a memory tool exists, read/write active key as JIRA_ACTIVE_KEY. If none, keep the key in conversation only. Do not require serena/openmemory.

Completion: you can name the target key and/or project, or you are about to search with an explicit JQL/filter plan.

Phase 2 — Read (prefer structured output)

GoalCommand
View one issuejira issue view KEY --plain (human) or jira issue view KEY --raw (JSON)
List / searchjira issue list [flags] --plain or --raw
My open workjira issue list -a"$(jira me)" -s~Done --plain --columns key,status,summary,priority
Recentjira issue list --history --plain
Cross-project JQLjira issue list -q'project IS NOT EMPTY AND …' --plain
Sprint issuesjira sprint list --current --plain (needs board in config)
Epicsjira epic list --table --plain

Rules

  • Use --plain or --raw in agents — never the interactive TUI.
  • There is no --output json. JSON is --raw.
  • Default list is project-scoped to config project. Broaden with -p or -q.
  • Paginate: --paginate 0:50 (max 100/page).
  • With --raw + jq, extract only needed fields. List items look like {key, fields:{summary,status:{name},assignee:{displayName},issueType:{name},…}}. View --raw uses standard Jira API issue JSON (fields.status.name, etc.).
  • Do not dump full JSON into chat.

Common list flags: -tType -sStatus (repeatable; -s~Done = not Done) -aAssignee -rReporter -yPriority -lLabel -q'JQL' --updated week.

Deep JQL: load references/jql.md only if needed.

Phase 3 — Write (confirm first)

Confirm with the user before any create, edit, comment, assign, transition, delete, or bulk change. One confirmation can cover a stated batch. Reads need no confirmation.

Always pass non-interactive flags where available (--no-input on create/edit/comment).

ActionCommand
Createjira issue create -tTYPE -s"Summary" -b"Body" --no-input (-pKEY if not default)
Editjira issue edit KEY -s"…" -b"…" --no-input
Commentjira issue comment add KEY "body" or --template - / --template FILE
Assignjira issue assign KEY "email-or-name" or KEY "$(jira me)" · unassign: KEY x
Transitionjira issue move KEY "State Name"
Deletejira issue delete KEY — extra explicit confirm

Formatting (descriptions / comments)

Jira wiki ≠ Markdown. If body has headings, lists, or code and pandoc exists:

body=$(printf '%s\n' "$MARKDOWN" | pandoc -f gfm -t jira)
jira issue comment add KEY "$body" --no-input
# or: printf '%s\n' "$body" | jira issue comment add KEY --template -

Else use short plain text (no reliance on MD rendering). Details: references/formatting.md.

Transitions (no --list flag)

jira issue move has no --list. Target state is the transition name for that workflow (instance-specific).

  1. Read current status: jira issue view KEY --plain (or --raw.fields.status.name).
  2. Prefer the exact state name the user asked for (quote spaces: "In Progress").
  3. On error, show the CLI error, suggest common names (In Progress, Done, To Do, Backlog) or ask the user for the exact workflow transition — do not invent transition IDs.
  4. Optional: comment while moving: jira issue move KEY "Done" --comment "…".

Details: references/transitions.md.

Phase 4 — Report

After each mutating command: state key, action, new status/assignee if known. On failure: paste the CLI error, what you tried, and the next safe step. Never claim success without a successful command exit.

Anti-patterns

  • Inventing issue keys, projects, or statuses
  • Interactive TUI (jira issue list without --plain/--raw)
  • jira issue move KEY --list (invalid flag)
  • --output json (use --raw)
  • Hardcoding one company's project/board/username into commands
  • Bulk edit/delete without confirmation
  • Dumping raw multi-issue JSON into the user chat

Examples

User: "my open tickets" → jira issue list -a"$(jira me)" -s~Done --plain --columns key,status,summary,priority --paginate 0:50

User: "show ACME-42" → jira issue view ACME-42 --plain

User: "comment on ACME-42: fixed in abc123" (after confirm) → pandoc (if needed) then jira issue comment add ACME-42 "…" --no-input

User: "move ACME-42 to In Progress" (after confirm) → jira issue move ACME-42 "In Progress"

User: "bugs in project OPS filed by me last week" → jira issue list -pOPS -tBug -r"$(jira me)" --created week --plain --columns key,status,summary

More: references/examples.md.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.