gh-pr · git:20260810.c46c0a3 · 2026-08-10 · sha256 c852c1f4d0c156ce

gh-pr git:20260810.c46c0a3A

Immutable. This exact content never changes and is served at /api/v1/blob/c852c1f4d0c156ce.

---
name: gh-pr
description: Writes clear pull request descriptions from the current branch diff against a base branch. Defaults to `main`, but supports `dev` or any other user-specified comparison branch. Use when the user asks for a PR description, pull request summary, or a markdown write-up for changes against a base branch.
---

# GH PR

## Purpose

Create a clear, logical pull request description for the current branch diff
against a base branch. A good PR body explains the problem, the decisions that
shape the implementation, and the resulting behavior—not merely the changed
files.

## Instructions

When using this skill:

1. Determine the comparison branch first:
   - Use the branch the user specifies when they name one.
   - Otherwise, default to `main`.
   - If the correct base branch is unclear, ask the user before drafting the
     pull request description.
   - If the repo clearly uses another default integration branch, such as
     `dev`, use that instead of assuming `main`.
2. Read any linked issue, epic, journal, design, or acceptance criteria before
   drafting. Treat agreed decisions and accounting/event semantics in those
   documents as source material for the body.
3. Write a pull request description that explains the rationale behind the
   changes, not just the file-by-file edits. State what was broken or
   incomplete, why the chosen boundary or data contract is correct, and which
   existing semantics intentionally remain unchanged.
4. For changes with non-obvious behavior, cross-system effects, accounting,
   migrations, or several related fixes, include a dedicated `## Rationale`
   section and one or more descriptive sections that explain the relevant
   logic. Name these for the subject—for example `## Partial-close behavior`,
   `## Borrowing settlement`, or `## Historical compatibility`—rather than
   forcing an implementation-oriented heading.
5. For migrations, accounting changes, data-contract cutovers, or asynchronous
   authority/fallback behavior, lead the explanatory sections with a compact
   ASCII flow or field map. Use prose afterward only for the rationale the flow
   cannot convey. Do not use Mermaid.
6. Keep the writing concise and non-repetitive, but do not omit the reasoning
   that a reviewer needs to validate the design.
7. Save the final output to a markdown file named `gh-pr.md`.

## Output format

Use this structure:

```markdown
# <Short PR title>

<One short synopsis paragraph explaining the change and why it exists.>

- Closes <gh-issue-link> (If applicable, not all PRs pertain to issues)

## Rationale

<What was inconsistent, missing, or unsafe? Why is this event/data/model
boundary the right fix? Which related semantics deliberately do not change?>

## API cutover or behavior flow

```text
old source / behavior  -> replacement
authority source       -> fallback when unavailable
```

<Use a compact ASCII field map, lifecycle, or state flow when the change has
multiple data sources, transitions, or compatibility boundaries.>

## <Behavior or logic topic>

<Explain the important behavior, invariants, compatibility boundary, and
decision-making context. Add more topic-specific sections when the PR fixes
more than one distinct behavior.>

## Key Changes

1. <Important change with rationale>
1. <Important change with rationale>

```

## Style

- Prefer clarity over cleverness.
- Do not repeat the same point in multiple sections.
- Lead with the outcome, then give reviewers the rationale and logic they need
  to assess correctness.
- Explain non-obvious tradeoffs explicitly. Examples: a new field is canonical
  but a legacy fallback remains for historical data; a total intentionally
  excludes a separate accounting component; or an operation preserves a
  state-transition event while moving fee details to a normal receipt.
- Use numbered lists for the `## Key Changes` section, writing each item with
  `1.` so the markdown source is easy to reorder.
- Keep the description easy to scan with short paragraphs and direct headings.
  Prefer behavior-oriented sections over a chronological implementation diary;
  use as many sections as the distinct fixes need.
- For multi-source, lifecycle, migration, or fallback behavior, prefer compact
  ASCII diagrams and review invariants over prose-only explanations. Do not use
  Mermaid.