---
description: When creating a new pull request on GitHub, use this to specify the contents
alwaysApply: false
---

### Pull Request Rules

**Title format**: `type(scope): Description fixes NOV-<ticket-id>`

- When creating a pull requests from any run, verify that there is a linear ticket associated with the pr (From branch name or other), if not, create the linear ticket before creating the PR and attach the linear ticket id in title (fixes NV-XXX)
- Examples: `feat(dashboard): add workflow trigger button fixes NOV-123`, `fix(api-service): handle null subscriber case fixes NOV-456`


**Scopes**: `dashboard`, `api-service`, `worker`, `shared`, `js`, `react`, `react-native`, `nextjs`, `providers`, `root`, `docs`

**Description**: Summarize what changed and why. List breaking changes. Add screenshots for UI changes. For non-trivial logic or architecture changes, include a concise Mermaid diagram (flow, sequence, or component) so reviewers can grasp the change at a glance.

**Enterprise packages**: When changes touch `enterprise/`, also open a matching PR in `novuhq/packages-enterprise` on a branch from `next`, and cross-link the two PR bodies (monorepo ↔ enterprise). The Validate Submodule Sync test will fail; this is expected when pointing to the `.source` submodule in the novuhq/novu repository. Do not fix it.
