n8n:create-pr

Contributors

GitHub-linked commit authors for this SKILL.md at the saved revision. Co-authors and history before file renames are not included.

File history ↗

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.

.agents/skills/create-pr/SKILL.md

Download bundle ↓
master · 8bff5da1 bundle fileScanned 2026-09-15

SKILL.md

1,732 tokens · o200k_base · 7,143 bytes

Source excerpt starting at line 1.
---name: n8n:create-prdescription: 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.allowed-tools: Bash(git:*), Bash(gh:*), Read, Grep, Glob--- # Create 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 changes- `benchmark` - Benchmark CLI changes- `core` - Core/backend/private API- `editor` - Editor UI changes- `engine` - New workflow execution engine v2 (@n8n/engine package)- `* 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 1. **Check current state**:   ```bash   git status   git diff --stat   git log origin/master..HEAD --oneline   ``` 2. **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. 3. **If this is a security fix**, audit every public-facing artifact before   proceeding (see Security Fixes below). 4. **Analyze changes** to determine:   - Type: What kind of change is this?   - Scope: Which package/area is affected?   - Summary: What does the change do? 5. **Push branch if needed**:   ```bash   git push -u origin HEAD   ``` 6. **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:   - **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    ```bash   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`: Write the PR body in ASD-STE100 Simplified Technical English: use shortsentences, the active voice, and one instruction for each sentence. ### 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 ### ChecklistAll 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/backport` label 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 approvedincluding it, add a collapsible section at the end of the PR body (after thechecklist, before `EOF`): ```markdown<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** 
Discovery context

Discovered by repository scan. No exact path reference found in the snapshot’s root AGENTS.md.