jira-issue-management
Create and manage Jira issues (bugs, epics, stories, tasks) for SRVKP project with intelligent routing and project-specific conventions
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Create and manage Jira issues (bugs, epics, stories, tasks) for SRVKP project with intelligent routing and project-specific conventions
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Implementation guide for creating well-formed Jira bug reports in SRVKP project
Implementation guide for creating Jira epics with proper scope and parent linking in SRVKP project
Implementation guide for creating Jira features that organize multiple epics into strategic initiatives for SRVKP project
Implementation guide for creating well-formed Jira user stories with acceptance criteria in SRVKP project
Implementation guide for creating Jira tasks for technical and operational work in SRVKP project
| name | Jira Issue Management |
| description | Create and manage Jira issues (bugs, epics, stories, tasks) for SRVKP project with intelligent routing and project-specific conventions |
| invocation_pattern | /jira:create <type> |
This skill provides a unified interface for creating Jira issues in the SRVKP project with intelligent routing to specialized sub-skills based on issue type.
PROJECT RESTRICTION:
CONFIRMATION REQUIRED:
PROJECT-SPECIFIC CONVENTIONS:
When creating or searching Jira issues, follow this decision tree — no exceptions:
Step 1 ─── Call MCP tool
mcp__atlassian__jira_create_issue(project_key="SRVKP", ...)
Step 2 ─── Inspect result
│
├─ SUCCESS (result contains issue key)
│ └─ Return issue key and URL to user ✓
│
└─ ERROR (result contains any of the following messages)
• "Tool rejected: User rejected MCP"
• "MCP server does not exist"
• "Connection refused" / timeout
│
└─ Step 3: Switch to CLI fallback
Run: acli jira workitem create
--project "SRVKP"
--type "<same type>"
--summary "<same summary>"
--description "$(cat <<'EOF' ... EOF)"
[--parent "<same parent>"]
--label "ai-generated-jira"
--json
(Same parameters, same field values — payload-identical)
└─ Return issue key and URL to user ✓
The LLM cannot catch MCP exceptions in code. Instead, check whether the tool result contains an error message (step 2) and branch accordingly.
Full acli command syntax and examples: reference/cli-fallback.md
If falling back to CLI, ensure authentication is configured. Use your own Red Hat Jira email in --email and store your API token outside this repo (the examples use ~/.jira.d/token; you may use another path and adjust --token accordingly).
One-Time Setup:
Generate API token (only if you don't have one):
Store token locally (only if not already stored):
echo "YOUR_API_TOKEN" > ~/.jira.d/token
chmod 600 ~/.jira.d/token
Authenticate (safe to run multiple times):
acli jira auth login \
--site "https://issues.redhat.com" \
--email "YOUR_REDHAT_ID@redhat.com" \
--token < ~/.jira.d/token
Note: This command uses your existing token - it doesn't create new ones. Running it again will just re-authenticate using the same token.
Verify Authentication:
acli jira me
Expected Output:
✓ Authentication successful
Welcome, <your Jira display name>
When CLI is Used:
acli jira workitem create commandsacli jira workitem search --jql "<query>"acli jira field listacli jira project listIssue Creation Examples:
# Simple issue creation
acli jira workitem create \
--project "SRVKP" \
--type "Epic" \
--summary "Epic title" \
--description "$(cat <<'EOF'
Epic description with Jira wiki markup.
h2. Epic Objective
Enable feature X for users
h2. Acceptance Criteria
# Criterion 1
# Criterion 2
EOF
)" \
--label "ai-generated-jira" \
--json
# Issue creation with parent link
acli jira workitem create \
--project "SRVKP" \
--type "Story" \
--summary "Story title" \
--description "$(cat <<'EOF'
As a user, I want to do X, so that I can achieve Y.
h2. Acceptance Criteria
* Test that behavior 1 works
* Test that behavior 2 works
EOF
)" \
--parent "SRVKP-12345" \
--label "ai-generated-jira" \
--json
Note: Use here-doc with $(cat <<'EOF' ... EOF) for multi-line descriptions with wiki markup. No temp files needed.
Search Examples:
# Search for epics
acli jira workitem search \
--jql 'project = SRVKP AND issuetype = Epic AND summary ~ chains' \
--fields "key,summary,status" \
--json
# Search for features
acli jira workitem search \
--jql 'project = SRVKP AND issuetype = Feature' \
--fields "key,summary,status" \
--json
Note: The skill will automatically detect if MCP is unavailable and use CLI commands as fallback.
/jira:create <type> [SUMMARY] [OPTIONS]
Note: Project is always SRVKP - you don't need to specify it.
Supported issue types:
bug - Bug reports with reproduction stepsepic - Epics with scope and acceptance criteriafeature - Strategic features containing multiple epicsstory - User stories with acceptance criteriatask - Technical/operational tasks/jira:create bug "Pipeline fails when using workspaces with PVC"
/jira:create epic "Recursive Image Manifest signing in Tekton Chains"
/jira:create feature "Tekton Chains Signing Enhancements"
/jira:create story "Enable pipeline caching for faster builds"
/jira:create task "Update Tekton Chains documentation for v0.20"
This skill acts as a dispatcher:
/jira:create bug)Creates detailed bug reports with:
Delegates to: create-bug/SKILL.md
/jira:create epic)Creates epics with:
Delegates to: create-epic/SKILL.md
/jira:create feature)Creates strategic features with:
Delegates to: create-feature/SKILL.md
/jira:create story)Creates user stories with:
Delegates to: create-story/SKILL.md
/jira:create task)Creates technical tasks with:
Delegates to: create-task/SKILL.md
/jira:create <type> "<summary>"
Examples:
/jira:create bug "Authentication service returns 500 error"
/jira:create story "Enable service health dashboard"
/jira:create <type> "<summary>" --parent <parent-key> --component "<component>"
Examples:
/jira:create story "Add metrics endpoint" --parent SRVKP-100
/jira:create task "Update monitoring config" --component "Infrastructure"
/jira:create bug "Memory leak in API service" --component "Backend Services"
If summary is omitted, you'll be prompted:
/jira:create bug
# Will prompt for summary and guide through all fields
| Option | Description | Example |
|---|---|---|
--parent <key> | Link to parent epic/feature | --parent SRVKP-100 |
--component <name> | Set component (or accept suggestion) | --component "Backend Services" |
--labels <label1,label2> | Add labels | --labels "urgent,regression" |
Different issue types use different parent relationships:
The appropriate field is selected automatically based on issue type and parent type.
Components are auto-suggested based on keywords in your summary. The authoritative keyword
→ component mapping and full component list are in _common.md.
If user specifies a project other than SRVKP:
→ Reject immediately with:
"❌ ERROR: This skill only works with SRVKP project.
You specified: <project>
Correct usage: /jira:create <type> '<summary>'"
→ Stop processing
Always set project = "SRVKP"
Extract components from the command:
/jira:create bug "API crashes" --component "Backend Services"
↓ ↓ ↓
type summary options
Check that the issue type is supported:
bug, epic, feature, story, taskBased on issue type, read and invoke the appropriate sub-skill:
| Type | Sub-skill |
|---|---|
bug | create-bug/SKILL.md |
epic | create-epic/SKILL.md |
feature | create-feature/SKILL.md |
story | create-story/SKILL.md |
task | create-task/SKILL.md |
Pass parsed arguments to the sub-skill:
The sub-skill handles:
Show complete preview of all fields
↓
Ask: "Create this issue? (yes/no): "
↓
Wait for explicit response
├─ "yes" → call MCP tool; if MCP returns an error → run acli fallback (same payload)
│ return issue key and URL
└─ "no" → "Issue creation cancelled. No changes made to Jira."
Offer: 1) modify details and retry 2) cancel completely
This skill is exclusively for SRVKP (OpenShift Pipelines project).
The keyword → component mapping is defined in _common.md (single source of truth).
All issue types:
Bugs:
Stories:
Epics:
Tasks:
/jira:create bug OCPBUGS "Summary"
Response:
❌ ERROR: This skill only works with SRVKP project.
You specified: OCPBUGS
This skill is restricted to: SRVKP
Correct usage:
/jira:create bug "Summary"
The project is automatically set to SRVKP - you don't need to specify it.
/jira:create widget "Summary"
Response:
Invalid issue type "widget".
Supported types:
/jira:create bug - Bug reports
/jira:create epic - Epics
/jira:create feature - Strategic features
/jira:create story - User stories
/jira:create task - Technical tasks
Usage: /jira:create <type> "<summary>" [options]
/jira:create bug
Response:
Let me help you create a bug report for SRVKP project.
What is the bug summary?
>
Create this issue? (yes/no): no
Response:
Issue creation cancelled. No changes made to Jira.
Would you like to:
1. Modify the issue details and try again
2. Cancel completely
If MCP Atlassian server is not available:
acli (automatic fallback) — installed and authenticated for when MCP is unavailableSee README.md for full install and auth instructions for both paths.
acli jira me — expected output: ✓ Authentication successful.For detailed information about each issue type:
Bugs: See create-bug/SKILL.md
Epics: See create-epic/SKILL.md
Stories: See create-story/SKILL.md
Tasks: See create-task/SKILL.md
_common.md — safety rules, component table, confirmation flow, MCP→CLI fallbackreference/cli-fallback.md — acli command syntax and examplesREADME.md — install guide, test plan, file layout⚠️ CRITICAL SAFETY RULES:
jira_delete_issue MCP tool1. Collect all required fields
2. Apply SRVKP conventions and templates
3. Show complete issue preview:
═══════════════════════════════════
PREVIEW: SRVKP Bug Report
═══════════════════════════════════
Project: SRVKP
Type: Bug
Summary: [summary]
Component: [component] (suggested)
Description:
[formatted description]
═══════════════════════════════════
4. Ask: "Create this issue? (yes/no): "
5. Wait for response
6. Only create if response is "yes"
7. If "no", offer to modify or cancel
Input: /jira:create bug 'Authentication service returns 500' --component 'Backend Services'
1. Parse command → type=bug, summary="...", component="Backend Services"
2. Enforce SRVKP-only
If project specified and ≠ SRVKP → reject (see Step 1 above)
Always set project = "SRVKP"
3. Validate type
Allowed: bug | epic | feature | story | task
Otherwise → show usage and supported types
4. Suggest component (if not provided)
Scan summary for keywords → pick from component table in _common.md
5. Read and invoke sub-skill
create-bug/SKILL.md ← receives: project, type, summary, component, options
6. Sub-skill handles (in order):
a. Component suggestion / confirmation
b. Interactive field collection
c. Apply SRVKP templates
d. Show complete PREVIEW
e. Ask "Create this bug? (yes/no)"
f. On "yes": MCP call → if error → acli fallback (same payload)
g. Return issue key and URL
User invokes: /jira:create <type> ...
↓
Enforce SRVKP-only (reject other projects)
↓
Parse command arguments
↓
Validate issue type
↓
Suggest component based on summary keywords
↓
Route to appropriate sub-skill
↓
Sub-skill applies SRVKP templates
↓
Sub-skill collects required fields interactively
↓
SHOW COMPLETE PREVIEW of issue
↓
GET EXPLICIT USER CONFIRMATION (yes/no)
↓
If YES: Create issue (MCP first; same payload via `acli` on fallback)
↓
Return issue key and URL
↓
If NO: Offer to modify or cancel
# Pipeline execution issue
/jira:create bug "TaskRun fails with OOMKilled error in step container"
# → Suggests: Tekton Pipelines
# Signing/attestation issue
/jira:create bug "Tekton Chains signature verification fails for OCI images"
# → Suggests: Tekton Chains
# Event/webhook issue
/jira:create bug "EventListener returns 500 on GitHub webhook"
# → Suggests: Tekton Triggers
# CLI issue
/jira:create bug "tkn pipeline start hangs on large pipeline definitions"
# → Suggests: Tekton Cli
# Caching feature
/jira:create story "Enable result caching for pipeline tasks"
# → Suggests: Tekton Cache
# UI enhancement
/jira:create story "Add pipeline visualization in dashboard"
# → Suggests: UI
# PipelineAsCode feature
/jira:create story "Support GitLab merge request triggers in PipelineAsCode"
# → Suggests: Pipeline as Code
# Multi-component epic
/jira:create epic "Enhanced supply chain security and provenance"
# → Suggests: Tekton Chains
# Results improvement
/jira:create epic "Scalable results storage and querying"
# → Suggests: Tekton Results
# Documentation task
/jira:create task "Update Operator installation guide for OpenShift 4.16"
# → Suggests: Operator
# Cleanup/maintenance
/jira:create task "Configure pruner retention policy for production"
# → Suggests: Pruner
--parent to maintain issue hierarchyQ: Should this be a Bug or Task?
Q: Should this be a Story or Task?
Q: Should this be an Epic or Feature?
"MCP server not found" or "User rejected MCP"
If the MCP Jira server is not working, use the CLI fallback (see Authentication section above):
Authenticate with Jira CLI:
acli jira auth login \
--site "https://issues.redhat.com" \
--email "YOUR_REDHAT_ID@redhat.com" \
--token < ~/.jira.d/token
Verify authentication:
acli jira me
# Expected: ✓ Authentication successful
Retry issue creation: The skill will automatically use CLI commands instead of MCP.
CLI Setup Issues:
Error: acli: command not found
Error: Authentication failed
~/.jira.d/tokenError: Site not found
https://issues.redhat.com"Permission denied"
"Field required" errors