{"id":"a49295f2-aced-4ca8-a298-1f2d78d4f66c","shortId":"SqPZz9","kind":"skill","title":"skill-creator","tagline":"Guide for creating effective skills for Apollo GraphQL and GraphQL development. Use this skill when: (1) users want to create a new skill, (2) users want to update an existing skill, (3) users ask about skill structure or best practices, (4) users need help writing SKILL.md files","description":"# Skill Creator Guide\n\nThis guide helps you create effective skills for Apollo GraphQL and GraphQL development following the [Agent Skills specification](https://agentskills.io/specification).\n\n## What is a Skill?\n\nA skill is a directory containing instructions that extend an AI agent's capabilities with specialized knowledge, workflows, or tool integrations. Skills activate automatically when agents detect relevant tasks.\n\n## Directory Structure\n\nA skill requires at minimum a `SKILL.md` file:\n\n```\nskill-name/\n├── SKILL.md              # Required - main instructions\n├── references/           # Optional - detailed documentation\n│   ├── topic-a.md\n│   └── topic-b.md\n├── scripts/              # Optional - executable helpers\n│   └── validate.sh\n├── templates/            # Optional - config/code templates\n│   └── config.yaml\n└── assets/               # Optional - static resources (images, schemas, data files)\n```\n\n## SKILL.md Format\n\n### Frontmatter (Required)\n\n```yaml\n---\nname: skill-name\ndescription: >\n  A clear description of what this skill does and when to use it.\n  Include trigger conditions: (1) first condition, (2) second condition.\nlicense: MIT\ncompatibility: Works with Claude Code and similar AI coding assistants.\nmetadata:\n  author: your-org\n  version: \"1.0.0\"\nallowed-tools: Read Write Edit Glob Grep\n---\n```\n\n### Frontmatter Fields\n\n| Field | Required | Description |\n|-------|----------|-------------|\n| `name` | Yes | Lowercase, hyphens only. Must match directory name. Max 64 chars. |\n| `description` | Yes | What the skill does and when to use it. Max 1024 chars. |\n| `license` | No | License name (e.g., MIT, Apache-2.0). |\n| `compatibility` | No | Environment requirements. Max 500 chars. |\n| `metadata` | No | Key-value pairs for author, version, etc. |\n| `allowed-tools` | No | Space-delimited list of pre-approved tools. Do not include `Bash(curl:*)`. |\n\n### Name Rules\n\n- Use lowercase letters, numbers, and hyphens only\n- Do not start or end with a hyphen\n- Do not use consecutive hyphens (`--`)\n- Must match the parent directory name\n\nGood: `apollo-client`, `graphql-schema`, `rover`\nBad: `Apollo-Client`, `-apollo`, `apollo--client`\n\n### Description Best Practices\n\nWrite descriptions that help agents identify when to activate the skill:\n\n```yaml\n# Good - specific triggers and use cases\ndescription: >\n  Guide for designing GraphQL schemas following industry best practices. Use this skill when:\n  (1) designing a new GraphQL schema or API,\n  (2) reviewing existing schema for improvements,\n  (3) deciding on type structures or nullability,\n  (4) implementing pagination or error patterns.\n\n# Bad - vague and unhelpful\ndescription: Helps with GraphQL stuff.\n```\n\n## Body Content\n\nThe markdown body contains instructions the agent follows. Structure it for clarity:\n\n### Recommended Sections\n\n1. **Overview** - Brief explanation of the skill's purpose\n2. **Process** - Step-by-step workflow (use checkboxes for multi-step processes)\n3. **Quick Reference** - Common patterns and syntax\n4. **Reference Files** - Links to detailed documentation\n5. **Key Rules** - Important guidelines organized by topic\n6. **Ground Rules** - Critical do's and don'ts\n\n### Example Structure\n\n```markdown\n# Skill Title\n\nBrief overview of what this skill helps with.\n\n## Process\n\nFollow this process when working on [task]:\n\n- [ ] Step 1: Research and understand requirements\n- [ ] Step 2: Implement the solution\n- [ ] Step 3: Validate the result\n\n## Quick Reference\n\n### Common Pattern\n\n\\`\\`\\`graphql\ntype Example {\n  id: ID!\n  name: String\n}\n\\`\\`\\`\n\n## Reference Files\n\n- [Topic A](references/topic-a.md) - Detailed guide for topic A\n- [Topic B](references/topic-b.md) - Detailed guide for topic B\n\n## Key Rules\n\n### Category One\n\n- Rule about this category\n- Another rule\n\n### Category Two\n\n- Rule about this category\n\n## Ground Rules\n\n- ALWAYS do this important thing\n- NEVER do this problematic thing\n- PREFER this approach over that approach\n```\n\n## Progressive Disclosure\n\nStructure skills to minimize context usage:\n\n1. **Metadata** (~100 tokens): `name` and `description` load at startup for all skills\n2. **Instructions** (< 5000 tokens): Full `SKILL.md` loads when skill activates\n3. **References** (as needed): Files in `references/` load only when required\n\nKeep `SKILL.md` under 500 lines. Move detailed documentation to reference files.\n\n## Reference Files\n\nUse `references/` for detailed documentation:\n\n```\nreferences/\n├── setup.md          # Installation and configuration\n├── patterns.md       # Common patterns and examples\n├── troubleshooting.md # Error solutions\n└── api.md            # API reference\n```\n\nReference files should be:\n\n- Focused on a single topic\n- Self-contained (readable without other files)\n- Under 300 lines each\n\nLink to references from `SKILL.md`:\n\n```markdown\n## Reference Files\n\n- [Setup](references/setup.md) - Installation and configuration\n- [Patterns](references/patterns.md) - Common patterns and examples\n```\n\n## Scripts\n\nUse `scripts/` for executable helpers agents can run:\n\n```\nscripts/\n├── validate.sh       # Validation commands\n├── setup.py          # Setup automation\n└── check-version.sh  # Version checking\n```\n\nScripts should be self-contained, include error handling, and have a usage comment at the top. Pre-approve them in `allowed-tools` (e.g., `Bash(./scripts/validate.sh:*)`).\n\n## Templates\n\nUse `templates/` for config files, boilerplate, or starter code:\n\n```\ntemplates/\n├── config.yaml       # Default configuration\n├── config-v2.yaml    # Version-specific variant\n└── example-app/      # Starter project\n```\n\nTemplates are copied or adapted by the agent — not executed directly.\n\n## Writing Style\n\nFollow the Apollo Voice for all skill content:\n\n### Tone\n\n- Approachable and helpful\n- Opinionated and authoritative (prescribe the \"happy path\")\n- Direct and action-oriented\n\n### Language\n\n- Use American English\n- Keep language simple; avoid idioms\n- Use present tense and active voice\n- Use imperative verbs for instructions\n\n### Formatting\n\n- Use sentence casing for headings\n- Use code font for symbols, commands, file paths, and URLs\n- Use bold for UI elements users click\n- Use hyphens (-) for unordered lists\n\n### Avoid\n\n- \"Simply\", \"just\", \"easy\" (can be condescending)\n- Vague phrases like \"click here\"\n- Semicolons (use periods instead)\n- \"We\" unless clearly referring to Apollo\n\n## Reference Files\n\nFor Apollo GraphQL-specific guidance:\n\n- [Apollo Skills](references/apollo-skills.md) - Patterns and examples for Apollo GraphQL skills\n\n## Versioning\n\nUse semantic versioning (`\"X.Y.Z\"`) for the `version` field in metadata:\n\n```yaml\nmetadata:\n  author: apollographql\n  version: \"1.0.0\"\n```\n\n- **Major (X)**: Breaking changes that alter how the skill behaves or activates (e.g., renamed triggers, removed sections, changed ground rules)\n- **Minor (Y)**: New content or capabilities that are backward-compatible (e.g., added reference files, new sections, expanded examples)\n- **Patch (Z)**: Small fixes that don't change behavior (e.g., typo corrections, wording tweaks, formatting fixes)\n\nStart new skills at `\"1.0.0\"`.\n\n## Checklist for New Skills\n\nBefore publishing a skill, verify:\n\n- [ ] `name` matches directory name and follows naming rules\n- [ ] `description` clearly states what the skill does and when to use it\n- [ ] `SKILL.md` is under 500 lines\n- [ ] Reference files are focused and under 300 lines each\n- [ ] Instructions are clear and actionable\n- [ ] Code examples are correct and tested\n- [ ] Ground rules use ALWAYS/NEVER/PREFER format\n- [ ] Content follows Apollo Voice guidelines\n\n## Ground Rules\n\n- ALWAYS include trigger conditions in the description (use numbered list)\n- ALWAYS use checkboxes for multi-step processes\n- ALWAYS link to reference files for detailed documentation\n- NEVER exceed 500 lines in SKILL.md\n- NEVER use vague descriptions that don't help agents identify when to activate\n- PREFER specific examples over abstract explanations\n- PREFER opinionated guidance over listing multiple options\n- USE `allowed-tools` to pre-approve tools the skill needs\n- NEVER include `Bash(curl:*)` in `allowed-tools` as it grants unrestricted network access and enables `curl | sh` remote code execution patterns","tags":["skill","creator","skills","apollographql","agent-skills","apollo","graphql"],"capabilities":["skill","source-apollographql","skill-skill-creator","topic-agent-skills","topic-apollo","topic-graphql"],"categories":["skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/apollographql/skills/skill-creator","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add apollographql/skills","source_repo":"https://github.com/apollographql/skills","install_from":"skills.sh"}},"qualityScore":"0.726","qualityRationale":"deterministic score 0.73 from registry signals: · indexed on github topic:agent-skills · official publisher · 52 github stars · SKILL.md body (8,237 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:56:15.756Z","embedding":null,"createdAt":"2026-04-18T22:17:28.823Z","updatedAt":"2026-04-22T00:56:15.756Z","lastSeenAt":"2026-04-22T00:56:15.756Z","tsv":"'-2.0':246 '/scripts/validate.sh':727 '/specification).':74 '1':19,175,360,412,488,574 '1.0.0':199,893,953 '100':576 '1024':237 '2':27,178,368,421,494,587 '3':35,374,435,499,597 '300':659,994 '4':44,381,442 '5':449 '500':252,611,986,1048 '5000':589 '6':457 '64':223 'abstract':1069 'access':1103 'action':787,1001 'action-ori':786 'activ':101,336,596,802,905,1064 'ad':926 'adapt':756 'agent':69,90,104,332,404,687,759,1060 'agentskills.io':73 'agentskills.io/specification).':72 'ai':89,190 'allow':201,265,723,1080,1096 'allowed-tool':200,264,722,1079,1095 'alter':899 'alway':550,1020,1030,1038 'always/never/prefer':1011 'american':791 'anoth':540 'apach':245 'api':367,640 'api.md':639 'apollo':10,62,312,320,322,323,767,858,862,867,874,1015 'apollo-cli':311,319 'apollographql':891 'app':749 'approach':562,565,774 'approv':275,719,1085 'ask':37 'asset':141 'assist':192 'author':194,261,890 'authorit':779 'autom':696 'automat':102 'avoid':796,837 'b':525,531 'backward':923 'backward-compat':922 'bad':318,387 'bash':280,726,1092 'behav':903 'behavior':941 'best':42,326,354 'bodi':396,400 'boilerpl':734 'bold':826 'break':896 'brief':414,471 'capabl':92,919 'case':345,812 'categori':534,539,542,547 'chang':897,911,940 'char':224,238,253 'check':699 'check-version.sh':697 'checkbox':429,1032 'checklist':954 'clariti':409 'claud':186 'clear':160,855,972,999 'click':831,847 'client':313,321,324 'code':187,191,737,816,1002,1109 'command':693,820 'comment':713 'common':438,505,632,677 'compat':183,247,924 'condescend':843 'condit':174,177,180,1023 'config':732 'config-v2.yaml':742 'config.yaml':140,739 'config/code':138 'configur':630,674,741 'consecut':302 'contain':84,401,653,705 'content':397,772,917,1013 'context':572 'copi':754 'correct':944,1005 'creat':6,23,58 'creator':3,52 'critic':460 'curl':281,1093,1106 'data':147 'decid':375 'default':740 'delimit':270 'descript':158,161,212,225,325,329,346,391,580,971,1026,1055 'design':349,361 'detail':127,447,519,527,614,624,1044 'detect':105 'develop':14,66 'direct':762,784 'directori':83,108,220,308,965 'disclosur':567 'document':128,448,615,625,1045 'e.g':243,725,906,925,942 'easi':840 'edit':205 'effect':7,59 'element':829 'enabl':1105 'end':295 'english':792 'environ':249 'error':385,637,707 'etc':263 'exampl':466,509,635,680,748,872,932,1003,1067 'example-app':747 'exceed':1047 'execut':133,685,761,1110 'exist':33,370 'expand':931 'explan':415,1070 'extend':87 'field':209,210,885 'file':50,117,148,444,515,601,618,620,643,657,669,733,821,860,928,989,1042 'first':176 'fix':936,948 'focus':646,991 'follow':67,352,405,480,765,968,1014 'font':817 'format':150,809,947,1012 'frontmatt':151,208 'full':591 'glob':206 'good':310,340 'grant':1100 'graphql':11,13,63,65,315,350,364,394,507,864,875 'graphql-schema':314 'graphql-specif':863 'grep':207 'ground':458,548,912,1008,1018 'guid':4,53,55,347,520,528 'guidanc':866,1073 'guidelin':453,1017 'handl':708 'happi':782 'head':814 'help':47,56,331,392,477,776,1059 'helper':134,686 'hyphen':216,289,298,303,833 'id':510,511 'identifi':333,1061 'idiom':797 'imag':145 'imper':805 'implement':382,495 'import':452,553 'improv':373 'includ':172,279,706,1021,1091 'industri':353 'instal':628,672 'instead':852 'instruct':85,124,402,588,808,997 'integr':99 'keep':608,793 'key':257,450,532 'key-valu':256 'knowledg':95 'languag':789,794 'letter':286 'licens':181,239,241 'like':846 'line':612,660,987,995,1049 'link':445,662,1039 'list':271,836,1029,1075 'load':581,593,604 'lowercas':215,285 'main':123 'major':894 'markdown':399,468,667 'match':219,305,964 'max':222,236,251 'metadata':193,254,575,887,889 'minim':571 'minimum':114 'minor':914 'mit':182,244 'move':613 'multi':432,1035 'multi-step':431,1034 'multipl':1076 'must':218,304 'name':120,154,157,213,221,242,282,309,512,578,963,966,969 'need':46,600,1089 'network':1102 'never':555,1046,1052,1090 'new':25,363,916,929,950,956 'nullabl':380 'number':287,1028 'one':535 'opinion':777,1072 'option':126,132,137,142,1077 'org':197 'organ':454 'orient':788 'overview':413,472 'pagin':383 'pair':259 'parent':307 'patch':933 'path':783,822 'pattern':386,439,506,633,675,678,870,1111 'patterns.md':631 'period':851 'phrase':845 'practic':43,327,355 'pre':274,718,1084 'pre-approv':273,717,1083 'prefer':560,1065,1071 'prescrib':780 'present':799 'problemat':558 'process':422,434,479,482,1037 'progress':566 'project':751 'publish':959 'purpos':420 'quick':436,503 'read':203 'readabl':654 'recommend':410 'refer':125,437,443,504,514,598,603,617,619,622,626,641,642,664,668,856,859,927,988,1041 'references/apollo-skills.md':869 'references/patterns.md':676 'references/setup.md':671 'references/topic-a.md':518 'references/topic-b.md':526 'relev':106 'remot':1108 'remov':909 'renam':907 'requir':112,122,152,211,250,492,607 'research':489 'resourc':144 'result':502 'review':369 'rover':317 'rule':283,451,459,533,536,541,544,549,913,970,1009,1019 'run':689 'schema':146,316,351,365,371 'script':131,681,683,690,700 'second':179 'section':411,910,930 'self':652,704 'self-contain':651,703 'semant':879 'semicolon':849 'sentenc':811 'setup':670,695 'setup.md':627 'setup.py':694 'sh':1107 'similar':189 'simpl':795 'simpli':838 'singl':649 'skill':2,8,17,26,34,39,51,60,70,78,80,100,111,119,156,165,229,338,358,418,469,476,569,586,595,771,868,876,902,951,957,961,976,1088 'skill-creat':1 'skill-nam':118,155 'skill-skill-creator' 'skill.md':49,116,121,149,592,609,666,983,1051 'small':935 'solut':497,638 'source-apollographql' 'space':269 'space-delimit':268 'special':94 'specif':71,341,745,865,1066 'start':293,949 'starter':736,750 'startup':583 'state':973 'static':143 'step':424,426,433,487,493,498,1036 'step-by-step':423 'string':513 'structur':40,109,378,406,467,568 'stuff':395 'style':764 'symbol':819 'syntax':441 'task':107,486 'templat':136,139,728,730,738,752 'tens':800 'test':1007 'thing':554,559 'titl':470 'token':577,590 'tone':773 'tool':98,202,266,276,724,1081,1086,1097 'top':716 'topic':456,516,522,524,530,650 'topic-a.md':129 'topic-agent-skills' 'topic-apollo' 'topic-b.md':130 'topic-graphql' 'trigger':173,342,908,1022 'troubleshooting.md':636 'ts':465 'tweak':946 'two':543 'type':377,508 'typo':943 'ui':828 'understand':491 'unhelp':390 'unless':854 'unord':835 'unrestrict':1101 'updat':31 'url':824 'usag':573,712 'use':15,170,234,284,301,344,356,428,621,682,729,790,798,804,810,815,825,832,850,878,981,1010,1027,1031,1053,1078 'user':20,28,36,45,830 'vagu':388,844,1054 'valid':500,692 'validate.sh':135,691 'valu':258 'variant':746 'verb':806 'verifi':962 'version':198,262,698,744,877,880,884,892 'version-specif':743 'voic':768,803,1016 'want':21,29 'without':655 'word':945 'work':184,484 'workflow':96,427 'write':48,204,328,763 'x':895 'x.y.z':881 'y':915 'yaml':153,339,888 'yes':214,226 'your-org':195 'z':934","prices":[{"id":"155af124-f6eb-47cc-9411-3571ef177a54","listingId":"a49295f2-aced-4ca8-a298-1f2d78d4f66c","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"apollographql","category":"skills","install_from":"skills.sh"},"createdAt":"2026-04-18T22:17:28.823Z"}],"sources":[{"listingId":"a49295f2-aced-4ca8-a298-1f2d78d4f66c","source":"github","sourceId":"apollographql/skills/skill-creator","sourceUrl":"https://github.com/apollographql/skills/tree/main/skills/skill-creator","isPrimary":false,"firstSeenAt":"2026-04-18T22:17:28.823Z","lastSeenAt":"2026-04-22T00:56:15.756Z"}],"details":{"listingId":"a49295f2-aced-4ca8-a298-1f2d78d4f66c","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"apollographql","slug":"skill-creator","github":{"repo":"apollographql/skills","stars":52,"topics":["agent-skills","apollo","graphql"],"license":"mit","html_url":"https://github.com/apollographql/skills","pushed_at":"2026-04-16T16:01:23Z","description":"Apollo GraphQL Agent Skills","skill_md_sha":"743930be185e604c3a47cca94fb65a434460d3b4","skill_md_path":"skills/skill-creator/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/apollographql/skills/tree/main/skills/skill-creator"},"layout":"multi","source":"github","category":"skills","frontmatter":{"name":"skill-creator","license":"MIT","description":"Guide for creating effective skills for Apollo GraphQL and GraphQL development. Use this skill when: (1) users want to create a new skill, (2) users want to update an existing skill, (3) users ask about skill structure or best practices, (4) users need help writing SKILL.md files.","compatibility":"Works with Claude Code and similar AI coding assistants that support Agent Skills."},"skills_sh_url":"https://skills.sh/apollographql/skills/skill-creator"},"updatedAt":"2026-04-22T00:56:15.756Z"}}