npx skills add ...
npx skills add n8n-io/n8n --skill create-pr
npx skills add n8n-io/n8n --skill create-pr
Creates GitHub pull requests with properly formatted titles that pass the check-pr-title CI validation. Use when creating PRs, submitting changes for review, or when the user says /pr or asks to create a pull request.
Creates GitHub PRs with titles that pass n8n's check-pr-title CI validation.
| Type | Description | Changelog |
|---|---|---|
feat | New feature | Yes |
fix | Bug fix | Yes |
perf | Performance improvement | Yes |
test | Adding/correcting tests | No |
docs | Documentation only | No |
refactor | Code change (no bug fix or feature) | No |
build | Build system or dependencies | No |
ci | CI configuration | No |
chore | Routine tasks, maintenance | No |
API - Public API changesbenchmark - Benchmark CLI changescore - Core/backend/private APIeditor - Editor UI changes* Node - Specific node (e.g., Slack Node, GitHub Node)(no-changelog) suffix to exclude from changelogCheck current state:
Check for implementation plan: Look for a plan file in the repository plan directories (.claude/plans/ or .agents/plans/ when present)
that matches the current branch's ticket ID (e.g. if branch is
scdekov/PAY-1234-some-feature, check for PAY-1234.md).
If a plan file exists, ask the user whether they want to include it in the
PR description as a collapsible <details> section (see Plan Section below).
Only include the plan if the user explicitly approves.
If this is a security fix, audit every public-facing artifact before proceeding (see Security Fixes below).
Analyze changes to determine:
Push branch if needed:
Create PR using gh CLI. Read .github/pull_request_template.md as the
body structure, then populate each section with actual content before
creating the PR:
https://linear.app/n8n/issue/[TICKET-ID]) and any GitHub issue linksBased on .github/pull_request_template.md:
N8N_ENABLED_MODULES, an enterprise license, a feature flag, or
similar), note which env vars/license are needed so the tester can deploy a
correctly configured instancehttps://linear.app/n8n/issue/[TICKET-ID]closes #123 / fixes #123 / resolves #123All items should be addressed before merging:
release/backport label added if urgent fix needs backportingThe PR title must match this pattern:
Key validation rules:
If a matching plan file was found in a repository plan directory and the user has approved
including it, add a collapsible section at the end of the PR body (after the
checklist, before EOF):
This repo is public. Never expose the attack vector in any public artifact. Describe what the code does, not what threat it prevents.
| Artifact | BAD | GOOD |
|---|---|---|
| Branch | fix-sql-injection-in-webhook | fix-webhook-input-validation |
| PR title | fix(core): Prevent SSRF | fix(core): Validate outgoing URLs |
| Commit msg | fix: prevent denial of service | fix: add payload size validation |
| PR body | "attacker could trigger SSRF…" | "validates URL protocol and host" |
| Linear ref | URL with slug (leaks title) | URL without slug or ticket ID only |
| Test name | 'should prevent SQL injection' | 'should sanitize query parameters' |
Before pushing a security fix, verify: no branch name, commit, PR title, PR body, Linear URL, test name, or code comment hints at the vulnerability.
When in doubt, check the Linear issue for possible extra precautions