Skip to content

infra[skiplog]: document release & backmerge PR conventions in sdk-pr-create skill#1858

Closed
simon-iribarren wants to merge 2 commits into
tetherto:mainfrom
simon-iribarren:infra/sdk-pr-create-skill-release-backmerge
Closed

infra[skiplog]: document release & backmerge PR conventions in sdk-pr-create skill#1858
simon-iribarren wants to merge 2 commits into
tetherto:mainfrom
simon-iribarren:infra/sdk-pr-create-skill-release-backmerge

Conversation

@simon-iribarren

@simon-iribarren simon-iribarren commented May 1, 2026

Copy link
Copy Markdown
Contributor

Note: be concise and prefer bullet points.

🎯 What problem does this PR solve?

  • The sdk-pr-create skill told us how to write normal PR titles (TICKET prefix[tags]: subject) but said nothing about the two other PR shapes that show up in the SDK release flow: release PRs (fork → release-<pkg>-<ver>) and backmerge PRs (release-<pkg>-<ver>main).
  • The skill also did not explicitly require the standard sdk-pod template headings for those release-flow PRs, which led to PRs being opened with custom headings like ## Summary / ## Changes / ## Test plan (e.g. PR QVAC-18184 chore[skiplog]: backmerge release sdk 0.9.2 #1857 in its first revision).
  • Concrete consequences:
    • Backmerge titles get mis-tagged. PR QVAC-18184 chore[skiplog]: backmerge release sdk 0.9.2 #1857 was opened as QVAC-18184 chore[notask|skiplog]: backmerge release sdk 0.9.2 even though it has a ticket — [notask] is reserved for omitting the ticket. Right title: QVAC-18184 chore[skiplog]: backmerge release sdk 0.9.2.
    • Release-flow PR bodies drift away from the standard headings (🎯 / 📝 / 🧪), breaking reviewer expectations and any tooling that scans for them.

📝 How does it solve it?

  • Adds a new "Release & Backmerge PRs" section to .cursor/skills/sdk-pr-create/SKILL.md covering:
    • Title format for each shape, with and without a ticket
    • Tag rules: [skiplog] required for backmerge, [notask] only when no ticket, [notask|skiplog] is a legit combination of the two metadata tags (distinct from the rule that content tags [api]/[bc]/[mod] cannot be combined)
    • Body always uses the standard sdk-pod headings — explicit callout listing the headings and forbidding custom alternatives like ## Summary / ## Changes / ## Test plan
    • Mapping release/backmerge content onto the template — shows how to fit each PR shape's content into the standard sections (e.g. for a hand-crafted backmerge, the dependency-divergence justification table goes in ## 🧪 How was it tested?)
    • Decision-rule table mapping PR shape → base → title format → body, making it explicit that all three shapes use the same template
  • Updates the workflow steps so step 1 explicitly asks the agent to identify which of the three PR shapes it's opening before generating a title
  • Tightens the quality checklist to catch the three most common mistakes today: ticket + [notask] together, missing [skiplog] on backmerge, and custom headings in the body

🧪 How was it tested?

…-create skill

The sdk-pr-create skill covered normal feature/fix PRs but said nothing
about the two other PR shapes that show up in the SDK release flow:

- Release PRs (fork -> release-<pkg>-<ver>) — version bump + per-version
  changelog folder + aggregated CHANGELOG.md prepend. Merging triggers
  GPR publish.
- Backmerge PRs (release-<pkg>-<ver> -> main) — bring the release
  artifacts back into main after publish, usually hand-crafted (not a
  git merge) so main's deps don't get regressed.

Both shapes have established title conventions in this repo (precedent:
tetherto#1726, tetherto#1645, tetherto#1552, tetherto#1301, tetherto#1781, tetherto#1782, tetherto#1857) but the rules and
skill never spelled them out, leading to mis-tagged titles like
"chore[notask|skiplog]: backmerge ..." with a ticket present
(notask is for omitting the ticket, not a generic backmerge marker).

Adds an explicit "Release & Backmerge PRs" section to the skill with:
- Title format for each shape, with and without a ticket
- Tag rules ([skiplog] required for backmerge, [notask] only when no ticket,
  [notask|skiplog] is a legitimate combination of the two metadata tags)
- Body content guidance (link to release PR, explain hand-crafted merges,
  reference precedent backmerge for previous version)
- A decision-rule table mapping PR shape -> base -> title format

Also tightens the quality checklist to catch the two most common
mistakes: ticket + [notask] in the same title, and missing [skiplog]
on a backmerge.

Workspace consumers (tether) already symlink this file from
.cursor/skills/sdk-pr-create/SKILL.md, so the change reaches them as
soon as it lands on main.
@simon-iribarren simon-iribarren requested a review from a team as a code owner May 1, 2026 10:57
@simon-iribarren simon-iribarren requested a review from a team as a code owner May 1, 2026 10:57
…erge PR bodies

Follow-up to the earlier commit on this branch that added release &
backmerge title conventions. Reviewer noted that the body of release /
backmerge PRs should also use the standard sdk-pod template headings
(🎯 What problem / 📝 How does it solve / 🧪 How was it tested) — not
custom shapes like ## Summary / ## Changes / ## Test plan that I had
been writing.

Adds three things to the skill:

- An explicit "Body always uses the same headings" callout in the
  Release & Backmerge PRs section, listing the standard headings and
  flagging custom alternatives as wrong.
- A "Mapping release/backmerge content onto the template" subsection
  that shows how to fit each PR shape's content into the standard
  sections (e.g. for a backmerge: justify a hand-crafted merge in
  ## 🧪 How was it tested?, including the dependency-divergence table).
- A new quality-checklist line forbidding custom headings.

Also updates the decision-rule table to add a "Body" column making it
explicit that all three PR shapes use the same template.
@simon-iribarren simon-iribarren deleted the infra/sdk-pr-create-skill-release-backmerge branch May 1, 2026 13:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant