docs(memory): record WSP Jira transition field + ADF quirks
CI / flake (push) Skipped
CI / flake (pull_request) Successful in 1m6s
CI / flake (push) Skipped
CI / flake (pull_request) Successful in 1m6s
Add to jira-tooling memory: - per-issue-type transition required fields (Story Cancelled needs Resolution + Justification; Epic Cancelled needs neither) - cancel/won't-do resolution IDs (Won't Fix 10068, Canceled 10070, Obsolete 10073) - customfield_10070 (Justification) requires ADF, not a plain string, despite its textarea schema Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
432a00fb35
commit
86ef677f2f
@@ -9,6 +9,10 @@ metadata:
|
|||||||
|
|
||||||
**Transitions:** `transitionJiraIssue` may fail if the issue lacks an assignee. Set assignee first via `editJiraIssue` when a transition errors on assignee requirement.
|
**Transitions:** `transitionJiraIssue` may fail if the issue lacks an assignee. Set assignee first via `editJiraIssue` when a transition errors on assignee requirement.
|
||||||
|
|
||||||
|
**Transition required fields (WSP):** the same target status can enforce different required fields per issue type — e.g. `Cancelled` on a Story requires `Resolution` + `Justification`, but on an Epic requires neither (so an Epic can land in Cancelled while still reading Unresolved). Fetch requirements with `getTransitionsForJiraIssue` + `expand=transitions.fields` before transitioning. Cancel/won't-do resolution values: `Won't Fix` (10068), `Canceled` (10070), `Obsolete` (10073 — use for superseded-by-another-ticket).
|
||||||
|
|
||||||
|
**ADF-only custom fields:** the WSP `Justification` field (`customfield_10070`) advertises schema `textarea` (string) but the API rejects a plain string — it requires an Atlassian Document Format object (`{type:"doc",version:1,content:[...]}`). If a transition/edit errors with "Operation value must be an Atlassian Document", wrap the text in ADF.
|
||||||
|
|
||||||
**Issue link direction:** For `createIssueLink`, "X is blocked by Y" means `inwardIssue=Y` (the blocker), `outwardIssue=X` (the blocked), `type.name="Blocks"`. Inward = the side the link points _from_; outward = the side it points _to_.
|
**Issue link direction:** For `createIssueLink`, "X is blocked by Y" means `inwardIssue=Y` (the blocker), `outwardIssue=X` (the blocked), `type.name="Blocks"`. Inward = the side the link points _from_; outward = the side it points _to_.
|
||||||
|
|
||||||
**WSP project transition IDs:**
|
**WSP project transition IDs:**
|
||||||
|
|||||||
Reference in New Issue
Block a user