{"id":"9dcd012f-1c7e-4892-bd2a-1d0c477a4cc5","shortId":"q8NCZS","kind":"skill","title":"create-skill","tagline":"Create a new skill or update an existing skill that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations. Use when the user asks to \"create a skill\", \"make a new skill\", \"build a skill\", \"scaffold a skill\", \"write a skill for...\", or \"new skil","description":"# Create Skill\n\nThis skill guides the creation of effective skills. For conceptual background, structure details, and writing best practices, read [references/best-practices.md](references/best-practices.md).\n\n## Step 1: Understanding the Skill with Concrete Examples\n\nSkip this step only when the skill's usage patterns are already clearly understood. It remains valuable even when working with an existing skill.\n\nTo create an effective skill, clearly understand concrete examples of how the skill will be used. This understanding can come from either direct user examples or generated examples that are validated with user feedback.\n\nFor example, when building an image-editor skill, relevant questions include:\n\n- \"What functionality should the image-editor skill support? Editing, rotating, anything else?\"\n- \"Can you give some examples of how this skill would be used?\"\n- \"I can imagine users asking for things like 'Remove the red-eye from this image' or 'Rotate this image'. Are there other ways you imagine this skill being used?\"\n- \"What would a user say that should trigger this skill?\"\n\nTo avoid overwhelming users, avoid asking too many questions in a single message. Start with the most important questions and follow up as needed for better effectiveness.\n\nConclude this step when there is a clear sense of the functionality the skill should support.\n\n## Step 2: Planning the Reusable Skill Contents\n\nTo turn concrete examples into an effective skill, analyze each example by:\n\n1. Considering how to execute on the example from scratch\n2. Identifying what scripts, references, and assets would be helpful when executing these workflows repeatedly\n\nExample: When building a `pdf-editor` skill to handle queries like \"Help me rotate this PDF,\" the analysis shows:\n\n1. Rotating a PDF requires re-writing the same code each time\n2. A `scripts/rotate_pdf.py` script would be helpful to store in the skill\n\nExample: When designing a `frontend-webapp-builder` skill for queries like \"Build me a todo app\" or \"Build me a dashboard to track my steps,\" the analysis shows:\n\n1. Writing a frontend webapp requires the same boilerplate HTML/React each time\n2. An `assets/hello-world/` template containing the boilerplate HTML/React project files would be helpful to store in the skill\n\nExample: When building a `big-query` skill to handle queries like \"How many users have logged in today?\" the analysis shows:\n\n1. Querying BigQuery requires re-discovering the table schemas and relationships each time\n2. A `references/schema.md` file documenting the table schemas would be helpful to store in the skill\n\nTo establish the skill's contents, analyze each concrete example to create a list of the reusable resources to include: scripts, references, and assets.\n\n## Step 3: Initializing the Skill\n\nSkip this step if the skill being developed already exists and iteration is needed. In this case, continue to the next step.\n\nWhen creating a new skill from scratch, create the skill directory with:\n\n- A `SKILL.md` file with proper YAML frontmatter (`name` and `description`) and TODO placeholders for the body\n- Resource directories as needed: `scripts/`, `references/`, and/or `assets/`\n\nAfter initialization, customize or remove the generated files as needed.\n\n## Step 4: Edit the Skill\n\nWhen editing the (newly-generated or existing) skill, remember that the skill is being created for another instance of Claude to use. Focus on including information that would be beneficial and non-obvious to Claude. Consider what procedural knowledge, domain-specific details, or reusable assets would help another Claude instance execute these tasks more effectively.\n\nTo begin implementation, start with the reusable resources identified above: `scripts/`, `references/`, and `assets/` files. Note that this step may require user input. For example, when implementing a `brand-guidelines` skill, the user may need to provide brand assets or templates to store in `assets/`, or documentation to store in `references/`.\n\nRead [references/best-practices.md](references/best-practices.md) for writing style, structure, and content guidelines before writing SKILL.md.\n\n## Task Tracking\n\nAt the start of Step 5, use `TaskCreate` to create a task for each remaining step:\n\n- \"Review the skill\" for Step 5\n- \"Run /evaluate-findings skill\" for Step 6\n- \"Run /apply-findings skill\" for Step 7\n\n## Step 5: Review the Skill\n\nAfter writing all files, spawn a subagent (`model: \"opus\"`, do not set `run_in_background`) to review the skill. The subagent should read [references/skill-reviewer.md](references/skill-reviewer.md) for review guidelines, read all skill files, and produce a review report following the format in the guidelines.\n\n- **For new skills**, frame the review as open-ended: propose improvements, convention checks, writing quality.\n- **For modified skills** (simplification, restructuring, bug fix), frame the review as regression-focused: check whether the change broke anything. Tell the reviewer not to propose new features.\n- **For same-session iteration** (re-reviewing a skill after applying findings from a previous review in the same session), treat as modified: the review is checking whether the fixes broke anything.\n- **For batch changes** (multiple skills created or modified in the same session), launch parallel review subagents in a single message with multiple Agent tool calls, one per skill, so they run concurrently.\n\n## Step 6: Run `/evaluate-findings` Skill\n\nRun the `/evaluate-findings` skill on the review findings.\n\n## Step 7: Run `/apply-findings` Skill\n\nRun the `/apply-findings` skill on the evaluated findings.","tags":["create","skill","turbo","tobihagemann","agent-skills","claude-code","claude-skills","developer-tools","skills"],"capabilities":["skill","source-tobihagemann","skill-create-skill","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-skill","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 (5,636 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.756Z","embedding":null,"createdAt":"2026-04-18T22:03:37.601Z","updatedAt":"2026-04-22T00:54:08.756Z","lastSeenAt":"2026-04-22T00:54:08.756Z","tsv":"'/apply-findings':715,893,897 '/evaluate-findings':709,880,884 '1':74,278,323,377,429 '2':260,288,336,389,443 '3':484 '4':557 '5':691,707,721 '6':713,878 '7':719,891 'agent':867 'alreadi':92,496 'analysi':321,375,427 'analyz':274,465 'and/or':544 'anoth':578,611 'anyth':162,803,844 'app':364 'appli':823 'ask':29,180,221 'asset':294,482,545,608,632,658,664 'assets/hello-world':391 'avoid':217,220 'background':63,739 'batch':846 'begin':620 'benefici':591 'best':68 'better':241 'big':412 'big-queri':411 'bigqueri':431 'bodi':537 'boilerpl':385,395 'brand':648,657 'brand-guidelin':647 'broke':802,843 'bug':789 'build':38,142,305,360,366,409 'builder':355 'call':869 'capabl':17 'case':504 'chang':801,847 'check':781,798,839 'claud':15,581,597,612 'clear':93,110,250 'code':333 'come':124 'conceptu':62 'conclud':243 'concret':79,112,268,467 'concurr':876 'consid':279,598 'contain':393 'content':265,464,679 'continu':505 'convent':780 'creat':2,4,31,51,106,470,511,517,576,695,850 'create-skil':1 'creation':57 'custom':548 'dashboard':369 'descript':531 'design':350 'detail':65,605 'develop':495 'direct':127 'directori':520,539 'discov':435 'document':447,666 'domain':603 'domain-specif':602 'edit':160,558,562 'editor':146,157,309 'effect':59,108,242,272,618 'either':126 'els':163 'end':777 'establish':460 'evalu':901 'even':98 'exampl':80,113,129,132,140,168,269,276,285,303,348,407,468,643 'execut':282,299,614 'exist':11,103,497,568 'extend':14 'eye':188 'featur':811 'feedback':138 'file':398,446,524,553,633,728,756 'find':824,889,902 'fix':790,842 'focus':584,797 'follow':236,762 'format':764 'frame':771,791 'frontend':353,380 'frontend-webapp-build':352 'frontmatt':528 'function':152,254 'generat':131,552,566 'give':166 'guid':55 'guidelin':649,680,752,767 'handl':312,416 'help':297,315,342,401,453,610 'html/react':386,396 'identifi':289,627 'imag':145,156,191,195 'image-editor':144,155 'imagin':178,201 'implement':621,645 'import':233 'improv':779 'includ':150,478,586 'inform':587 'initi':485,547 'input':641 'instanc':579,613 'integr':24 'iter':499,816 'knowledg':20,601 'launch':857 'like':183,314,359,418 'list':472 'log':423 'make':34 'mani':223,420 'may':638,653 'messag':228,864 'model':732 'modifi':785,835,852 'multipl':848,866 'name':529 'need':239,501,541,555,654 'new':6,36,49,513,769,810 'newli':565 'newly-gener':564 'next':508 'non':594 'non-obvi':593 'note':634 'obvious':595 'one':870 'open':776 'open-end':775 'opus':733 'overwhelm':218 'parallel':858 'pattern':90 'pdf':308,319,326 'pdf-editor':307 'per':871 'placehold':534 'plan':261 'practic':69 'previous':827 'procedur':600 'produc':758 'project':397 'proper':526 'propos':778,809 'provid':656 'qualiti':783 'queri':313,358,413,417,430 'question':149,224,234 're':329,434,818 're-discov':433 're-review':817 're-writ':328 'read':70,671,747,753 'red':187 'red-ey':186 'refer':292,480,543,630,670 'references/best-practices.md':71,72,672,673 'references/schema.md':445 'references/skill-reviewer.md':748,749 'regress':796 'regression-focus':795 'relationship':440 'relev':148 'remain':96,700 'rememb':570 'remov':184,550 'repeat':302 'report':761 'requir':327,382,432,639 'resourc':476,538,626 'restructur':788 'reusabl':263,475,607,625 'review':702,722,741,751,760,773,793,806,819,828,837,859,888 'rotat':161,193,317,324 'run':708,714,737,875,879,882,892,895 'same-sess':813 'say':210 'scaffold':41 'schema':438,450 'scratch':287,516 'script':291,339,479,542,629 'scripts/rotate_pdf.py':338 'sens':251 'session':815,832,856 'set':736 'show':322,376,428 'simplif':787 'singl':227,863 'skil':50 'skill':3,7,12,33,37,40,43,46,52,54,60,77,87,104,109,117,147,158,172,203,215,256,264,273,310,347,356,406,414,458,462,487,493,514,519,560,569,573,650,704,710,716,724,743,755,770,786,821,849,872,881,885,894,898 'skill-create-skill' 'skill.md':523,683 'skip':81,488 'source-tobihagemann' 'spawn':729 'special':19 'specif':604 'start':229,622,688 'step':73,83,245,259,373,483,490,509,556,637,690,701,706,712,718,720,877,890 'store':344,403,455,662,668 'structur':64,677 'style':676 'subag':731,745,860 'support':159,258 'tabl':437,449 'task':616,684,697 'taskcreat':693 'tell':804 'templat':392,660 'thing':182 'time':335,388,442 'today':425 'todo':363,533 'tool':23,868 'topic-agent-skills' 'topic-claude-code' 'topic-claude-skills' 'topic-developer-tools' 'topic-skills' 'track':371,685 'treat':833 'trigger':213 'turn':267 'understand':75,111,122 'understood':94 'updat':9 'usag':89 'use':25,120,175,205,583,692 'user':28,128,137,179,209,219,421,640,652 'valid':135 'valuabl':97 'way':199 'webapp':354,381 'whether':799,840 'work':100 'workflow':21,301 'would':173,207,295,340,399,451,589,609 'write':44,67,330,378,675,682,726,782 'yaml':527","prices":[{"id":"6bf9f7f4-4e21-44cc-b6a8-3d52cfa7c78f","listingId":"9dcd012f-1c7e-4892-bd2a-1d0c477a4cc5","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:37.601Z"}],"sources":[{"listingId":"9dcd012f-1c7e-4892-bd2a-1d0c477a4cc5","source":"github","sourceId":"tobihagemann/turbo/create-skill","sourceUrl":"https://github.com/tobihagemann/turbo/tree/main/skills/create-skill","isPrimary":false,"firstSeenAt":"2026-04-18T22:03:37.601Z","lastSeenAt":"2026-04-22T00:54:08.756Z"}],"details":{"listingId":"9dcd012f-1c7e-4892-bd2a-1d0c477a4cc5","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"tobihagemann","slug":"create-skill","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":"6878f5a7fee6c4f38f1f2e0e1fb69d271dccd8be","skill_md_path":"skills/create-skill/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/tobihagemann/turbo/tree/main/skills/create-skill"},"layout":"multi","source":"github","category":"turbo","frontmatter":{"name":"create-skill","description":"Create a new skill or update an existing skill that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations. Use when the user asks to \"create a skill\", \"make a new skill\", \"build a skill\", \"scaffold a skill\", \"write a skill for...\", or \"new skill that does...\"."},"skills_sh_url":"https://skills.sh/tobihagemann/turbo/create-skill"},"updatedAt":"2026-04-22T00:54:08.756Z"}}