Agent skill
skill-creator
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.
Install this agent skill to your Project
npx add-skill https://github.com/apollographql/skills/tree/main/skills/skill-creator
Metadata
Additional technical details for this skill
- author
- apollographql
- version
- 1.0.0
SKILL.md
Skill Creator Guide
This guide helps you create effective skills for Apollo GraphQL and GraphQL development following the Agent Skills specification.
What is a Skill?
A 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.
Directory Structure
A skill requires at minimum a SKILL.md file:
skill-name/
├── SKILL.md # Required - main instructions
└── references/ # Optional - detailed documentation
├── topic-a.md
└── topic-b.md
SKILL.md Format
Frontmatter (Required)
---
name: skill-name
description: >
A clear description of what this skill does and when to use it.
Include trigger conditions: (1) first condition, (2) second condition.
license: MIT
compatibility: Works with Claude Code and similar AI coding assistants.
metadata:
author: your-org
version: "1.0.0"
allowed-tools: Read Write Edit Glob Grep
---
Frontmatter Fields
| Field | Required | Description |
|---|---|---|
name |
Yes | Lowercase, hyphens only. Must match directory name. Max 64 chars. |
description |
Yes | What the skill does and when to use it. Max 1024 chars. |
license |
No | License name (e.g., MIT, Apache-2.0). |
compatibility |
No | Environment requirements. Max 500 chars. |
metadata |
No | Key-value pairs for author, version, etc. |
allowed-tools |
No | Space-delimited list of pre-approved tools. Do not include Bash(curl:*). |
Name Rules
- Use lowercase letters, numbers, and hyphens only
- Do not start or end with a hyphen
- Do not use consecutive hyphens (
--) - Must match the parent directory name
Good: apollo-client, graphql-schema, rover
Bad: Apollo-Client, -apollo, apollo--client
Description Best Practices
Write descriptions that help agents identify when to activate the skill:
# Good - specific triggers and use cases
description: >
Guide for designing GraphQL schemas following industry best practices. Use this skill when:
(1) designing a new GraphQL schema or API,
(2) reviewing existing schema for improvements,
(3) deciding on type structures or nullability,
(4) implementing pagination or error patterns.
# Bad - vague and unhelpful
description: Helps with GraphQL stuff.
Body Content
The markdown body contains instructions the agent follows. Structure it for clarity:
Recommended Sections
- Overview - Brief explanation of the skill's purpose
- Process - Step-by-step workflow (use checkboxes for multi-step processes)
- Quick Reference - Common patterns and syntax
- Reference Files - Links to detailed documentation
- Key Rules - Important guidelines organized by topic
- Ground Rules - Critical do's and don'ts
Example Structure
# Skill Title
Brief overview of what this skill helps with.
## Process
Follow this process when working on [task]:
- [ ] Step 1: Research and understand requirements
- [ ] Step 2: Implement the solution
- [ ] Step 3: Validate the result
## Quick Reference
### Common Pattern
\`\`\`graphql
type Example {
id: ID!
name: String
}
\`\`\`
## Reference Files
- [Topic A](references/topic-a.md) - Detailed guide for topic A
- [Topic B](references/topic-b.md) - Detailed guide for topic B
## Key Rules
### Category One
- Rule about this category
- Another rule
### Category Two
- Rule about this category
## Ground Rules
- ALWAYS do this important thing
- NEVER do this problematic thing
- PREFER this approach over that approach
Progressive Disclosure
Structure skills to minimize context usage:
- Metadata (~100 tokens):
nameanddescriptionload at startup for all skills - Instructions (< 5000 tokens): Full
SKILL.mdloads when skill activates - References (as needed): Files in
references/load only when required
Keep SKILL.md under 500 lines. Move detailed documentation to reference files.
Reference Files
Use references/ for detailed documentation:
references/
├── setup.md # Installation and configuration
├── patterns.md # Common patterns and examples
├── troubleshooting.md # Error solutions
└── api.md # API reference
Reference files should be:
- Focused on a single topic
- Self-contained (readable without other files)
- Under 300 lines each
Link to references from SKILL.md:
## Reference Files
- [Setup](references/setup.md) - Installation and configuration
- [Patterns](references/patterns.md) - Common patterns and examples
Writing Style
Follow the Apollo Voice for all skill content:
Tone
- Approachable and helpful
- Opinionated and authoritative (prescribe the "happy path")
- Direct and action-oriented
Language
- Use American English
- Keep language simple; avoid idioms
- Use present tense and active voice
- Use imperative verbs for instructions
Formatting
- Use sentence casing for headings
- Use code font for symbols, commands, file paths, and URLs
- Use bold for UI elements users click
- Use hyphens (-) for unordered lists
Avoid
- "Simply", "just", "easy" (can be condescending)
- Vague phrases like "click here"
- Semicolons (use periods instead)
- "We" unless clearly referring to Apollo
Reference Files
For Apollo GraphQL-specific guidance:
- Apollo Skills - Patterns and examples for Apollo GraphQL skills
Versioning
Use semantic versioning ("X.Y.Z") for the version field in metadata:
metadata:
author: apollographql
version: "1.0.0"
- Major (X): Breaking changes that alter how the skill behaves or activates (e.g., renamed triggers, removed sections, changed ground rules)
- Minor (Y): New content or capabilities that are backward-compatible (e.g., added reference files, new sections, expanded examples)
- Patch (Z): Small fixes that don't change behavior (e.g., typo corrections, wording tweaks, formatting fixes)
Start new skills at "1.0.0".
Checklist for New Skills
Before publishing a skill, verify:
-
namematches directory name and follows naming rules -
descriptionclearly states what the skill does and when to use it -
SKILL.mdis under 500 lines - Reference files are focused and under 300 lines each
- Instructions are clear and actionable
- Code examples are correct and tested
- Ground rules use ALWAYS/NEVER/PREFER format
- Content follows Apollo Voice guidelines
Ground Rules
- ALWAYS include trigger conditions in the description (use numbered list)
- ALWAYS use checkboxes for multi-step processes
- ALWAYS link to reference files for detailed documentation
- NEVER exceed 500 lines in SKILL.md
- NEVER use vague descriptions that don't help agents identify when to activate
- PREFER specific examples over abstract explanations
- PREFER opinionated guidance over listing multiple options
- USE
allowed-toolsto pre-approve tools the skill needs - NEVER include
Bash(curl:*)inallowed-toolsas it grants unrestricted network access and enablescurl | shremote code execution patterns
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
apollo-client
Guide for building React applications with Apollo Client 4.x. Use this skill when: (1) setting up Apollo Client in a React project, (2) writing GraphQL queries or mutations with hooks, (3) configuring caching or cache policies, (4) managing local state with reactive variables, (5) troubleshooting Apollo Client errors or performance issues.
apollo-connectors
Guide for integrating REST APIs into GraphQL supergraphs using Apollo Connectors with @source and @connect directives. Use this skill when the user: (1) mentions "connectors", "Apollo Connectors", or "REST Connector", (2) wants to integrate a REST API into GraphQL, (3) references @source or @connect directives, (4) works with files containing "# Note to AI Friends: This is an Apollo Connectors schema".
apollo-server
Guide for building GraphQL servers with Apollo Server 5.x. Use this skill when: (1) setting up a new Apollo Server project, (2) writing resolvers or defining GraphQL schemas, (3) implementing authentication or authorization, (4) creating plugins or custom data sources, (5) troubleshooting Apollo Server errors or performance issues.
apollo-kotlin
Guide for building applications with Apollo Kotlin, the GraphQL client library for Android and Kotlin. Use this skill when: (1) setting up Apollo Kotlin in a Gradle project for Android, Kotlin/JVM, or KMP, (2) configuring schema download and codegen for GraphQL services, (3) configuring an `ApolloClient` with auth, interceptors, and caching, (4) writing queries, mutations, or subscriptions,
rust-best-practices
Guide for writing idiomatic Rust code based on Apollo GraphQL's best practices handbook. Use this skill when: (1) writing new Rust code or functions, (2) reviewing or refactoring existing Rust code, (3) deciding between borrowing vs cloning or ownership patterns, (4) implementing error handling with Result types, (5) optimizing Rust code for performance, (6) writing tests or documentation for Rust projects.
apollo-mcp-server
Guide for using Apollo MCP Server to connect AI agents with GraphQL APIs. Use this skill when: (1) setting up or configuring Apollo MCP Server, (2) defining MCP tools from GraphQL operations, (3) using introspection tools (introspect, search, validate, execute), (4) troubleshooting MCP server connectivity or tool execution issues.
Didn't find tool you were looking for?