---
title: "Opening a Pull Request"
url: https://develop.sentry.dev/sdk/getting-started/playbooks/development/opening-a-pr/
---

# Opening a Pull Request

This document uses key words such as "MUST", "SHOULD", and "MAY" as defined in

<!-- -->

[RFC 2119](https://www.ietf.org/rfc/rfc2119.txt) to indicate requirement levels.

Statuscandidate

Version`1.0.0`[(changelog)](https://develop.sentry.dev/sdk/getting-started/playbooks/development/opening-a-pr.md#changelog)

## [Overview](https://develop.sentry.dev/sdk/getting-started/playbooks/development/opening-a-pr.md#overview)

This playbook guides contributors through creating a well-structured pull request for an SDK repository. It covers branch naming, commit formatting, local verification, draft PR workflow, and review assignment. By following these steps, PRs will have proper documentation, pass CI checks, and be ready for efficient review.

Related resources:

* [Code Submission Standards](https://develop.sentry.dev/sdk/getting-started/standards/code-submission.md) — commit format, branch naming, and PR requirements
* [Sentry Skills](https://github.com/getsentry/skills#available-skills) — automation tools for commits and PRs
* [Repository Documentation Standards](https://develop.sentry.dev/sdk/getting-started/standards/repository-docs.md) — documentation requirements

***

## [Steps](https://develop.sentry.dev/sdk/getting-started/playbooks/development/opening-a-pr.md#steps)

#### [1. Branch from the default branch](https://develop.sentry.dev/sdk/getting-started/playbooks/development/opening-a-pr.md#1-branch-from-the-default-branch)

You **MUST** use the naming convention `<username>/<type>/<short-description>` ([Branch naming](https://develop.sentry.dev/sdk/getting-started/standards/code-submission.md#branch-naming)).

Examples: `theo/feat/add-user-auth`, `alice/fix/rate-limit-parsing`.

#### [2. Confirm a linked issue exists](https://develop.sentry.dev/sdk/getting-started/playbooks/development/opening-a-pr.md#2-confirm-a-linked-issue-exists)

If there isn't one, create it first — even for internal work. Non-trivial changes **REQUIRE** an issue before a PR ([PR description quality](https://develop.sentry.dev/sdk/getting-started/standards/code-submission.md#pr-description-quality)).

#### [3. Write commits](https://develop.sentry.dev/sdk/getting-started/playbooks/development/opening-a-pr.md#3-write-commits)

You **MUST** use [conventional format](https://develop.sentry.dev/sdk/getting-started/standards/code-submission.md#commit-message-format). If AI-assisted, you **MUST** add `Co-Authored-By` in the commit footer ([AI attribution](https://develop.sentry.dev/sdk/getting-started/standards/code-submission.md#ai-attribution)).

You **SHOULD** use the [`sentry-skills:commit`](https://github.com/getsentry/skills#available-skills) skill to create properly formatted commits.

#### [4. Verify locally](https://develop.sentry.dev/sdk/getting-started/playbooks/development/opening-a-pr.md#4-verify-locally)

Tests **MUST** pass, linter **MUST** pass, and the SDK **MUST** build cleanly before opening a PR.

#### [5. Open the PR as a draft](https://develop.sentry.dev/sdk/getting-started/playbooks/development/opening-a-pr.md#5-open-the-pr-as-a-draft)

You **MUST** open PRs as drafts ([PR draft mode](https://develop.sentry.dev/sdk/getting-started/standards/code-submission.md#pr-draft-mode)).

You **SHOULD** use the [`sentry-skills:create-pr`](https://github.com/getsentry/skills#available-skills) skill to create the PR with proper formatting.

#### [6. Write the description](https://develop.sentry.dev/sdk/getting-started/playbooks/development/opening-a-pr.md#6-write-the-description)

You **MUST** include: what changed, why, linked issue, and context for reviewers. No boilerplate, no test plan sections ([PR description quality](https://develop.sentry.dev/sdk/getting-started/standards/code-submission.md#pr-description-quality)).

#### [7. If the change is user-facing](https://develop.sentry.dev/sdk/getting-started/playbooks/development/opening-a-pr.md#7-if-the-change-is-user-facing)

You **MUST** add a changelog entry ([Changelog entry](https://develop.sentry.dev/sdk/getting-started/standards/code-submission.md#changelog-entry)) and open or link a docs PR ([Documentation-with-code](https://develop.sentry.dev/sdk/getting-started/standards/repository-docs.md#documentation-with-code)).

#### [8. Wait for CI to pass](https://develop.sentry.dev/sdk/getting-started/playbooks/development/opening-a-pr.md#8-wait-for-ci-to-pass)

When green, mark the PR as ready for review.

#### [9. Assign 1–2 reviewers](https://develop.sentry.dev/sdk/getting-started/playbooks/development/opening-a-pr.md#9-assign-12-reviewers)

If the PR touches public API, dependencies, or security-sensitive areas, you **MUST** assign an @sdk-seniors reviewer ([Required reviewers](https://develop.sentry.dev/sdk/getting-started/standards/review-ci.md#code-review)).

## [Referenced Standards](https://develop.sentry.dev/sdk/getting-started/playbooks/development/opening-a-pr.md#referenced-standards)

* [Branch naming](https://develop.sentry.dev/sdk/getting-started/standards/code-submission.md#branch-naming) — branch naming convention format
* [Commit message format](https://develop.sentry.dev/sdk/getting-started/standards/code-submission.md#commit-message-format) — conventional commit structure
* [AI attribution](https://develop.sentry.dev/sdk/getting-started/standards/code-submission.md#ai-attribution) — Co-Authored-By footer requirement
* [PR draft mode](https://develop.sentry.dev/sdk/getting-started/standards/code-submission.md#pr-draft-mode) — draft PR workflow
* [PR description quality](https://develop.sentry.dev/sdk/getting-started/standards/code-submission.md#pr-description-quality) — description content requirements
* [Changelog entry](https://develop.sentry.dev/sdk/getting-started/standards/code-submission.md#changelog-entry) — user-facing change documentation
* [One logical change per PR](https://develop.sentry.dev/sdk/getting-started/standards/code-submission.md#one-logical-change-per-pr) — focused PR scope
* [Documentation-with-code](https://develop.sentry.dev/sdk/getting-started/standards/repository-docs.md#documentation-with-code) — docs PR requirements
* [Required reviewers](https://develop.sentry.dev/sdk/getting-started/standards/review-ci.md#code-review) — @sdk-seniors review triggers
* [Test requirements by change type](https://develop.sentry.dev/sdk/getting-started/standards/code-quality.md#testing) — test coverage requirements

***

| Version | Date       | Summary                                                                              |
| ------- | ---------- | ------------------------------------------------------------------------------------ |
| `1.0.0` | 2026-02-21 | Initial playbook — standardized pull request creation workflow from branch to review |
