agents/skills/jira-management/SKILL.md
Drive jira-mgmt CLI for Jira operations (Cloud & Server/DC, auto-detected). Translates natural language intent to CLI commands. Uses DSL for reads (token-efficient), CLI for writes. Handles multi-step workflows (create epic with stories, bulk transitions, sprint reviews).
npx skillsauth add relux-works/skill-jira-management jira-managementInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Purpose: Agent-agnostic skill (Claude Code / Codex CLI) for managing Jira (Cloud & Server/DC) via jira-mgmt CLI. Instance type is auto-detected during auth whoami and on first live client use.
Tool: jira-mgmt (installed via ./setup.sh or .\setup.ps1)
Cloud (email + API token → Basic auth):
jira-mgmt auth set-access --instance https://mycompany.atlassian.net --email [email protected] --token API_TOKEN
Server/DC (Personal Access Token → Bearer auth):
jira-mgmt auth set-access --instance https://jira.company.com --token PAT_TOKEN
Auth type is auto-determined: email provided → Basic (Cloud), no email → Bearer (Server/DC PAT).
Credential source names are stable across platforms: auto, keychain, env_or_file.
# Validate the stored credentials and detect instance type
jira-mgmt auth whoami
# Optional debug helpers
jira-mgmt auth resolve
jira-mgmt auth config-path
# Set active project/board/locale
jira-mgmt config set project YOUR-KEY
jira-mgmt config set board 123
jira-mgmt config set locale en
Read (use DSL for token efficiency):
# Single issue
jira-mgmt q 'get(PROJ-123)'
# List current sprint
jira-mgmt q 'list(sprint=current){default}'
# Search with JQL
jira-mgmt q 'search(jql="assignee=currentUser() AND statusCategory!=Done"){default}'
Write (use CLI commands):
# Create issue
jira-mgmt create --type story --summary "Login UI" --project PROJ
# Transition
jira-mgmt transition PROJ-123 --to "In Progress"
# Cancel with reason
jira-mgmt cancel PROJ-123 --reason "прекращение работы с ICONIA"
# Comment
jira-mgmt comment PROJ-123 --body "Started work"
# Set DoD
jira-mgmt dod PROJ-123 --set "Tests pass\nCode reviewed"
jira-mgmt auth set-access — store credentials in the default backend for the platform:
jira-mgmt auth set-access --instance URL --email EMAIL --token API_TOKENjira-mgmt auth set-access --instance URL --token PATjira-mgmt auth whoami — canonical live auth probe; use --check=false for local inspection onlyjira-mgmt auth resolve — show where credentials resolve from without printing the tokenjira-mgmt auth clean — remove stored credentials for the selected instancejira-mgmt auth config-path — print the global auth.json pathjira-mgmt auth — compatibility alias for auth set-accessjira-mgmt config set <key> <value> — set project/board/localejira-mgmt config show — display current config (includes instance type, auth type)jira-mgmt q 'get(KEY){preset}' — single issuejira-mgmt q 'list(filters){preset}' — multiple issuesjira-mgmt q 'summary()' — board statisticsjira-mgmt q 'search(jql="..."){preset}' — JQL searchPresets: minimal, default, overview, full (includes subtasks)
List Filters:
sprint=current|IDassignee=me|emailstatus=!done|in-progress|todotype=epic|story|task|bugBatch queries: Use ; separator
jira-mgmt grep <pattern> — search issues/comments
--scope issues|comments|all, -i, -C <num>jira-mgmt create --type <type> --summary "..." --project KEY
epic, story, task, subtask, bug--description, --parent, --assignee, --priority, --labelsjira-mgmt update ISSUE-KEY --summary "..." --description "..." — update issue fieldsjira-mgmt transition ISSUE-KEY --to "Status Name" — move to statusjira-mgmt cancel ISSUE-KEY --reason "..." — cancel an issue with workflow-aware required fieldsjira-mgmt comment ISSUE-KEY --body "text" — add commentjira-mgmt dod ISSUE-KEY --set "criteria" — set Definition of Done--project KEY — override default project--board ID — override default board--format json|text — output formatUser: "Show me all epics in the current sprint"
jira-mgmt q 'list(sprint=current,type=epic){overview}'
User: "Create a story for login UI under epic PROJ-100"
jira-mgmt create --type story --summary "Login UI implementation" --parent PROJ-100 --project PROJ
User: "Find all issues mentioning 'performance'"
jira-mgmt grep -i "performance"
User: "Move PROJ-123 to done"
jira-mgmt transition PROJ-123 --to "Done"
User: "Cancel PROJ-123 because work with the vendor stopped"
jira-mgmt cancel PROJ-123 --reason "прекращение работы с ICONIA"
Prefer DSL over JQL for token efficiency.
Good (DSL):
jira-mgmt q 'list(sprint=current,assignee=me){default}'
Use JQL only when:
Always use explicit CLI commands for modifications:
jira-mgmt create --type story --summary "..." --project PROJ
jira-mgmt transition PROJ-123 --to "In Progress"
jira-mgmt cancel PROJ-123 --reason "..."
jira-mgmt comment PROJ-123 --body "..."
Respect locale config for all content creation:
# Check locale
LOCALE=$(jira-mgmt config show | grep Locale | awk '{print $2}')
# Create in configured locale
if [[ "$LOCALE" == "ru-RU" ]]; then
jira-mgmt create --type task --summary "Добавить тесты" --project PROJ
else
jira-mgmt create --type task --summary "Add tests" --project PROJ
fi
The CLI auto-detects instance type and adapts. Key differences to be aware of:
| Aspect | Cloud | Server/DC |
|--------|-------|-----------|
| Auth | Basic (email + API token) | Bearer (Personal Access Token) |
| API version | v3 (/rest/api/3/) | v2 (/rest/api/2/) |
| Search pagination | Cursor-based (nextPageToken) | Offset-based (startAt) |
| Descriptions/comments | ADF (Atlassian Document Format) | ADF (Jira 8.x+) or wiki markup |
| Project listing | Paginated /project/search | /project returns full array |
| Status names | English by default | May be localized (e.g. Russian) |
Status names on Server/DC may be in the instance's language. Use exact names as returned by Jira:
# Check actual status names for an issue
jira-mgmt q 'get(PROJ-123){full}'
# Transition using the exact name
jira-mgmt transition PROJ-123 --to "В работе"
references/cli-commands.md — Complete CLI command reference with all optionsreferences/dsl-examples.md — Comprehensive DSL query patterns and examplesreferences/workflows.md — Multi-step workflow patterns (sprint review, daily standup, bulk ops)references/jql-patterns.md — JQL query patterns for advanced searchesreferences/troubleshooting.md — Common issues and solutions (auth, JQL, transitions)references/dev-notes.md — Architecture notes for agents modifying the CLI codebaseSkill Version: 1.2 Last Updated: 2026-02-12 Tool: jira-mgmt CLI
tools
# Skill Specification ## Purpose Claude Code / Codex skill that drives `jira-mgmt` CLI for Jira Cloud operations. ## Triggers (ru + en) | Trigger patterns (ru) | Trigger patterns (en) | |------------------------|------------------------| | jira, джира | jira | | тикет, задача, тикеты, задачи | ticket, issue, issues | | эпик, эпики | epic, epics | | стори, сторя, стори | story, stories | | борда, борды, доска | board, boards | | спринт, спринты | sprint, sprints | | создай задачу, заведи тике
tools
Use when work should span one or more detached tasks but still behave like one job with a single owner context. TaskFlow is the durable flow substrate under authoring layers like Lobster, ACPX, plugins, or plain code. Keep conditional logic in the caller; use TaskFlow for flow identity, child-task linkage, waiting state, revision-checked mutations, and user-facing emergence.
tools
# Lobster Lobster executes multi-step workflows with approval checkpoints. Use it when: - User wants a repeatable automation (triage, monitor, sync) - Actions need human approval before executing (send, post, delete) - Multiple tool calls should run as one deterministic operation ## When to use Lobster | User intent | Use Lobster? | | ------------------------------------------------------ | --------------------------
tools
# Lobster Lobster executes multi-step workflows with approval checkpoints. Use it when: - User wants a repeatable automation (triage, monitor, sync) - Actions need human approval before executing (send, post, delete) - Multiple tool calls should run as one deterministic operation ## When to use Lobster | User intent | Use Lobster? | | ------------------------------------------------------ | --------------------------