[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-n8n-io-n8n-.claude-skills-create-pr":3},{"error":4,"detail":5,"metadata":24,"markdownContent":26,"rawMarkdown":21},false,{"repo_full_name":6,"owner":7,"repo_name":8,"repo_forks":9,"skill_path":10,"repo_stars":11,"name":12,"category_id":13,"description":14,"file_tree":15,"skill_md_content":21,"skill_id":22,"skill_key":23},"n8n-io/n8n","n8n-io","n8n",55946,".claude/skills/create-pr",179914,"create-pr",1,"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.",[16],{"name":17,"path":18,"size":19,"type":20},"SKILL.md",".claude/skills/create-pr/SKILL.md",4804,"file","---\nname: create-pr\ndescription: 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.\nallowed-tools: Bash(git:*), Bash(gh:*), Read, Grep, Glob\n---\n\n# Create Pull Request\n\nCreates GitHub PRs with titles that pass n8n's `check-pr-title` CI validation.\n\n## PR Title Format\n\n```\n\u003Ctype>(\u003Cscope>): \u003Csummary>\n```\n\n### Types (required)\n\n| Type       | Description                                      | Changelog |\n|------------|--------------------------------------------------|-----------|\n| `feat`     | New feature                                      | Yes       |\n| `fix`      | Bug fix                                          | Yes       |\n| `perf`     | Performance improvement                          | Yes       |\n| `test`     | Adding/correcting tests                          | No        |\n| `docs`     | Documentation only                               | No        |\n| `refactor` | Code change (no bug fix or feature)              | No        |\n| `build`    | Build system or dependencies                     | No        |\n| `ci`       | CI configuration                                 | No        |\n| `chore`    | Routine tasks, maintenance                       | No        |\n\n### Scopes (optional but recommended)\n\n- `API` - Public API changes\n- `benchmark` - Benchmark CLI changes\n- `core` - Core/backend/private API\n- `editor` - Editor UI changes\n- `* Node` - Specific node (e.g., `Slack Node`, `GitHub Node`)\n\n### Summary Rules\n\n- Use imperative present tense: \"Add\" not \"Added\"\n- Capitalize first letter\n- No period at the end\n- No ticket IDs (e.g., N8N-1234)\n- Add `(no-changelog)` suffix to exclude from changelog\n\n## Steps\n\n1. **Check current state**:\n   ```bash\n   git status\n   git diff --stat\n   git log origin/master..HEAD --oneline\n   ```\n\n2. **Analyze changes** to determine:\n   - Type: What kind of change is this?\n   - Scope: Which package/area is affected?\n   - Summary: What does the change do?\n\n3. **Push branch if needed**:\n   ```bash\n   git push -u origin HEAD\n   ```\n\n4. **Create PR** using gh CLI with the template from `.github/pull_request_template.md`:\n   ```bash\n   gh pr create --draft --title \"\u003Ctype>(\u003Cscope>): \u003Csummary>\" --body \"$(cat \u003C\u003C'EOF'\n   ## Summary\n\n   \u003CDescribe what the PR does and how to test. Photos and videos are recommended.>\n\n   ## Related Linear tickets, Github issues, and Community forum posts\n\n   \u003C!-- Link to Linear ticket: https://linear.app/n8n/issue/[TICKET-ID] -->\n   \u003C!-- Use \"closes #\u003Cissue-number>\", \"fixes #\u003Cissue-number>\", or \"resolves #\u003Cissue-number>\" to automatically close issues -->\n\n   ## Review / Merge checklist\n\n   - [ ] PR title and summary are descriptive. ([conventions](../blob/master/.github/pull_request_title_conventions.md))\n   - [ ] [Docs updated](https://github.com/n8n-io/n8n-docs) or follow-up ticket created.\n   - [ ] Tests included.\n   - [ ] PR Labeled with `release/backport` (if the PR is an urgent fix that needs to be backported)\n   EOF\n   )\"\n   ```\n\n## PR Body Guidelines\n\nBased on `.github/pull_request_template.md`:\n\n### Summary Section\n- Describe what the PR does\n- Explain how to test the changes\n- Include screenshots/videos for UI changes\n\n### Related Links Section\n- Link to Linear ticket: `https://linear.app/n8n/issue/[TICKET-ID]`\n- Link to GitHub issues using keywords to auto-close:\n  - `closes #123` / `fixes #123` / `resolves #123`\n- Link to Community forum posts if applicable\n\n### Checklist\nAll items should be addressed before merging:\n- PR title follows conventions\n- Docs updated or follow-up ticket created\n- Tests included (bugs need regression tests, features need coverage)\n- `release/backport` label added if urgent fix needs backporting\n\n## Examples\n\n### Feature in editor\n```\nfeat(editor): Add workflow performance metrics display\n```\n\n### Bug fix in core\n```\nfix(core): Resolve memory leak in execution engine\n```\n\n### Node-specific change\n```\nfix(Slack Node): Handle rate limiting in message send\n```\n\n### Breaking change (add exclamation mark before colon)\n```\nfeat(API)!: Remove deprecated v1 endpoints\n```\n\n### No changelog entry\n```\nrefactor(core): Simplify error handling (no-changelog)\n```\n\n### No scope (affects multiple areas)\n```\nchore: Update dependencies to latest versions\n```\n\n## Validation\n\nThe PR title must match this pattern:\n```\n^(feat|fix|perf|test|docs|refactor|build|ci|chore|revert)(\\([a-zA-Z0-9 ]+( Node)?\\))?!?: [A-Z].+[^.]$\n```\n\nKey validation rules:\n- Type must be one of the allowed types\n- Scope is optional but must be in parentheses if present\n- Exclamation mark for breaking changes goes before the colon\n- Summary must start with capital letter\n- Summary must not end with a period\n","88b39e44-9ef3-59ca-8030-5c08a2539f3b","n8n-io-n8n-.claude-skills-create-pr",{"name":12,"description":14,"allowed-tools":25},"Bash(git:*), Bash(gh:*), Read, Grep, Glob","\u003Ch1>Create Pull Request\u003C/h1>\n\u003Cp>Creates GitHub PRs with titles that pass n8n&#39;s \u003Ccode>check-pr-title\u003C/code> CI validation.\u003C/p>\n\u003Ch2>PR Title Format\u003C/h2>\n\u003Cdiv class=\"md-code-block\">\u003Cpre>\u003Ccode class=\"hljs language-plaintext\">&lt;type&gt;(&lt;scope&gt;): &lt;summary&gt;\u003C/code>\u003C/pre>\u003C/div>\u003Ch3>Types (required)\u003C/h3>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Type\u003C/th>\n\u003Cth>Description\u003C/th>\n\u003Cth>Changelog\u003C/th>\n\u003C/tr>\n\u003C/thead>\n\u003Ctbody>\u003Ctr>\n\u003Ctd>\u003Ccode>feat\u003C/code>\u003C/td>\n\u003Ctd>New feature\u003C/td>\n\u003Ctd>Yes\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>fix\u003C/code>\u003C/td>\n\u003Ctd>Bug fix\u003C/td>\n\u003Ctd>Yes\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>perf\u003C/code>\u003C/td>\n\u003Ctd>Performance improvement\u003C/td>\n\u003Ctd>Yes\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>test\u003C/code>\u003C/td>\n\u003Ctd>Adding/correcting tests\u003C/td>\n\u003Ctd>No\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>docs\u003C/code>\u003C/td>\n\u003Ctd>Documentation only\u003C/td>\n\u003Ctd>No\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>refactor\u003C/code>\u003C/td>\n\u003Ctd>Code change (no bug fix or feature)\u003C/td>\n\u003Ctd>No\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>build\u003C/code>\u003C/td>\n\u003Ctd>Build system or dependencies\u003C/td>\n\u003Ctd>No\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>ci\u003C/code>\u003C/td>\n\u003Ctd>CI configuration\u003C/td>\n\u003Ctd>No\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>chore\u003C/code>\u003C/td>\n\u003Ctd>Routine tasks, maintenance\u003C/td>\n\u003Ctd>No\u003C/td>\n\u003C/tr>\n\u003C/tbody>\u003C/table>\n\u003Ch3>Scopes (optional but recommended)\u003C/h3>\n\u003Cul>\n\u003Cli>\u003Ccode>API\u003C/code> - Public API changes\u003C/li>\n\u003Cli>\u003Ccode>benchmark\u003C/code> - Benchmark CLI changes\u003C/li>\n\u003Cli>\u003Ccode>core\u003C/code> - Core/backend/private API\u003C/li>\n\u003Cli>\u003Ccode>editor\u003C/code> - Editor UI changes\u003C/li>\n\u003Cli>\u003Ccode>* Node\u003C/code> - Specific node (e.g., \u003Ccode>Slack Node\u003C/code>, \u003Ccode>GitHub Node\u003C/code>)\u003C/li>\n\u003C/ul>\n\u003Ch3>Summary Rules\u003C/h3>\n\u003Cul>\n\u003Cli>Use imperative present tense: &quot;Add&quot; not &quot;Added&quot;\u003C/li>\n\u003Cli>Capitalize first letter\u003C/li>\n\u003Cli>No period at the end\u003C/li>\n\u003Cli>No ticket IDs (e.g., N8N-1234)\u003C/li>\n\u003Cli>Add \u003Ccode>(no-changelog)\u003C/code> suffix to exclude from changelog\u003C/li>\n\u003C/ul>\n\u003Ch2>Steps\u003C/h2>\n\u003Col>\n\u003Cli>\u003Cp>\u003Cstrong>Check current state\u003C/strong>:\u003C/p>\n\u003Cdiv class=\"md-code-block\">\u003Cdiv class=\"md-code-lang\">bash\u003C/div>\u003Cpre>\u003Ccode class=\"hljs language-bash\">git status\ngit diff --\u003Cspan class=\"hljs-built_in\">stat\u003C/span>\ngit \u003Cspan class=\"hljs-built_in\">log\u003C/span> origin/master..HEAD --oneline\u003C/code>\u003C/pre>\u003C/div>\u003C/li>\n\u003Cli>\u003Cp>\u003Cstrong>Analyze changes\u003C/strong> to determine:\u003C/p>\n\u003Cul>\n\u003Cli>Type: What kind of change is this?\u003C/li>\n\u003Cli>Scope: Which package/area is affected?\u003C/li>\n\u003Cli>Summary: What does the change do?\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003Cli>\u003Cp>\u003Cstrong>Push branch if needed\u003C/strong>:\u003C/p>\n\u003Cdiv class=\"md-code-block\">\u003Cdiv class=\"md-code-lang\">bash\u003C/div>\u003Cpre>\u003Ccode class=\"hljs language-bash\">git push -u origin HEAD\u003C/code>\u003C/pre>\u003C/div>\u003C/li>\n\u003Cli>\u003Cp>\u003Cstrong>Create PR\u003C/strong> using gh CLI with the template from \u003Ccode>.github/pull_request_template.md\u003C/code>:\u003C/p>\n\u003Cdiv class=\"md-code-block\">\u003Cdiv class=\"md-code-lang\">bash\u003C/div>\u003Cpre>\u003Ccode class=\"hljs language-bash\">gh \u003Cspan class=\"hljs-built_in\">pr\u003C/span> create --draft --title \u003Cspan class=\"hljs-string\">&quot;&lt;type&gt;(&lt;scope&gt;): &lt;summary&gt;&quot;\u003C/span> --body \u003Cspan class=\"hljs-string\">&quot;\u003Cspan class=\"hljs-subst\">$(cat &lt;&lt;&#x27;EOF&#x27;\n## Summary\n\n&lt;Describe what the PR does and how to test. Photos and videos are recommended.&gt;\n\n## Related Linear tickets, Github issues, and Community forum posts\n\n&lt;!-- Link to Linear ticket: https://linear.app/n8n/issue/[TICKET-ID] --&gt;\n&lt;!-- Use \u003Cspan class=\"hljs-string\">&quot;closes #&lt;issue-number&gt;&quot;\u003C/span>, \u003Cspan class=\"hljs-string\">&quot;fixes #&lt;issue-number&gt;&quot;\u003C/span>, or \u003Cspan class=\"hljs-string\">&quot;resolves #&lt;issue-number&gt;&quot;\u003C/span> to automatically close issues --&gt;\n\n## Review / Merge checklist\n\n- [ ] PR title and summary are descriptive. ([conventions](../blob/master/.github/pull_request_title_conventions.md)\u003C/span>)\n- [ ] [Docs updated](https://github.com/n8n-io/n8n-docs) or follow-up ticket created.\n- [ ] Tests included.\n- [ ] PR Labeled with `release/backport` (if the PR is an urgent fix that needs to be backported)\nEOF\n)&quot;\u003C/span>\u003C/code>\u003C/pre>\u003C/div>\u003C/li>\n\u003C/ol>\n\u003Ch2>PR Body Guidelines\u003C/h2>\n\u003Cp>Based on \u003Ccode>.github/pull_request_template.md\u003C/code>:\u003C/p>\n\u003Ch3>Summary Section\u003C/h3>\n\u003Cul>\n\u003Cli>Describe what the PR does\u003C/li>\n\u003Cli>Explain how to test the changes\u003C/li>\n\u003Cli>Include screenshots/videos for UI changes\u003C/li>\n\u003C/ul>\n\u003Ch3>Related Links Section\u003C/h3>\n\u003Cul>\n\u003Cli>Link to Linear ticket: \u003Ccode>https://linear.app/n8n/issue/[TICKET-ID]\u003C/code>\u003C/li>\n\u003Cli>Link to GitHub issues using keywords to auto-close:\u003Cul>\n\u003Cli>\u003Ccode>closes #123\u003C/code> / \u003Ccode>fixes #123\u003C/code> / \u003Ccode>resolves #123\u003C/code>\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003Cli>Link to Community forum posts if applicable\u003C/li>\n\u003C/ul>\n\u003Ch3>Checklist\u003C/h3>\n\u003Cp>All items should be addressed before merging:\u003C/p>\n\u003Cul>\n\u003Cli>PR title follows conventions\u003C/li>\n\u003Cli>Docs updated or follow-up ticket created\u003C/li>\n\u003Cli>Tests included (bugs need regression tests, features need coverage)\u003C/li>\n\u003Cli>\u003Ccode>release/backport\u003C/code> label added if urgent fix needs backporting\u003C/li>\n\u003C/ul>\n\u003Ch2>Examples\u003C/h2>\n\u003Ch3>Feature in editor\u003C/h3>\n\u003Cdiv class=\"md-code-block\">\u003Cpre>\u003Ccode class=\"hljs language-plaintext\">feat(editor): Add workflow performance metrics display\u003C/code>\u003C/pre>\u003C/div>\u003Ch3>Bug fix in core\u003C/h3>\n\u003Cdiv class=\"md-code-block\">\u003Cpre>\u003Ccode class=\"hljs language-plaintext\">fix(core): Resolve memory leak in execution engine\u003C/code>\u003C/pre>\u003C/div>\u003Ch3>Node-specific change\u003C/h3>\n\u003Cdiv class=\"md-code-block\">\u003Cpre>\u003Ccode class=\"hljs language-plaintext\">fix(Slack Node): Handle rate limiting in message send\u003C/code>\u003C/pre>\u003C/div>\u003Ch3>Breaking change (add exclamation mark before colon)\u003C/h3>\n\u003Cdiv class=\"md-code-block\">\u003Cpre>\u003Ccode class=\"hljs language-plaintext\">feat(API)!: Remove deprecated v1 endpoints\u003C/code>\u003C/pre>\u003C/div>\u003Ch3>No changelog entry\u003C/h3>\n\u003Cdiv class=\"md-code-block\">\u003Cpre>\u003Ccode class=\"hljs language-plaintext\">refactor(core): Simplify error handling (no-changelog)\u003C/code>\u003C/pre>\u003C/div>\u003Ch3>No scope (affects multiple areas)\u003C/h3>\n\u003Cdiv class=\"md-code-block\">\u003Cpre>\u003Ccode class=\"hljs language-plaintext\">chore: Update dependencies to latest versions\u003C/code>\u003C/pre>\u003C/div>\u003Ch2>Validation\u003C/h2>\n\u003Cp>The PR title must match this pattern:\u003C/p>\n\u003Cdiv class=\"md-code-block\">\u003Cpre>\u003Ccode class=\"hljs language-plaintext\">^(feat|fix|perf|test|docs|refactor|build|ci|chore|revert)(\\([a-zA-Z0-9 ]+( Node)?\\))?!?: [A-Z].+[^.]$\u003C/code>\u003C/pre>\u003C/div>\u003Cp>Key validation rules:\u003C/p>\n\u003Cul>\n\u003Cli>Type must be one of the allowed types\u003C/li>\n\u003Cli>Scope is optional but must be in parentheses if present\u003C/li>\n\u003Cli>Exclamation mark for breaking changes goes before the colon\u003C/li>\n\u003Cli>Summary must start with capital letter\u003C/li>\n\u003Cli>Summary must not end with a period\u003C/li>\n\u003C/ul>\n"]