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>(<scope>): <summary>| 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:
git status
git diff --stat
git log origin/master..HEAD --onelineCheck 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:
git push -u origin HEADCreate 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 linksgh pr create --draft --title "<type>(<scope>): <summary>" --body "$(cat <<'EOF'
<populated body based on pull_request_template.md>
EOF
)"Based 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 backportingfeat(editor): Add workflow performance metrics displayfix(core): Resolve memory leak in execution enginefix(Slack Node): Handle rate limiting in message sendfeat(API)!: Remove deprecated v1 endpointsrefactor(core): Simplify error handling (no-changelog)chore: Update dependencies to latest versionsThe PR title must match this pattern:
^(feat|fix|perf|test|docs|refactor|build|ci|chore|revert)(\([a-zA-Z0-9 ]+( Node)?\))?!?: [A-Z].+[^.]$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):
<details>
<summary>Implementation plan</summary>
<!-- paste plan file contents here -->
</details>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
bcbea0a
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.