jira-manager
Use this skill for all Jira workflows: create epics and issues, transition tickets, add comments, search with JQL, and manage the backlog.
Skill by Jira skill maintainers
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/ahstn-jira-manager
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md and code. Checked Oct 26, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/jira-manager
What's inside
- Skill name
jira-manager- Description
- Use this skill for all Jira workflows: create epics and issues, transition tickets, add comments, search with JQL, and manage the backlog. Use when users mention bugs, stories, tasks, sprints, or ask to file/update tickets.
- License
- MIT
- Metadata
- author: Jira skill maintainers · version: 1.1
- Instructions
- 497 lines in SKILL.md · view on GitHub
Before installing
- Instructions call the network
- Instructions read files in your home folder (~/.ssh, ~/.aws…)
Files (6)
- SKILL.md
- jira-links-and-attachments.md · references/
- jira-sprints.md · references/
- jira-workflow.md · references/
- variables.example.jsonc · references/
- .gitignore · sensitive/
SKILL.md (first lines)
# Jira Issue Tracker
You are a Jira administrator using the `jira` CLI. Work in the project and team specified by `sensitive/variables.json`, not the examples below.
## When to use this skill
Use this skill when the user needs to:
- Create or update Jira issues (bugs, stories, tasks, epics)
- Search for tickets using JQL queries
- Transition issues between workflow states
- Add comments or link issues
- Manage the configured team's backlog
**Examples:**
- "I found a null pointer exception in the payment service. Can you file a bug?"
- "Show me all high priority tickets assigned to me."
- "Create an epic for the new authentication feature with stories for login, logout, and password reset."
- "Move ISSUE-KEY to the requested status."
## Project Context
**Before any Jira operation, read `sensitive/variables.json`.** It is the local, unshared source of project key, Jira base URL, team name, board ID, issue types, priorities, recent epics, description attribution, and custom-field names/IDs. Creating or updating tickets requires the correct field IDs for REST and the configured field names for CLI `--custom` arguments; neither IDs nor field names are portable between Jira instances. Do not infer missing values from the examples in this skill or from another user's configuration. If the file is missing or invalid, stop before changing Jira and ask for a valid copy based on `references/variables.example.jsonc`.
The `jira` CLI reads its own project, board, and custom-field mapping from `~/.config/.jira/.config.yml`. Check that it matches the personal variables before acting; for another project, use `--project` and a matching CLI configuration. The CLI resolves configured custom-field names to IDs for `--custom`; raw Jira responses and REST requests use `field_id`. The JQL field name comes from the same field's `name`. Resolve the CLI aliases for the configured team, acceptance-criteria, and Story Points fields before using the examples below.
`story_points_field` is separate from `custom_fields`: use its `field_id` for reading/verifying raw JSON and REST requests, and its configured `name` for the CLI custom-field alias. The **estimate** is not a configuration default: select it independently from the full scope of each Task, Story, or Bug with the rubric below. Do not change an existing estimate during an unrelated update.
- **Creator**: Always the authenticated `$(jira me)` account. Jira sets this server-side; the CLI has no `--creator` flag.
- **Default reporter**: `$(jira me)` unless the user explicitly requests a different reporter
- **Default assignee**: `$(jira me)` unless the user explicitly requests a different assignee
## Quick Reference
Commands below are templates. Read `sensitive/variables.json`, then resolve `TEAM_FIELD_NAME`, `TEAM_FIELD_ALIAS`, `ACCEPTANCE_CRITERIA_ALIAS`, and `STORY_POINTS_ALIAS` against its field entries and the matching CLI configuration. Choose `STORY_ISSUE_TYPE`, `SUBTASK_ISSUE_TYPE`, and `BUG_ISSUE_TYPE` from `issue_types`; use actual issue keys for `ISSUE_KEY`, `PARENT_KEY`, and `EPIC_KEY`. Never send an unset placeholder to Jira. Select `$STORY_POINTS` independently for each issue with the rubric below. Resolve status and link-type names from Jira before using `STATUS_NAME`, `OPEN_STATUSES`, or any `*_LINK_TYPE` variable; link types and directions are described in [the links reference](references/jira-links-and-attachments.md).
```sh
JIRA_VARIABLES="$HOME/.agents/skills/jira-manager/sensitive/variables.json"
TEAM_NAME=$(jq -r '.team_name' "$JIRA_VARIABLES")
PRIORITY_STANDARD=$(jq -r '.priorities.standard' "$JIRA_VARIABLES")
PRIORITY_HIGH=$(jq -r '.priorities.high' "$JIRA_VARIABLES")
# Resolve TEAM_FIELD_NAME and the three field aliases from the configured custom fields.
TEAM_JQL=$(jq -nr --arg field "$TEAM_FIELD_NAME" --arg team "$TEAM_NAME" '"\($field | @json) = \($team | @json)"')
# Set STORY_POINTS for the particular issue, and ISSUE_KEY / EPIC_KEY from Jira.
# Create issue; capture the returned key, verify Story Points, then apply the sprint policy
jira issue create --type "$STORY_ISSUE_TYPE" --summary "..." --priority "$PRIORITY_STANDARD" --reporter "$(jira me)" --assignee "$(jira me)" --custom "${TEAM_FIELD_ALIAS}=${TEAM_NAME}" --custom "${STORY_POINTS_ALIAS}=${STORY_POINTS}" --custom "${ACCEPTANCE_CRITERIA_ALIAS}=- [ ] Work is complete" --no-input --raw
# Create epic
jira epic create --name "..." --summary "..." --priority "$PRIORITY_HIGH" --reporter "$(jira me)" --assignee "$(jira me)" --custom "${TEAM_FIELD_ALIAS}=${TEAM_NAME}" --no-input
# Edit issue without changing its estimate
jira issue edit "$ISSUE_KEY" --summary "New summary" --body "New description" --no-input
# Re-estimate only on request or after a material scope change
jira issue edit "$ISSUE_KEY" --custom "${STORY_POINTS_ALIAS}=${STORY_POINTS}" --no-input
# Before transitions, read references/jira-workflow.md
# Comment
jira issue comment add "$ISSUE_KEY" "Comment text"
# Search
jira issue list --jql "$TEAM_JQL AND assignee = currentUser() AND status = \"$STATUS_NAME\"" --plain
# View
jira issue view "$ISSUE_KEY" --plain
```
## Required Fields
**ALL issues must include:**
- `--type` (select the configured issue type from `issue_types`)
- `--summary`
- `--priority` (choose the configured value under `priorities`)
- `--custom "${TEAM_FIELD_ALIAS}=${TEAM_NAME}"` (resolve the team field via `custom_fields`)
- `--reporter "$(jira me)"` unless the user explicitly requests a different reporter
- `--assignee "$(jira me)"` unless the user explicitly requests a different assignee
- `--no-input` (required for non-interactive execution)
The creator is not a settable CLI field. Jira automatically records the authenticated `$(jira me)` account as creator. Do not accept or invent a different creator.
**Tasks/Stories/Bugs must include:**
- `--custom "${ACCEPTANCE_CRITERIA_ALIAS}=${CRITERIA}"` (resolve the configured acceptance-criteria field)
- `--custom "${STORY_POINTS_ALIAS}=${STORY_POINTS}"` using the separate `story_points_field` and the Story Points rubric with a minimum floor of `0.5`
- `--parent "$EPIC_KEY"` (if linking to an epic)
Estimate from the full ask before creating the issue. Do not use a fixed default or copy one estimate across a batch. If the user gives a valid estimate, use it. If they give a value outside the allowed sequence, propose the nearest rubric value and get explicit approval before proceeding. Never send the invalid value.
By this team's planning policy, Epics do not receive Story Points even if Jira exposes the field. Sub-tasks receive Story Points only when Jira exposes the field for that issue type and the user explicitly requests a sub-task estimate; otherwise estimate the parent Task, Story, or Bug.
**Sub-task acceptance criteria fallback:**
- Try setting the configured Acceptance Criteria field when it is available.
- If Jira rejects it as a field that cannot be set on a Sub-task, retry without that custom field and include an `## Acceptance criteria` section in the description body. Do not retry creation blindly if a key was returned.
**Searching Issues:**
- Filter by the configured team field `name` and `team_name` in JQL to avoid other teams' tickets/issues; do not use the CLI alias as a JQL field name. Build `TEAM_JQL` as the quoted field name, ` = `, and the quoted team name, escaping embedded quotes and backslashes in both values.
## Shell Escaping for Bodies
Use `$'...'` syntax for bodies with newlines and special characters. Set `CRITERIA` separately when passing multiline acceptance criteria to `--custom`:
```sh
CRITERIA=$'- [ ] Criterion 1\n- [ ] Criterion 2'
# Multi-line body with markdown
jira issue create \
--type "$STORY_ISSUE_TYPE" \
--summary "Example story" \
--priority "$PRIORITY_STANDARD" \
--body $'## Summary\nBrief description\n\n## Technical Context\n- Component A\n- Component B' \
--custom "${TEAM_FIELD_ALIAS}=${TEAM_NAME}" \
--custom "${STORY_POINTS_ALIAS}=${STORY_POINTS}" \
--reporter "$(jira me)" \
--assignee "$(jira me)" \
--custom "${ACCEPTANCE_CRITERIA_ALIAS}=${CRITERIA}" \
--no-input \
--raw
```
For bodies with backticks or complex markdown, escape them: `` \` ``From ahstn/dotfiles, MIT.
More from ahstn/dotfiles
- 0.609score
kubes-mode-v2
ahstn
Personal working mode for software engineering tasks.
SkillAFreshness: A★ 3Claude Code +9 - 0.606score
code-review-and-quality
ahstn
Reviews staged or unstaged diffs, branches, and GitHub pull requests for defects and material code-health costs.
SkillAFreshness: A★ 3Claude Code +9 - 0.606score
computer-use-cua-driver
ahstn
Operate native macOS, Windows, or Linux GUI applications with Cua Driver through an available MCP connection or the installed CLI.
SkillAFreshness: A★ 3Claude Code +9 - 0.604score
github-librarian
ahstn
Use when looking up GitHub repositories, upstream source, or library internals, either via quick `gh search` queries or by cloning into ~/.cache/github/ for…
SkillAFreshness: A★ 3Claude Code +9 - 0.604score
tty-fork
ahstn
Start a fresh or forked OMP session in a right or below split, or a new tab, in tty7, Herdr, or Tern.
SkillAFreshness: A★ 3Claude Code +9 - 0.603score
slack-message
ahstn
Rules for sending Slack messages and reference request payloads.
SkillAFreshness: A★ 3Claude Code +9 - 0.560score
kubes-mode
ahstn
No description from the publisher yet.
SkillAFreshness: A★ 3Claude Code +9 - 0.557score
personality
ahstn
Draft, edit, or review professional writing in the user's conversational engineering voice.
SkillBFreshness: B★ 3Claude Code +9 - 0.534score
github-yeet
OpenAI
Use only when the user explicitly asks to stage, commit, push, and open a GitHub pull request
SkillAFreshness: A★ 3Claude Code +9 - 0.514score
code-structure-and-modularity
ahstn
Code structure and module-boundary rubric for writing, extending, reviewing, or reorganizing code.
SkillCFreshness: C★ 3Claude Code +9 - 0.486score
wayfinder
ahstn
Plan a huge chunk of work — more than one agent session can hold — as a shared map of investigation tickets on your issue tracker, and resolve them one at a…
SkillCFreshness: C★ 3Claude Code +9 - 0.484score
grill
ahstn
Interview the user relentlessly about a plan or design until reaching shared understanding, resolving each branch of the decision tree.
SkillCFreshness: C★ 3Claude Code +9
Signals
- Stars
- 3
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Sep 27, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026).
Details
- Version
- 1.1
- License
- MIT
- Repository
- github.com/ahstn/dotfiles
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
Cite this page
jira-manager skill. Agent Mart. https://agentmart.dev/skills/ahstn-jira-manager (last updated 2026-10-24)