home / skills / arctuition / skills / jira-ticket-creator

jira-ticket-creator skill

/skills/jira-ticket-creator

This skill creates Jira tickets via jira-cli, automatically selecting component and moving to Backlog, returning the ticket URL.

npx playbooks add skill arctuition/skills --skill jira-ticket-creator

Review the files below or copy the command above to add this skill to your agents.

Files (3)
SKILL.md
7.0 KB
---
name: jira-ticket-creator
description: Create Jira tickets using jira-cli (https://github.com/ankitpokhrel/jira-cli). Use when the user asks to create Jira tickets, issues, or stories with work types (Epic/Story/Bug/A/B Test), set to Backlog status. Selects the most appropriate component from API/Projects/Proposals/Backends/Regression/AI using the -C flag. Returns the ticket URL after creation. Assumes jira-cli is already installed and configured (user has run 'jira init').
---

# Jira Ticket Creator

Create Jira tickets non-interactively using the jira-cli tool.

## Prerequisites

Before using this skill, ensure:
- jira-cli is installed: `brew install jira-cli` or download from [releases](https://github.com/ankitpokhrel/jira-cli/releases)
- Authentication is configured: User has run `jira init` and set up API token
- User has access to the target Jira project

## Available Components

Select the most appropriate component based on the ticket content:

- **API**: REST API endpoints, API design, external integrations
- **Projects**: Project-related features, project management functionality
- **Proposals**: Proposal features, proposal workflows
- **Backends**: Backend services, database, server-side logic, caching, performance
- **Regression**: Bug fixes, regression issues, quality assurance
- **AI**: AI/ML features, intelligent automation, ChatGPT integrations

**Selection Examples:**
- "Optimize query performance with Redis caching" → Backends
- "Add ChatGPT integration" → AI
- "Create project REST API" → API
- "Fix login bug on Safari" → Regression
- "Add proposal approval workflow" → Proposals
- "Implement project dashboard" → Projects

## Quick Start

To create a Jira ticket, use the jira-cli command with the following pattern:

```bash
jira issue create \
  -t<TYPE> \
  -s"<SUMMARY>" \
  -b"<DESCRIPTION>" \
  -C <COMPONENT> \
  --no-input
```

**Example:**
```bash
jira issue create \
  -tStory \
  -s"Optimize project query performance with Redis caching" \
  -b"Implement batch processing and Redis caching for project queries" \
  -C Backends \
  --no-input
```

### Supported Work Types

- `Epic` - For large initiatives or themes
- `Story` - For user stories and features
- `Bug` - For defects and issues
- `A/B Test` - For A/B testing tasks (if configured in your Jira instance)

## Creating Tickets

### Basic Ticket Creation

For standard ticket creation without a parent epic:

```bash
jira issue create \
  -tStory \
  -s"Add user authentication" \
  -b"Implement JWT-based authentication for API endpoints" \
  -C API \
  --no-input
```

### Ticket with Parent Epic

To link a story/bug to an epic, use the `-P` flag:

```bash
jira issue create \
  -tStory \
  -s"Update project dashboard UI" \
  -b"Modernize the project dashboard design" \
  -P PROJ-123 \
  -C Projects \
  --no-input
```

### Epic Creation

```bash
jira issue create \
  -tEpic \
  -s"Q1 2024 AI Integration Initiative" \
  -b"Integrate AI capabilities across the platform" \
  -C AI \
  --no-input
```

### Bug Creation

```bash
jira issue create \
  -tBug \
  -s"Login fails on Safari" \
  -b"Users cannot log in when using Safari browser on macOS. Error message: 'Invalid credentials'" \
  -C Regression \
  --no-input
```

## Setting Status to Backlog

**Important**: Jira typically creates issues in the default initial status (usually "To Do" or "Open"). To move a newly created ticket to "Backlog" status:

### Two-Step Process

```bash
# Step 1: Create the ticket and capture the issue key
ISSUE_KEY=$(jira issue create -tStory -s"Summary" -b"Description" \
  -C Backends --no-input | grep -oE '[A-Z]+-[0-9]+' | head -1)

# Step 2: Move to Backlog status
jira issue move "$ISSUE_KEY" "Backlog"
```

### Alternative: Configure Default Status

Ask the Jira administrator to set "Backlog" as the default initial status for the project, eliminating the need for the move step.

## Getting the Ticket URL

After creating a ticket, jira-cli outputs the issue key (e.g., `PROJ-123`). To get the full URL:

### Method 1: Open in Browser
```bash
jira open PROJ-123
```

### Method 2: View Issue Details
```bash
jira issue view PROJ-123
```
The output includes the issue URL.

### Method 3: Construct URL Manually
If you know your Jira domain:
```
https://your-domain.atlassian.net/browse/PROJ-123
```

### Method 4: Copy from CLI
When viewing issues in the interactive list:
- Press `ENTER` to open in browser
- Press `c` to copy URL to clipboard

## Helper Script

For complex workflows, you can create a helper script if needed:

```bash
#!/bin/bash
# create_jira_ticket.sh
TYPE=$1
SUMMARY=$2
DESCRIPTION=$3
COMPONENT=$4

jira issue create \
  -t"$TYPE" \
  -s"$SUMMARY" \
  -b"$DESCRIPTION" \
  -C "$COMPONENT" \
  --no-input
```

Usage:
```bash
./create_jira_ticket.sh Story "Add authentication" "Implement JWT auth" API
```

## Complete Workflow Example

Create a ticket with all required fields and get the URL:

```bash
# Step 1: Create the ticket (select appropriate component based on the task)
OUTPUT=$(jira issue create \
  -tStory \
  -s"Implement project dashboard" \
  -b"Create a dashboard showing project metrics and recent activity" \
  -C Projects \
  --no-input)

# Step 2: Extract the issue key
ISSUE_KEY=$(echo "$OUTPUT" | grep -oE '[A-Z]+-[0-9]+' | head -1)

# Step 3: Move to Backlog
jira issue move "$ISSUE_KEY" "Backlog"

# Step 4: Get and display the URL
echo "Ticket created: https://your-domain.atlassian.net/browse/$ISSUE_KEY"

# Or open directly in browser
jira open "$ISSUE_KEY"
```

## Component Selection Reference

For detailed guidance on selecting the appropriate component, see [references/component_selection.md](references/component_selection.md).

## Troubleshooting

### Authentication Errors
If you get authentication errors, reconfigure jira-cli:
```bash
jira init
```

### Component Not Found
If a component is not recognized:
1. List available components: `jira component list`
2. Verify the component name matches exactly (case-sensitive)
3. Valid components: API, Projects, Proposals, Backends, Regression, AI

### Invalid Issue Type
If "A/B Test" is not recognized, verify it's configured in your Jira project:
1. Check available types: Run `jira issue create` and observe the type options
2. Use a standard type (Epic/Story/Bug) if A/B Test is not available

## Examples by Use Case

### User requests: "Create a bug ticket for the login issue"
```bash
jira issue create \
  -tBug \
  -s"Login fails on Safari browser" \
  -b"Users report they cannot log in when using Safari. The login button appears unresponsive." \
  -C Regression \
  --no-input
```

### User requests: "Create an epic for AI integration"
```bash
jira issue create \
  -tEpic \
  -s"AI Integration Initiative" \
  -b"Integrate AI capabilities including ChatGPT, automated insights, and intelligent recommendations" \
  -C AI \
  --no-input
```

### User requests: "Create a story under epic PROJ-456 for project analytics API"
```bash
jira issue create \
  -tStory \
  -s"Build project analytics API endpoint" \
  -b"As a developer, I want a REST API endpoint to retrieve project analytics data" \
  -P PROJ-456 \
  -C API \
  --no-input
```

Overview

This skill creates Jira tickets non-interactively using jira-cli and returns the ticket URL after creation. It chooses the most appropriate component from API/Projects/Proposals/Backends/Regression/AI and sets new issues to Backlog status. Assumes jira-cli is installed and configured (user has run 'jira init').

How this skill works

When given a request to create an issue, the skill maps the requested work type (Epic/Story/Bug/A/B Test) and the content to the best component category. It runs jira-cli commands to create the issue, extracts the issue key from the CLI output, moves the issue to Backlog, and constructs the public ticket URL. It returns the URL so you can open or share the ticket immediately.

When to use it

  • When you need a non-interactive Jira ticket created from natural language requests
  • When you want consistent component selection (API/Projects/Proposals/Backends/Regression/AI) based on task content
  • When you need the ticket created in Backlog status rather than the default status
  • When you want a quick URL to the newly created issue for sharing or linking
  • When you prefer CLI-driven automation or scripts to create Jira issues

Best practices

  • Provide a clear, concise summary and a detailed description with acceptance criteria when possible
  • Specify parent epic key with -P if the issue should link to an Epic
  • Use one of the supported work types: Epic, Story, Bug, A/B Test (verify A/B Test exists in your project)
  • Confirm jira-cli is initialized (run 'jira init') and you have project access before requesting ticket creation
  • If Backlog should be default, ask your Jira admin to change the project default status to Backlog to avoid the move step

Example use cases

  • Create a Bug for a login regression on Safari and get the issue URL
  • Open an Epic for a quarter-long AI initiative with AI component selected
  • Create a Story under an existing Epic and place it in Backlog
  • Generate a Story to implement a REST API endpoint mapped to API component
  • Create an A/B Test ticket if your Jira project supports that issue type

FAQ

What if the component name is not recognized?

Run 'jira component list' to see available components and ensure the chosen name matches exactly (case-sensitive). If missing, request the component be added in Jira.

How does the skill move the ticket to Backlog?

It captures the issue key from jira-cli output then runs 'jira issue move "ISSUE_KEY" "Backlog"'. If Backlog is not available, set the project default status or ask an admin to enable it.