From product-forge
Provides reasoning guidance for Jira sync operations. Field mapping, conflict resolution strategies, and MCP error handling patterns. All file operations delegated to forge-lib.
How this skill is triggered — by the user, by Claude, or both
Slash command
/product-forge:jira-syncThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
This skill provides reasoning guidance for bidirectional synchronization between Product Forge cards and Jira via the Atlassian MCP server. All file operations are handled by forge-lib.
This skill provides reasoning guidance for bidirectional synchronization between Product Forge cards and Jira via the Atlassian MCP server. All file operations are handled by forge-lib.
| Forge Field | Jira Field | Notes |
|---|---|---|
title | summary | Truncate to 255 chars if needed |
| Body content | description | Convert markdown to Jira wiki markup or plain text |
type | issuetype | Initiative → Initiative, Epic → Epic, Story → Story |
parent (reference) | parent link | Resolve parent's jira_card before creating child |
Not synced to Jira: status, product, module, client, team, confidence (local-only fields)
| Jira Field | Forge Field | Notes |
|---|---|---|
summary | title | Direct mapping |
description | Body content | Convert from Jira wiki markup to markdown |
key | jira_card | Store for bidirectional reference |
self | jira_url | Full URL for easy access |
status.name | jira_status | Read-only reference field (never pushed back) |
timeestimate | estimate_hours | Convert seconds to hours (÷ 3600) |
Not imported from Jira: Labels, custom fields, comments, attachments, workflow transitions
Conflicts occur when both title OR description change in both systems since last sync.
status and Jira status are independent (no conflict)jira_status field is a read-only reference to Jira's current statusstatusWhen presenting conflicts to the user:
## Sync Conflict Detected
Both the local card and Jira issue have been modified since the last sync.
### Title
**Local (Forge):** [local title]
**Remote (Jira):** [jira title]
### Description
**Local (Forge):**
[local body]
**Remote (Jira):**
[jira body]
### Status
**Local status:** [forge status]
**Jira status:** [jira status]
*Note: Local and Jira statuses are independent and do not conflict.*
### Resolution Options
1. **Keep Forge** - Overwrite Jira with local changes
2. **Accept Jira** - Overwrite local card with Jira changes
3. **Manual Merge** - Resolve conflicts manually then sync
Before creating a child issue in Jira:
parent field)jira_card fieldparent parameter in jira_create_issueSignature: Tool not found, connection refused, timeout Message: "Atlassian MCP server is not available. Check that the server is running and configured."
Signature: 401 Unauthorized Message: "Jira authentication failed. Check your credentials in the MCP server config."
Signature: 404 Not Found Message: "Issue {key} not found in Jira. It may have been deleted."
Signature: 403 Forbidden Message: "Insufficient permissions for this operation in Jira."
Signature: 400 Bad Request (workflow transition) Message: "Cannot move issue to this status. The transition is not valid in the Jira workflow."
Pattern: PROJECT-123 (uppercase letters, hyphen, numbers)
Regex: /^[A-Z][A-Z0-9]+-\d+$/
Only sync these card types: Initiative, Epic, Story
type (Initiative, Epic, or Story)title (must be present)jira_cardWhen syncing multiple cards:
last_synced timestamp on successful sync for conflict detectionKey rule: Local status and Jira status are independent workflows.
status: Forge-specific workflow (Draft, Ready, In Progress, Done)jira_status field: Read-only reference to Jira's current statusNever:
Always:
jira_status field on every syncstatus field independentlyAll Jira sync operations are performed via MCP tools, not forge-lib. However, forge-lib handles card reading/writing:
# Read card frontmatter
forge card get story story-001-user-auth
# Update card with Jira fields after sync
forge card update story story-001-user-auth --data '{"jira_card":"PROJ-123","last_synced":"2024-01-15T10:30:00Z"}'
MCP operations (jira_create_issue, jira_update_issue, jira_get_issue) are called directly from commands, following the patterns defined in this skill.
npx claudepluginhub jeremybrice/the-forge --plugin product-forgeJIRA automation hub routing to 13 specialized skills for any JIRA task: issues, workflows, agile, search, time tracking, service management, and more.
Manages Jira Cloud issues via jira CLI with JSON output: create, view, update, search issues, fetch hierarchies, manage sprints.
Guides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.