← Back to Skills Marketplace
cehd5170

jira-ticket

by cehd5170 · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ✓ Security Clean
167
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install jira-ticket
Description
Create Jira tickets with web-researched content. Use when asked to create, file, or open a Jira issue/ticket/story/bug/task, especially when the ticket conte...
README (SKILL.md)

Jira Ticket Creator with Web Research

Create Jira tickets whose content is enriched by web search. Follow these phases in order.

Setup

Three environment variables are required:

All Jira API calls use Basic auth via curl -u and force HTTP/1.1:

curl --http1.1 -s -u "$JIRA_EMAIL:$JIRA_API_TOKEN" -H "Content-Type: application/json" "$JIRA_BASE_URL/rest/api/3/..."

Phase 1 — Parse Arguments

Parse the user's request to extract:

Field Required Description
project yes Jira project key (e.g. ENG, OPS)
issuetype no Task, Bug, Story, Epic (default: Task)
summary yes Short title for the ticket
search_query no Topic to web-search for enriching the description
priority no Highest, High, Medium, Low, Lowest (default: Medium)
assignee no Atlassian account email or ID
labels no Comma-separated labels
components no Comma-separated component names

If the user does not provide a project key, ask for it before proceeding.


Phase 2 — Web Research (if applicable)

If the user asked for research, or if the ticket would benefit from context (e.g. a bug report referencing an external API, a story about integrating a third-party service):

  1. Use the web_search tool to search for the relevant topic.
  2. Use the xurl tool or curl to fetch key pages for details.
  3. Extract the most relevant information: error descriptions, API docs, best practices, version notes, or solution approaches.

Compile findings into a structured summary:

### Research Summary
- **Source**: [URL]
- **Key findings**: ...
- **Relevant details**: ...

If no research is needed, skip to Phase 3.


Phase 3 — Compose Ticket Content

Build the ticket description in Atlassian Document Format (ADF). Combine:

  • The user's original request/context
  • Research findings from Phase 2 (if any)
  • Acceptance criteria (when creating Stories)
  • Steps to reproduce (when creating Bugs)

Keep the description concise and actionable.

ADF Structure

Jira API v3 uses ADF for the description field. Minimal example:

{
  "type": "doc",
  "version": 1,
  "content": [
    {
      "type": "paragraph",
      "content": [{ "type": "text", "text": "Description text here." }]
    }
  ]
}

For richer formatting (headings, bullet lists, links):

{
  "type": "doc",
  "version": 1,
  "content": [
    {
      "type": "heading",
      "attrs": { "level": 3 },
      "content": [{ "type": "text", "text": "Summary" }]
    },
    {
      "type": "bulletList",
      "content": [
        {
          "type": "listItem",
          "content": [
            {
              "type": "paragraph",
              "content": [{ "type": "text", "text": "Item one" }]
            }
          ]
        }
      ]
    },
    {
      "type": "paragraph",
      "content": [
        { "type": "text", "text": "Source: " },
        {
          "type": "text",
          "text": "link text",
          "marks": [{ "type": "link", "attrs": { "href": "https://example.com" } }]
        }
      ]
    }
  ]
}

Phase 4 — Validate Project and Fields

Before creating the ticket, verify the project exists and discover available fields:

# Verify project
curl --http1.1 -s -u "$JIRA_EMAIL:$JIRA_API_TOKEN" -H "Content-Type: application/json" \
  "$JIRA_BASE_URL/rest/api/3/project/$PROJECT_KEY" | jq '{key, name, id}'

# List available issue types for the project
curl --http1.1 -s -u "$JIRA_EMAIL:$JIRA_API_TOKEN" -H "Content-Type: application/json" \
  "$JIRA_BASE_URL/rest/api/3/project/$PROJECT_KEY/statuses" | jq '.[].name'

If the project or issue type is invalid, report the error and ask the user to correct it.


Phase 5 — Create the Ticket

curl --http1.1 -s -X POST \
  -u "$JIRA_EMAIL:$JIRA_API_TOKEN" \
  -H "Content-Type: application/json" \
  "$JIRA_BASE_URL/rest/api/3/issue" \
  -d '{
    "fields": {
      "project": { "key": "PROJECT_KEY" },
      "summary": "Ticket summary here",
      "issuetype": { "name": "Task" },
      "priority": { "name": "Medium" },
      "description": { ADF_OBJECT },
      "labels": ["label1", "label2"]
    }
  }'

Extract the response:

# Parse response for issue key and URL
ISSUE_KEY=$(echo "$RESPONSE" | jq -r '.key')
ISSUE_URL="$JIRA_BASE_URL/browse/$ISSUE_KEY"

If the API returns an error, display the error message and suggest corrections.


Phase 6 — Report

Present the result to the user:

  • Issue key: e.g. ENG-1234
  • URL: direct link to the ticket
  • Summary: the title that was set
  • Research included: yes/no, with sources listed

Notes

  • The Jira REST API v3 requires ADF for descriptions — plain text or markdown will be rejected.
  • Rate limits: Jira Cloud allows ~100 requests per minute per user.
  • The jira.yaml network policy preset in NemoClaw already allows *.atlassian.net, auth.atlassian.com, and api.atlassian.com on port 443.
  • To use this skill inside NemoClaw's sandbox, enable the Jira preset in your sandbox policy.

Examples

# Create a simple task
/jira-ticket ENG "Update API rate limiting docs"

# Create a bug with web research
/jira-ticket ENG --type Bug --search "Node.js fetch timeout ECONNRESET" "Fix intermittent ECONNRESET in payment service"

# Create a story with priority and labels
/jira-ticket PLATFORM --type Story --priority High --labels "q2,backend" "Add OAuth2 PKCE flow for mobile clients"
Usage Guidance
This skill appears coherent and requests only the expected Jira credentials. Before installing: (1) Provide a dedicated Jira API token scoped to a minimally privileged account (service account) rather than your personal admin token; (2) keep JIRA_API_TOKEN secret and rotate it if leaked; (3) avoid including sensitive secrets or private data in the ticket text or in web-search queries, since the skill fetches external pages during research and will post the composed content to your Jira instance; and (4) if you run the skill in a sandbox, enable the stated Jira network preset and review network policies so the skill can only reach the required Atlassian hosts.
Capability Analysis
Type: OpenClaw Skill Name: jira-ticket Version: 1.0.0 The skill is a legitimate utility for creating Jira tickets enriched with web research. It follows a structured process including argument parsing, information gathering via web search, and interaction with the Jira REST API v3 using standard authentication methods. The use of environment variables (JIRA_API_TOKEN, JIRA_EMAIL) and shell commands (curl, jq) in SKILL.md is consistent with the stated purpose, and no evidence of malicious intent, data exfiltration, or prompt injection was found.
Capability Assessment
Purpose & Capability
Name/description match the declared requirements: curl and jq are used for HTTP calls and JSON parsing, and the three environment variables (JIRA_BASE_URL, JIRA_EMAIL, JIRA_API_TOKEN) are exactly what is needed to call the Jira Cloud REST API.
Instruction Scope
SKILL.md stays on task: it parses user input, optionally runs web searches and fetches pages for research, builds an ADF description, validates project/fields, and posts to Jira. It does not instruct reading local files or unrelated environment variables, nor does it direct data to unexpected endpoints beyond web research and Jira.
Install Mechanism
Instruction-only skill with no install spec and no code files; nothing is written to disk and no external packages are pulled in. This is the lowest-risk install model.
Credentials
Requested secrets are limited and appropriate for the task (Jira base URL, account email, API token). No unrelated credentials, config paths, or broad system secrets are requested.
Persistence & Privilege
always:false and normal autonomous invocation settings. The skill does not request permanent system-wide presence or modifications to other skills or agent settings.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install jira-ticket
  3. After installation, invoke the skill by name or use /jira-ticket
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
- Initial release of the Jira Ticket skill. - Create Jira tickets with descriptions enriched by web research. - Supports user input for project, issue type, summary, priority, assignee, labels, and more. - Validates project and issue fields before ticket creation. - Generates ticket descriptions in Atlassian Document Format (ADF). - Returns issue key, direct URL, summary, and research sources upon ticket creation.
Metadata
Slug jira-ticket
Version 1.0.0
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is jira-ticket?

Create Jira tickets with web-researched content. Use when asked to create, file, or open a Jira issue/ticket/story/bug/task, especially when the ticket conte... It is an AI Agent Skill for Claude Code / OpenClaw, with 167 downloads so far.

How do I install jira-ticket?

Run "/install jira-ticket" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is jira-ticket free?

Yes, jira-ticket is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does jira-ticket support?

jira-ticket is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created jira-ticket?

It is built and maintained by cehd5170 (@cehd5170); the current version is v1.0.0.

💬 Comments