name: jira-git-workflow description: JIRA ticket creation and branching, extending ticket-branch-workflow and jira-git-integration license: Apache-2.0 compatibility: opencode metadata: audience: developers workflow: jira-git
What I do
I implement the standard JIRA-to-Git workflow by combining jira-git-integration, ticket-branch-workflow, and git framework skills:
- Identify JIRA Project: Use
jira-git-integrationto find project and cloud ID - Create JIRA Ticket: Use
jira-git-integrationto create task/issue with summary and description - Add Comments (Optional): Use
jira-git-integrationto add clarifying comments if needed - Create Git Branch: Create branch named after JIRA ticket (format:
PROJECT-NUM) - Commit PLAN.md: Use
ticket-branch-workflowto create PLAN.md, commit with semantic formatting, and push - Update JIRA Ticket: Use
git-issue-updaterto add progress comment with commit details
When to use me
Framework: This skill combines two frameworks:
jira-git-integration- Handles JIRA-specific operations (project discovery, ticket creation, comments)ticket-branch-workflow- Handles core workflow (branch creation, PLAN.md, commit, push)
Use this workflow when:
- Starting a new development task tracked in JIRA
- You need a systematic approach: JIRA ticket → branch → PLAN.md
- Following the standard practice of planning before coding
Prerequisites
- Active Atlassian/JIRA account with appropriate permissions
- Git repository initialized
- Write access to the repository
Steps
Step 1: Identify JIRA Project
- Use
jira-git-integrationproject discovery:- Use
atlassian_getVisibleJiraProjectsto list available projects - Identify the project key for your work (e.g., IBIS, DA, etc.)
- Get the cloud ID using
atlassian_getAccessibleAtlassianResources
- Use
Step 2: Create JIRA Ticket
- Use
jira-git-integrationticket creation:- Use
atlassian_createJiraIssuewith:cloudId: The Atlassian cloud IDprojectKey: The project key (e.g., IBIS)issueTypeName: Typically "Task" or "Story"summary: Concise title for the workdescription: Detailed description with:- Overview
- Scope/files affected
- Requirements
- Rationale
assignee_account_id: Your account ID (optional, useatlassian_atlassianUserInfoto get it)
- Store the ticket key (e.g., IBIS-101)
- Use
Step 3: Add Comments (Optional)
- If clarification is needed, use
jira-git-integrationcomment features:- Use
atlassian_addCommentToJiraIssuewith:cloudId: The cloud IDissueIdOrKey: The ticket key (e.g., IBIS-101)commentBody: The comment in Markdown format
- Use
Step 4: Create Git Branch
- Create branch named after JIRA ticket:
git checkout -b <TICKET-KEY> - Example:
git checkout -b IBIS-101
Step 5: Execute Ticket-Branch-Workflow
- Use
ticket-branch-workflowto:- Create PLAN.md with JIRA ticket reference
- Use git-semantic-commits for commit formatting:
- Commit PLAN.md with semantic format:
git commit -m "feat: add PLAN.md for <TICKET-KEY>" - Or with scope:
git commit -m "docs(PLAN): add planning document for <TICKET-KEY>"
- Commit PLAN.md with semantic format:
- Push branch to remote:
git push -u origin <TICKET-KEY>
Step 6: Update JIRA Ticket with Initial Commit
- Use git-issue-updater to add progress comment to JIRA ticket:
- Extract commit details: hash, message, author, date, time, files changed
- Use
atlassian_addCommentToJiraIssuewith:cloudId: The cloud IDissueIdOrKey: The ticket key (e.g., IBIS-101)commentBody: Formatted comment with:- User who made the commit
- Date and time of commit
- Commit hash (with link if available)
- Commit message
- Files changed (from git diff --stat)
- Statistics summary
- Example comment format:
**Initial commit created** - **User**: [author name] - **Date**: [ISO 8601 date] - **Time**: [ISO 8601 time] - **Commit**: [commit hash] - **Message**: [commit message] - **Files changed**: [number] - **Insertions**: [number] - **Deletions**: [number]
Example PLAN.md Structure
The framework generates PLAN.md with JIRA reference:
# Plan: <Ticket Summary>
## Overview
Brief description of what this ticket implements.
## Ticket Reference
- Ticket: <TICKET-KEY>
- URL: <ticket-url>
## Files to Modify
1. `src/path/to/file1.ts` - Description
2. `src/path/to/file2.tsx` - Description
## Approach
Detailed steps or methodology for implementation.
## Success Criteria
- All files modified correctly
- No build errors
- Tests pass
Best Practices
- Use
jira-git-integrationfor all JIRA operations (project discovery, ticket creation, comments) - Use
ticket-branch-workflowfor branch, PLAN.md, commit, and push operations - Use
git-semantic-commitsfor all commit formatting to ensure consistent semantic versioning - Use
git-issue-updaterafter all commits to add progress comments to JIRA tickets - Keep the plan specific and actionable
- Use the JIRA ticket key as the branch name for traceability
- Include a clear rationale in both the JIRA ticket and PLAN.md
- Commit the PLAN.md as the first commit on the new branch
- Always update JIRA ticket with commit details after each significant commit
- Use semantic commit types: feat, fix, docs, style, refactor, test, chore, perf, ci, build, revert
- Use scopes to identify affected components (e.g., docs(PLAN):, feat(api):, fix(ui):)
Common Issues
Permission denied on JIRA
Issue: Cannot create JIRA ticket
Solution: Ensure your account has create permissions for the project (handled by jira-git-integration)
Branch already exists
Issue: Branch checkout fails due to existing branch
Solution: The framework handles this with -B flag to force branch creation
Missing cloud ID
Issue: Cannot create JIRA ticket without cloud ID
Solution: jira-git-integration provides tools to find your cloud ID: atlassian_getAccessibleAtlassianResources
Assignee error
Issue: Cannot assign ticket to yourself
Solution: Use atlassian_atlassianUserInfo to get your account ID (part of jira-git-integration)
Troubleshooting Checklist
Before starting:
- Atlassian/JIRA account has project access
- Git repository is initialized:
git status - Current branch is clean (no uncommitted changes)
- Remote repository is set up:
git remote -v
After ticket creation:
- Ticket key is captured (e.g., IBIS-101)
- Ticket URL is accessible
- Ticket is assigned (if needed)
After framework execution:
- Branch is created and checked out successfully
- PLAN.md is created with ticket reference
- PLAN.md is committed with semantic message format
- Branch is pushed to remote successfully
- JIRA ticket is updated with initial commit details
- JIRA ticket comment includes user, date, time, commit hash, message, and file changes
Related Skills
- JIRA Integration:
jira-git-integration- Provides JIRA-specific operations (project discovery, ticket creation, comments)jira-status-updater- Provides automated JIRA ticket status transitions after PR merge
- Core Workflow Framework:
ticket-branch-workflow- Provides core workflow (branch creation, PLAN.md, commit, push)
- Git Frameworks:
git-semantic-commits- Provides semantic commit message formatting following Conventional Commits specgit-issue-updater- Provides consistent issue/ticket update functionality for GitHub and JIRAgit-issue-labeler- Provides intelligent label detection for GitHub issues
- Next.js Specific:
nextjs-pr-workflow- For creating PRs after completing the ticket
- GitHub Integration:
git-issue-creator- For GitHub-integrated workflows (uses same ticket-branch-workflow framework)
Complete JIRA-to-Git Workflow with Status Updates
The complete workflow ensures JIRA tickets are properly closed after PR merges:
-
Create JIRA Ticket (via
jira-git-integration)- Use
atlassian_createJiraIssueto create ticket - Status: "To Do" or "Backlog"
- Use
-
Create Git Branch (via
ticket-branch-workflow)- Create branch named after ticket key (e.g.,
IBIS-101) - Status: "To Do"
- Create branch named after ticket key (e.g.,
-
Commit PLAN.md (via
ticket-branch-workflow)- Commit planning document
- Add progress comment to JIRA (via
git-issue-updater) - Status: "In Progress"
-
Implement Work
- Make commits and add progress comments
- Status: "In Progress"
-
Create Pull Request (via
pr-creation-workfloworgit-pr-creator)- Create PR with JIRA ticket reference
- Add PR comment to JIRA (via
git-issue-updater) - Status: "In Progress" or "In Review"
-
Merge Pull Request
- PR successfully merged
- Update JIRA ticket status to "Done" (via
jira-status-updater) ⭐ NEW - Add final merge comment to JIRA
- Status: "Done" ✅
Result: Complete automation from ticket creation to closure without manual intervention.