
Create Pull Request
FreeAutomate GitHub PR creation with validated titles.
Free Β· Opens the source repo
What Create Pull Request does
The Create Pull Request skill streamlines the process of generating GitHub pull requests (PRs) by ensuring that the titles conform to the check-pr-title CI validation rules set by n8n. This skill is particularly useful for developers who frequently submit changes for review, as it automates the title formatting process, reducing the likelihood of errors and improving consistency across PR submissions. By adhering to the established title format, users can focus more on the content of their changes rather than the formatting details.
The skill requires users to specify a type and optionally a scope for each PR title, following the prescribed format: <type>(<scope>): <summary>. Types include categories such as feat, fix, perf, and others, while scopes can specify the affected area of the codebase. This structured approach not only aids in clarity but also supports better changelog generation and tracking of changes over time.
In addition to title formatting, the skill includes a series of steps that guide users through the PR creation process. It checks the current state of the repository, looks for an implementation plan, audits for security fixes, and analyzes changes to determine the appropriate type, scope, and summary. Once the necessary information is gathered, it utilizes the GitHub CLI to create the PR with a well-structured body, ensuring that all relevant details are included, such as testing instructions and related tickets.
This skill is ideal for teams using GitHub who want to maintain high standards for PR submissions while minimizing manual overhead. Itβs particularly beneficial in environments where multiple developers contribute to a shared codebase, ensuring that PRs are consistently formatted and informative, thus facilitating smoother code reviews and integrations.
When to use it
Use this skill when you need to create a pull request on GitHub and want to ensure that the title adheres to specific formatting rules.
When not to use it
Avoid this skill if you do not use GitHub or if your PR title formatting requirements differ significantly from the provided structure.
What you can build with it
Creating a New Feature PR
When developing a new feature, use this skill to generate a PR that clearly describes the addition, following the required title format.
Submitting a Bug Fix
Utilize this skill to create a PR for a bug fix, ensuring the title reflects the nature of the change and passes CI validation.
Maintaining Consistent PR Standards
In a team environment, use this skill to ensure all PRs adhere to a standardized title format, improving clarity and review efficiency.
How to install Create Pull Request
View source1. Install with the skills CLI
npx skills add n8n-io/n8n/create-pr --agent claude-code2. Or install it manually
Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.
Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs
Inside SKILL.md
Written by n8n-ioCreate Pull Request
Creates GitHub PRs with titles that pass n8n's check-pr-title CI validation.
PR Title Format
<type>(<scope>): <summary>
Types (required)
| 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 |
Scopes (optional but recommended)
API- Public API changesbenchmark- Benchmark CLI changescore- Core/backend/private APIeditor- Editor UI changes* Node- Specific node (e.g.,Slack Node,GitHub Node)
Summary Rules
- Use imperative present tense: "Add" not "Added"
- Capitalize first letter
- No period at the end
- No ticket IDs (e.g., N8N-1234)
- Add
(no-changelog)suffix to exclude from changelog
Steps
-
Check current state:
git status git diff --stat git log origin/master..HEAD --oneline -
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 isscdekov/PAY-1234-some-feature, check forPAY-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:
- Type: What kind of change is this?
- Scope: Which package/area is affected?
- Summary: What does the change do?
-
Push branch if needed:
git push -u origin HEAD -
Create PR using gh CLI. Read
.github/pull_request_template.mdas the body structure, then populate each section with actual content before creating the PR:- Summary: describe what the PR does
- How to test: describe how to test the changes. Include an example workflow if appropriate
- Related tickets: add the Linear ticket URL (
https://linear.app/n8n/issue/[TICKET-ID]) and any GitHub issue links - Checklist: keep as-is from the template
- Add a "π€ PR Summary generated by AI" at the end of the body
gh pr create --draft --title "<type>(<scope>): <summary>" --body "$(cat <<'EOF' <populated body based on pull_request_template.md> EOF )"
PR Body Guidelines
Based on .github/pull_request_template.md:
Summary Section
- Describe what the PR does
- Include screenshots/videos for UI changes
How to test Section
- Explain how to test the changes
- Include an example workflow if appropriate
- If the feature is gated in a default n8n instance (requires a non-default
module via
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 instance
Related Links Section
- Link to Linear ticket:
https://linear.app/n8n/issue/[TICKET-ID] - Link to GitHub issues using keywords to auto-close:
closes #123/fixes #123/resolves #123
- Link to Community forum posts if applicable
Checklist
All items should be addressed before merging:
- The human author of the PR has checked the "I have seen this code, I have run this code, and I take responsibility for this code." checkbox
- PR title follows conventions
- Docs updated or follow-up ticket created
- Tests included (bugs need regression tests, features need coverage)
release/backportlabel added if urgent fix needs backporting
Examples
Feature in editor
feat(editor): Add workflow performance metrics display
Bug fix in core
fix(core): Resolve memory leak in execution engine
Node-specific change
fix(Slack Node): Handle rate limiting in message send
Breaking change (add exclamation mark before colon)
feat(API)!: Remove deprecated v1 endpoints
No changelog entry
refactor(core): Simplify error handling (no-changelog)
No scope (affects multiple areas)
chore: Update dependencies to latest versions
Validation
The 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:
- Type must be one of the allowed types
- Scope is optional but must be in parentheses if present
- Exclamation mark for breaking changes goes before the colon
- Summary must start with capital letter
- Summary must not end with a period
Plan Section
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>
Security Fixes
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
Frequently asked questions about Create Pull Request
Similar skills
Release Candidate Preparation
Streamline your OpenAI Agents release process.
Gitmoji
Generate expressive commit messages with emojis.
GitHub Release
Automate your GitHub library release process effortlessly.
Commit Message Storyteller
Generate meaningful commit messages from your git diffs.
Author Contributions
Trace author contributions across branches in Git.
Implementation Kickoff
Streamline your code implementation process with ease.
