# Create PR

Write the title and body of a Kortix pull request for a human reviewer who decides...

- Repository: https://github.com/kortix-ai/suna (20345 stars)
- Category: Git and review
- License: see repository
- Last updated: 2026-11-01
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add kortix-ai/suna --skill create-pr -g -a claude-code -y`
Codex: `npx skills add kortix-ai/suna --skill create-pr -g -a codex -y`
Cursor: `npx skills add kortix-ai/suna --skill create-pr -g -a cursor -y`
Gemini CLI: `npx skills add kortix-ai/suna --skill create-pr -g -a gemini-cli -y`

## Description

Write the title and body of a Kortix pull request for a human reviewer who decides \"merge or iterate\" without reading the diff: English only, a Conventional Commits title that names the outcome, the demo video right after the summary, what is affected, a verification table, risks and rollback, and reviewer focus. Uploads the video and screenshots with `gh pr create/edit --attach`. Load whenever you run `gh pr create` or `gh pr edit`, write or rewrite a PR title or description, attach a video or screenshot to a PR, or hand off finished work for review, even when the user only says \"open a PR\" or \"update the PR text\".

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Create a pull request

The title and body are for a human who will not open the diff. Their one question is
**"Do I merge this, or send it back?"** Every line helps answer it. Cut a line that does
not, even when it is true and took effort to find. Short is not the goal; nothing
unnecessary is. A one-line fix gets a few lines. An IAM change gets as much as the
reviewer needs to trust it.

This skill owns the PR text. The **contributing** skill owns the loop around it: branch,
commit, verify, record the demo, merge, deploy dev. Follow the section order in
[the PR template](../../../.github/pull_request_template.md). Delete a section that does
not apply. Never fill one with "N/A".

## 1. Gather facts before you write

- `git log --oneline origin/dev..HEAD` and `git diff --stat origin/dev...HEAD`: what the
  branch changes.
- The verification you ran in this session: exact commands, results, and the commit they
  ran on. Never write a result you did not see. A skipped or blocked check is a row in the
  table, not an omission.
- `gh pr checks <pr>` when the PR exists and a `test` or `preview` run happened. Pending is
  not PASS.
- The demo video, recorded and checked frame by frame (**contributing** step 4).

## 2. Title

- **English only.**
- `type(scope): <outcome>`, the Conventional Commits style that `git log` shows. The squash
  merge uses the title as the commit subject on `dev`, so the prefix stays.
- After the colon, write the outcome a user or operator notices, not the technique.
  - Yes: `fix(web): the session list keeps its scroll position after a new message`
  - No: `fix(web): memoize SessionList and move scroll ref into useLayoutEffect`
- At most ~72 characters. Lowercase after the colon. No trailing period.
- Add the Linear key at the end when there is one: `(KRTX-1234)`.
- Mark a breaking change with `!`: `feat(sdk)!: …`.

## 3. Body

**English only**, every section. Keep the template headings unchanged.

The rest: https://github.com/kortix-ai/suna/blob/HEAD/.agents/skills/create-pr/SKILL.md
