brainstorming
Structured design dialogue that validates ideas before implementation begins.
jira-git-integration
Generic JIRA + Git workflow utilities for ticket management, branch creation, and integration
Full skill instructions
I provide JIRA + Git integration utilities that can be used across multiple workflows:
Use this framework when:
This is a framework skill - it provides JIRA utilities that other skills use.
Purpose: Retrieve cloud ID and list of accessible Atlassian resources
Tools Used: atlassian_getAccessibleAtlassianResources
# Get accessible resources (includes cloud IDs)
atlassian_getAccessibleAtlassianResources
Expected Output:
[
{
"id": "23594c42-08ff-4d2a-8065-6756e3590c37",
"url": "https://company.atlassian.net",
"name": "company",
"scopes": ["read:jira-work", "write:jira-work", "read:confluence", "write:confluence"]
}
]
Extract Cloud ID: Store the id field for use in subsequent JIRA operations
Purpose: Retrieve current user's account ID for ticket assignment
Tools Used: atlassian_atlassianUserInfo
# Get current user info
atlassian_atlassianUserInfo
Expected Output:
{
"account_id": "712020:1fe13d6b-e3ff-4455-9349-39a1f243e9bb",
"email": "[email protected]",
"name": "John Doe",
"account_status": "active"
}
Extract Account ID: Store the account_id field for assigning tickets
Purpose: List all JIRA projects the user has access to
Tools Used: atlassian_getVisibleJiraProjects
# Get visible projects
atlassian_getVisibleJiraProjects --cloudId <CLOUD_ID>
Expected Output:
{
"values": [
{
"key": "IBIS",
"name": "Project Name",
"id": "10205",
"issueTypes": [
{
"name": "Task",
"id": "10222"
},
{
"name": "Story",
"id": "10220"
},
{
"name": "Bug",
"id": "10223"
}
]
}
]
}
Extract Project Key: Store the key field (e.g., IBIS) for use in ticket creation
Purpose: Create a new ticket in specified JIRA project
Tools Used: atlassian_createJiraIssue
# Create new ticket
atlassian_createJiraIssue \
--cloudId <CLOUD_ID> \
--projectKey <PROJECT_KEY> \
--issueTypeName <ISSUE_TYPE> \
--summary "<Ticket Title>" \
--description "<Ticket Description>" \
--assignee_account_id <USER_ACCOUNT_ID>
Parameters:
cloudId: Atlassian cloud ID (from Step 1)projectKey: JIRA project key (e.g., IBIS)issueTypeName: Issue type name (e.g., Task, Story, Bug)summary: Short title for the ticketdescription: Detailed description in Markdown formatassignee_account_id: User's account ID (from Step 2, optional)Description Template:
## Description
<Detailed description of the work>
## Type
<Task | Story | Bug>
## Context
<Additional background information>
## Acceptance Criteria
- [ ] Criteria 1
- [ ] Criteria 2
- [ ] Criteria 3
## Files to Modify
1. `path/to/file1.ts` - Description
2. `path/to/file2.tsx` - Description
## Notes
<Additional notes or constraints>
Expected Output:
{
"id": "12345",
"key": "IBIS-101",
"self": "https://api.atlassian.com/ex/jira/.../issue/12345"
}
Extract Ticket Key: Store the key field (e.g., IBIS-101) for reference
Purpose: Add a comment to an existing JIRA ticket
Tools Used: atlassian_addCommentToJiraIssue
# Add comment
atlassian_addCommentToJiraIssue \
--cloudId <CLOUD_ID> \
--issueIdOrKey <TICKET_KEY> \
--commentBody "<Comment Content>"
Parameters:
cloudId: Atlassian cloud IDissueIdOrKey: Ticket key (e.g., IBIS-101)commentBody: Comment content in Markdown formatComment Templates:
PR Reference Comment:
## Pull Request Created
**PR**: #<PR_NUMBER> - <PR_TITLE>
**URL**: <PR_URL>
**Branch**: <branch-name>
### Changes Summary
<Brief description of changes>
### Files Modified
<list of key files changed>
### Quality Checks
- Linting: ✅ Passed
- Build: ✅ Passed
- Tests: ✅ Passed
### Review Request
@reviewer1 @reviewer2
Implementation Update Comment:
## Implementation Started
Branch: <branch-name>
Status: In Progress
### Next Steps
1. <Step 1>
2. <Step 2>
3. <Step 3>
Image-Embedded Comment:
## Diagrams/Visuals
### Workflow Diagram

### Architecture

Purpose: Upload a local image file as a JIRA attachment
Tools Used: atlassian_addAttachmentToJiraIssue
# Upload image
atlassian_addAttachmentToJiraIssue \
--cloudId <CLOUD_ID> \
--issueIdOrKey <TICKET_KEY> \
--attachment <IMAGE_FILE_PATH>
Parameters:
cloudId: Atlassian cloud IDissueIdOrKey: Ticket key (e.g., IBIS-101)attachment: Path to local image file (e.g., /tmp/workflow.png)Expected Output:
{
"id": "10001",
"filename": "workflow.png",
"content": "image/png",
"size": 12345,
"self": "https://api.atlassian.com/ex/jira/.../attachment/10001"
"thumbnail": "https://company.atlassian.net/secure/thumbnail/12345/workflow.png"
}
Extract Attachment URL: The self field provides the URL for embedding in comments
Attachment URL Format:
https://company.atlassian.net/secure/attachment/<ATTACHMENT_ID>/<FILENAME>
Usage in Comments:

Purpose: Create a consistent branch name from a JIRA ticket key
Branch Naming Conventions:
| Format | Example | Use Case |
|---|---|---|
PROJECT-NUM | IBIS-101 | Simple, direct reference |
feature/PROJECT-NUM | feature/IBIS-101 | Feature branch pattern |
feature/PROJECT-NUM-description | feature/IBIS-101-add-login | Descriptive feature branch |
bugfix/PROJECT-NUM | bugfix/IBIS-102 | Bug fix branch |
hotfix/PROJECT-NUM | hotfix/IBIS-103 | Hotfix branch |
Implementation:
# Generate branch name from ticket key
TICKET_KEY="IBIS-101"
# Simple format
BRANCH_NAME="${TICKET_KEY}" # IBIS-101
# Feature format
BRANCH_NAME="feature/${TICKET_KEY}" # feature/IBIS-101
# Descriptive feature format
BRANCH_NAME="feature/${TICKET_KEY}-add-dark-mode" # feature/IBIS-101-add-dark-mode
# Create and checkout branch
git checkout -b "${BRANCH_NAME}"
Branch Naming Best Practices:
Purpose: Retrieve detailed information about a JIRA ticket
Tools Used: atlassian_getJiraIssue
# Get issue details
atlassian_getJiraIssue \
--cloudId <CLOUD_ID> \
--issueIdOrKey <TICKET_KEY>
Parameters:
cloudId: Atlassian cloud IDissueIdOrKey: Ticket key (e.g., IBIS-101)Expected Output:
{
"key": "IBIS-101",
"fields": {
"summary": "Implement new feature",
"status": {
"name": "In Progress"
},
"assignee": {
"accountId": "712020:1fe13d6b-e3ff-4455-9349-39a1f243e9bb",
"displayName": "John Doe"
},
"description": {
"type": "doc",
"content": [
{
"type": "paragraph",
"content": [
{
"text": "Detailed description..."
}
]
}
]
}
}
}
}
Extract Information:
Search for images in these locations:
# Common image locations
./diagrams/**/*.png
./diagrams/**/*.svg
# Recent images in tmp
/tmp/*.png
/tmp/*.jpg
# Documentation images
./docs/images/**/*.png
./assets/images/**/*.png
# Workflow-related (by filename pattern)
**/*workflow*.png
**/*diagram*.png
**/*flow*.png
**/*architecture*.png
**/*sequence*.png
# Determine if image needs upload
if [[ "$image_path" =~ ^https?:// ]]; then
# It's a URL - check if accessible
if curl -s -o /dev/null -w "%{http_code}" "$image_path" | grep -q "200"; then
TYPE="accessible_url"
else
TYPE="inaccessible_url"
fi
else
# It's a file path
if [[ -f "$image_path" ]]; then
TYPE="local_file"
else
TYPE="not_found"
fi
fi
| Type | Action |
|---|---|
| accessible_url | Embed directly in JIRA comment |
| inaccessible_url | Download and upload as JIRA attachment |
| local_file | Upload as JIRA attachment |
| not_found | Warn user and skip |
Purpose: Update JIRA ticket status after PR merge
Tools Used: atlassian_getTransitionsForJiraIssue, atlassian_transitionJiraIssue
Usage:
# Get available transitions
TRANSITIONS=$(atlassian_getTransitionsForJiraIssue \
--cloudId <CLOUD_ID> \
--issueIdOrKey <TICKET_KEY>)
# Find "Done" or "Closed" transition
TARGET_TRANSITION_ID=$(echo "$TRANSITIONS" | jq -r '.transitions[] | select(.to.name == "Done" or .to.name == "Closed") | .id' | head -1)
# Execute transition
atlassian_transitionJiraIssue \
--cloudId <CLOUD_ID> \
--issueIdOrKey <TICKET_KEY> \
--transition '{"id": "<TRANSITION_ID>"}')
When to Use:
Integration:
jira-status-updater skill for complete automationpr-creation-workflow for integrated PR + status updatesgit-pr-creator for optional status updates after manual mergeIBIS) consistentlyIBIS-101) for traceabilityIssue: Cannot determine Atlassian cloud ID
Solution:
# Use getAccessibleAtlassianResources to find cloud ID
atlassian_getAccessibleAtlassianResources
Issue: JIRA project key is invalid or inaccessible
Solution:
# List visible projects to find correct key
atlassian_getVisibleJiraProjects --cloudId <CLOUD_ID>
Issue: Ticket not assigned to current user
Solution:
# Get user account ID
atlassian_atlassianUserInfo
# Create ticket with assignee
atlassian_createJiraIssue --assignee_account_id <ACCOUNT_ID>
Issue: atlassian_addAttachmentToJiraIssue returns error
Solution:
Issue: Branch with same name already exists
Solution:
# Force create new branch
git checkout -B <branch-name>
# Or switch to existing branch
git checkout <existing-branch>
Before JIRA operations:
After ticket creation:
After comment/attachment operations:
# Get visible JIRA projects
atlassian_getVisibleJiraProjects --cloudId <CLOUD_ID>
# Get JIRA issue details
atlassian_getJiraIssue --cloudId <CLOUD_ID> --issueIdOrKey <TICKET_KEY>
# Add comment to JIRA issue
atlassian_addCommentToJiraIssue --cloudId <CLOUD_ID> --issueIdOrKey <TICKET_KEY> --commentBody "<markdown>"
# Upload attachment to JIRA
atlassian_addAttachmentToJiraIssue --cloudId <CLOUD_ID> --issueIdOrKey <TICKET_KEY> --attachment <file-path>
# Create JIRA ticket
atlassian_createJiraIssue --cloudId <CLOUD_ID> --projectKey <PROJECT_KEY> --issueTypeName "Task" --summary "Title" --description "<desc>"
# Get user info
atlassian_atlassianUserInfo
# Get accessible resources
atlassian_getAccessibleAtlassianResources
Skills that use this JIRA integration framework:
git-pr-creator: PR creation with JIRA comments and image uploadsjira-git-workflow: JIRA ticket creation and branch managementnextjs-pr-workflow: Next.js PR workflow with JIRA integrationjira-status-updater: Automated JIRA ticket status transitions after PR mergeAdditional related skills:
pr-creation-workflow: Generic PR creation workflowticket-branch-workflow: Ticket-to-branch-to-PLAN workflowStructured design dialogue that validates ideas before implementation begins.
Comprehensive design intelligence for web and mobile UI/UX across 10 technology stacks.
Comprehensive implementation plans for multi-step tasks, breaking down specs into bite-sized, testable steps.
Introduction to the obra skills system with mandatory skill invocation rules and best practices.
Execute a written implementation plan with critical review and task checkpoints.
Delegate independent tasks to specialized agents working concurrently with isolated context.
Isolated git worktrees with smart directory selection and safety verification.
Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.
Plan searchable and shareable content that drives traffic, builds authority, and generates leads.
README-first repository scanner that extracts commands and classifies reproduction candidates without executing them.
Brainstorm and prioritize marketing strategies tailored to your SaaS stage, budget, and goals.
Plan and optimize your website's page hierarchy, navigation, URL structure, and internal linking.
The world's fastest calendar for remote work
Capture, organize, and utilize your knowledge effortlessly.
Instant Summaries of Audio & Video Interviews with AnySummary
Transform PDFs into engaging mind maps.
Chat with any PDF instantly
Create an optimal daily plan using your voice
A productivity platform to centralize organizational knowledge and workflows with contextual AI assistance.
AskYourPDF Pricing Plans: Tailored to Your Needs