SW: Process FEED → UX Tickets
Overview
- Determine the target ticket set (see Step 1)
- Split into UI-only vs UI + other components
- For UI-only tickets: clone into UX project, link back, transition FEED ticket
- Return a full summary
Step 1 — Fetch Tickets
If the user provided specific ticket keys (e.g. /sw-process-feed-tickets FEED-1234 FEED-5678)
Fetch those tickets directly by key. Do not apply any JQL filter — process them regardless of status or assignee.
Fields to fetch: summary, issuetype, components, attachment, comment, description, customfield_10049, customfield_10447
If no ticket keys were provided
JQL:
project = FEED AND assignee = currentUser() AND status = "In Triage" AND component = "UI"
Fields to fetch: summary, issuetype, components, attachment, comment, description, customfield_10049, customfield_10447
After fetching, split the results:
- UI-only:
componentsarray has exactly one entry (UI) - Mixed:
componentshasUIplus at least one other component — these go in the manual-review list, skip cloning
Step 2 — Priority Mapping
Use the highest-matching rule (rules are ordered by precedence):
| Rule | FEED Condition | UX Priority |
|---|---|---|
| 1 | Severity = Sev-1 or User Priority = Critical | Urgent |
| 2 | Severity = Sev-2 or User Priority = High | High |
| 3 | Severity = Sev-3 and User Priority = Medium or higher | Medium |
| 4 | Severity = Sev-3 and (User Priority = Low, None, or TBD) | Low |
UX priority hierarchy (highest → lowest): Fire > Urgent > High > Medium > Low
Custom field IDs:
- Severity:
customfield_10049(values:Sev-1,Sev-2,Sev-3) - User Priority:
customfield_10447(values:P1 - Critical,P2 - High,P3 - Medium,P4 - Low)
Step 3 — Clone into UX
For each UI-only ticket, create a new issue in the UX project:
Title: FEED - {original summary}
Issue type: Copy from the source FEED ticket (fallback: Bug)
Priority: Mapped UX priority from Step 2
Description: Copy the original description verbatim, then append:
---
**📎 Attachments from [FEED-XXXX](https://striveworks.atlassian.net/browse/FEED-XXXX)**
- [filename.ext](attachment_content_url)
- ...
If there are no attachments, omit the section entirely.
After creating the UX ticket, if the source FEED ticket had any comments, post a single proxy comment on the new UX ticket:
**💬 Comments from [FEED-XXXX](https://striveworks.atlassian.net/browse/FEED-XXXX)**
**{Author DisplayName}** — {date}:
{comment body}
---
**{Author DisplayName}** — {date}:
{comment body}
Note: @mentions in comment bodies are plain text (cross-project account IDs can't be resolved).
Link the UX ticket back to the FEED ticket using link type: relates to
Step 4 — Transition FEED Tickets
After a UX clone is created and linked, transition the source FEED ticket:
| UX Priority | FEED Transition |
|---|---|
| Fire, High, or Medium | → Selected for Development |
| Low | → Backlog |
Use the Jira transition API. Fetch available transitions for the issue if the transition ID is unknown.
Step 5 — Return Summary
After processing all tickets, output a summary in this format:
## FEED → UX Processing Summary
### ✅ Cloned & Linked ({count})
| FEED Ticket | UX Ticket | Priority | FEED Status |
|-------------|-----------|----------|-------------|
| FEED-XXXX | UX-YYY | High | Selected for Development |
...
### ⚠️ Needs Manual Review — Mixed Components ({count})
These tickets have the UI component alongside others and were skipped.
Verify whether they should be cloned to UX and/or another team's board.
| Ticket | Summary | Components |
|--------|---------|------------|
| FEED-XXXX | ... | UI, Sentinel |
...
Notes
- Always do a dry run first and show the summary before executing, unless the user explicitly says to skip it.
- The Atlassian MCP server must be authenticated before running (
plugin-atlassian-atlassian). - Attachment files cannot be copied cross-project via the API — use reference links in the description instead.
- Inline
blob:image URLs in descriptions will not render in UX; the attachment reference section is the reliable fallback.