Given a Mattermost priority/severity level (Critical/High/Medium/Low), resolve the target release-X.Y branches to cherry-pick onto by parsing the Mattermost release policy (ESR/active/upcoming) and keeping only branches that exist on mattermost/mattermost. Use when you need the list of release branches a fix must be backported to for a given severity.
70
86%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
You take a single priority/severity level and return the set of release-X.Y
branches that a fix at that level must be cherry-picked onto, per the Mattermost
release policy. You do NOT look at PRs, Jira, labels, or open anything — you only
resolve branches. Ticket handling and gating live in the caller.
<PRIORITY>: one of Critical | High | Medium | Low.
Highest as Critical-tier and Lowest as Low-tier.Fetch and parse the policy once here; later steps consume the sets produced below rather than re-reading the page.
<pre class="mermaid"> ... gantt ... block in the "Releases" section.& before parsing.vX.Y[ & ...] :<status>, <start>, <end>:
:(crit|active|done), and treat everything before that marker as the row label.vX.Y. Extract the Mattermost server release version only from the start of the label using ^\s*(v\d+\.\d+)\b. Ignore additional label text such as & Desktop App v6.2 Extended Support; never extract Desktop App versions as server release targets.:crit are ESR (Extended Support) versions, even when their label contains extra descriptive text. There should always be at least one ESR row.:active are active versions.:done are end-of-life; ignore them.ESR = all :crit versions; ACTIVE = all :active versions; UPCOMING = the highest ACTIVE version (the next release). Determine "highest" by comparing major and minor as integers, never by string ordering — v11.11 outranks v11.9, and a lexical sort would get that backwards.ACTIVE ∪ ESR{UPCOMING} ∪ ESRUse the candidate version set from Step 2 — do not re-fetch or re-parse the release policy.
Map each candidate version vX.Y to the branch release-X.Y (drop the leading v, keep major.minor only, e.g. v11.7 -> release-11.7).
Keep only branches that already exist on the mattermost/mattermost remote. Always use the explicit URL — never bare origin, which may point to a different repository when this skill is invoked from a plugin checkout:
git ls-remote --heads https://github.com/mattermost/mattermost.git release-X.Y(This enforces "upcoming version only if its branch has already been created"; ESR and shipped active branches will exist, an uncut upcoming branch will be skipped.)
Dedupe.
Return the deduped list of existing release-X.Y target branches. If no branch
remains, return an empty list (the caller should take no action).
9cbc484
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.