{"id":"ab1cba28-048b-4199-96d8-45bf998823b0","shortId":"NatdJL","kind":"skill","title":"create-pr","tagline":"Create a GitHub pull request with a drafted title and description. Use when the user asks to \"create a PR\", \"create a pull request\", \"open a PR\", or \"submit a PR\".","description":"# Create Pull Request\n\nDraft a concise and descriptive title and a short paragraph for a PR. Explain the purpose of the changes, the problem they solve, and the general approach taken. When the changes involve clear runtime flows or state transitions, include Mermaid diagrams.\n\n## Step 1: Analyze Changes\n\nIf git is in a feature branch, examine all commit messages and the full diff to understand the overall changes. Analyze the diff for diagram opportunities (see Diagrams section below).\n\n## Step 2: Draft Title and Description\n\nRun `/github-voice` to load writing style rules before drafting.\n\nDraft a title and description, embedding any diagrams in the body. Output the drafted title and description as chat text so the user can review it.\n\n## Step 3: Confirm and Create\n\nUse `AskUserQuestion` for confirmation only. Create the PR with `gh pr create`. Do not set `--assignee` unless the user explicitly asks to assign someone.\n\n## Diagrams\n\nGitHub renders Mermaid natively in PR descriptions via ` ```mermaid ` code blocks. Include diagrams only when they add clarity a text description can't — skip for trivial changes or obvious flows.\n\n### Sequence Diagram\n\nInclude when the changes introduce or modify a clear runtime flow: API endpoints, event handlers, pipelines, multi-service interactions, webhook flows.\n\n````markdown\n```mermaid\nsequenceDiagram\n  Client->>API: POST /payments\n  API->>PaymentService: processPayment()\n  PaymentService->>StripeClient: charge()\n  StripeClient-->>PaymentService: confirmation\n  PaymentService->>DB: save()\n```\n````\n\n### State Diagram\n\nInclude when the changes add or modify entity states, status enums, workflow transitions, or lifecycle hooks.\n\n````markdown\n```mermaid\nstateDiagram-v2\n  [*] --> Draft\n  Draft --> Pending: submit()\n  Pending --> Approved: approve()\n  Pending --> Rejected: reject()\n  Approved --> [*]\n```\n````\n\n### Rules\n\n- Only include when the diagram genuinely adds clarity\n- Keep diagrams focused — max ~10 nodes/transitions\n- Use descriptive labels on arrows (method names, HTTP verbs)\n- Place diagrams after the summary paragraph under a `## Flow` or `## State Machine` heading\n- One diagram per type max — don't include both unless the PR truly has both patterns","tags":["create","turbo","tobihagemann","agent-skills","claude-code","claude-skills","developer-tools","skills"],"capabilities":["skill","source-tobihagemann","skill-create-pr","topic-agent-skills","topic-claude-code","topic-claude-skills","topic-developer-tools","topic-skills"],"categories":["turbo"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/tobihagemann/turbo/create-pr","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add tobihagemann/turbo","source_repo":"https://github.com/tobihagemann/turbo","install_from":"skills.sh"}},"qualityScore":"0.590","qualityRationale":"deterministic score 0.59 from registry signals: · indexed on github topic:agent-skills · 280 github stars · SKILL.md body (2,232 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-22T00:54:08.606Z","embedding":null,"createdAt":"2026-04-18T22:03:36.801Z","updatedAt":"2026-04-22T00:54:08.606Z","lastSeenAt":"2026-04-22T00:54:08.606Z","tsv":"'/github-voice':120 '/payments':244 '1':80 '10':304 '2':114 '3':155 'add':200,263,298 'analyz':81,103 'api':227,242,245 'approach':64 'approv':285,286,290 'arrow':310 'ask':19,179 'askuserquest':160 'assign':181 'assigne':174 'block':194 'bodi':138 'branch':89 'chang':56,68,82,102,210,219,262 'charg':250 'chat':146 'clariti':201,299 'clear':70,224 'client':241 'code':193 'commit':92 'concis':40 'confirm':156,162,253 'creat':2,4,21,24,35,158,164,170 'create-pr':1 'db':255 'descript':14,42,118,132,144,190,204,307 'diagram':78,107,110,135,183,196,215,258,296,301,316,329 'diff':97,105 'draft':11,38,115,127,128,141,280,281 'embed':133 'endpoint':228 'entiti':266 'enum':269 'event':229 'examin':90 'explain':51 'explicit':178 'featur':88 'flow':72,213,226,237,323 'focus':302 'full':96 'general':63 'genuin':297 'gh':168 'git':84 'github':6,184 'handler':230 'head':327 'hook':274 'http':313 'includ':76,195,216,259,293,335 'interact':235 'introduc':220 'involv':69 'keep':300 'label':308 'lifecycl':273 'load':122 'machin':326 'markdown':238,275 'max':303,332 'mermaid':77,186,192,239,276 'messag':93 'method':311 'modifi':222,265 'multi':233 'multi-servic':232 'name':312 'nativ':187 'nodes/transitions':305 'obvious':212 'one':328 'open':28 'opportun':108 'output':139 'overal':101 'paragraph':47,320 'pattern':343 'paymentservic':246,248,252,254 'pend':282,284,287 'per':330 'pipelin':231 'place':315 'post':243 'pr':3,23,30,34,50,166,169,189,339 'problem':58 'processpay':247 'pull':7,26,36 'purpos':53 'reject':288,289 'render':185 'request':8,27,37 'review':152 'rule':125,291 'run':119 'runtim':71,225 'save':256 'section':111 'see':109 'sequenc':214 'sequencediagram':240 'servic':234 'set':173 'short':46 'skill' 'skill-create-pr' 'skip':207 'solv':60 'someon':182 'source-tobihagemann' 'state':74,257,267,325 'statediagram':278 'statediagram-v2':277 'status':268 'step':79,113,154 'stripecli':249,251 'style':124 'submit':32,283 'summari':319 'taken':65 'text':147,203 'titl':12,43,116,130,142 'topic-agent-skills' 'topic-claude-code' 'topic-claude-skills' 'topic-developer-tools' 'topic-skills' 'transit':75,271 'trivial':209 'truli':340 'type':331 'understand':99 'unless':175,337 'use':15,159,306 'user':18,150,177 'v2':279 'verb':314 'via':191 'webhook':236 'workflow':270 'write':123","prices":[{"id":"bcb571bf-21bb-4670-92c4-7db533922fa2","listingId":"ab1cba28-048b-4199-96d8-45bf998823b0","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"tobihagemann","category":"turbo","install_from":"skills.sh"},"createdAt":"2026-04-18T22:03:36.801Z"}],"sources":[{"listingId":"ab1cba28-048b-4199-96d8-45bf998823b0","source":"github","sourceId":"tobihagemann/turbo/create-pr","sourceUrl":"https://github.com/tobihagemann/turbo/tree/main/skills/create-pr","isPrimary":false,"firstSeenAt":"2026-04-18T22:03:36.801Z","lastSeenAt":"2026-04-22T00:54:08.606Z"}],"details":{"listingId":"ab1cba28-048b-4199-96d8-45bf998823b0","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"tobihagemann","slug":"create-pr","github":{"repo":"tobihagemann/turbo","stars":280,"topics":["agent-skills","claude-code","claude-skills","developer-tools","skills"],"license":"mit","html_url":"https://github.com/tobihagemann/turbo","pushed_at":"2026-04-21T12:22:12Z","description":"A composable dev process for Claude Code, packaged as modular skills.","skill_md_sha":"0486cd3e12f4b659d05ecca870cdc7798515bd6b","skill_md_path":"skills/create-pr/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/tobihagemann/turbo/tree/main/skills/create-pr"},"layout":"multi","source":"github","category":"turbo","frontmatter":{"name":"create-pr","description":"Create a GitHub pull request with a drafted title and description. Use when the user asks to \"create a PR\", \"create a pull request\", \"open a PR\", or \"submit a PR\"."},"skills_sh_url":"https://skills.sh/tobihagemann/turbo/create-pr"},"updatedAt":"2026-04-22T00:54:08.606Z"}}