Skip to content

Commit fdcc396

Browse files
committed
fix(skill): Detect stacked PR context from branch
Update the create-java-pr skill to infer standalone vs stacked PR mode\nfrom git branch and existing PR relationships.\n\nWhen running on main/master, default to standalone PR mode and only\nenter stack mode when explicitly requested by the user.\n\nCo-Authored-By: Claude <noreply@anthropic.com>
1 parent e2dce0b commit fdcc396

File tree

1 file changed

+33
-6
lines changed

1 file changed

+33
-6
lines changed

.claude/skills/create-java-pr/SKILL.md

Lines changed: 33 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,42 @@ Prepare local changes and create a pull request for the sentry-java repo.
99

1010
**Required reading:** Before proceeding, read `.cursor/rules/pr.mdc` for the full PR and stacked PR workflow details. That file is the source of truth for PR conventions, stack comment format, branch naming, and merge strategy.
1111

12-
## Step 0: Determine PR Type
12+
## Step 0: Determine PR Type From Git Branch Context
1313

14-
Ask the user (or infer from context) whether this is:
14+
Infer PR type from the current branch before asking the user.
1515

16-
- **Standalone PR** — a regular PR targeting `main`. Follow Steps 1–6 as written.
17-
- **First PR of a new stack** — ask for a topic name (e.g. "Global Attributes"). Create a collection branch from `main`, then branch the first PR off it. The first PR targets the collection branch.
18-
- **Next PR in an existing stack** — identify the previous stack branch and topic. This PR targets the previous stack branch.
16+
1. Get current branch:
1917

20-
If the user mentions "stack", "stacked PR", or provides a topic name with a number (e.g. `[Topic 2]`), treat it as a stacked PR. See `.cursor/rules/pr.mdc` § "Stacked PRs" for full details.
18+
```bash
19+
git branch --show-current
20+
```
21+
22+
2. Apply these rules:
23+
24+
- **If branch is `main` or `master`**: default to a **standalone PR**.
25+
- Do **not** assume stack mode from `main`.
26+
- Only use stack mode if the user explicitly asks for a stacked PR.
27+
- **If branch is not `main`/`master`**:
28+
- Check whether that branch already has a PR and what its base is:
29+
```bash
30+
gh pr list --head "$(git branch --show-current)" --json number,baseRefName,title --jq '.[0]'
31+
```
32+
- If that branch PR exists and `baseRefName` is **not** `main`/`master`, treat the work as a **stacked PR context**.
33+
- If that branch PR exists and `baseRefName` **is** `main`/`master`, treat it as **standalone PR context**.
34+
- If no PR exists for the current branch, check whether other PRs target it:
35+
```bash
36+
gh pr list --base "$(git branch --show-current)" --json number,headRefName,title
37+
```
38+
If there are downstream PRs, treat this as a stack base context.
39+
40+
3. If signals are mixed or ambiguous, ask one focused question to confirm.
41+
42+
PR types:
43+
- **Standalone PR** — regular PR targeting `main`.
44+
- **First PR of a new stack** — create collection branch from `main`, then first PR off it.
45+
- **Next PR in an existing stack** — target previous stack branch.
46+
47+
If the user explicitly says "stack", "stacked PR", or provides numbered stack titles (e.g. `[Topic 2]`), honor that even if branch heuristics are inconclusive.
2148

2249
## Step 1: Ensure Feature Branch
2350

0 commit comments

Comments
 (0)