coco-research/create-skill
Guides users through creating effective Agent Skills for Cursor. Use when the user wants to create, write, or author a new skill, or asks about skill structure, best practices, or SKILL.md format.
npx skills add https://github.com/coco-research/coco --skill create-skill
This skill guides you through creating effective Agent Skills for Cursor. Skills are markdown files that teach the agent how to perform specific tasks: reviewing PRs using team standards, generating commit messages in a preferred format, querying database schemas, or any specialized workflow.
Before creating a skill, gather essential information from the user about:
If you have previous conversation context, infer the skill from what was discussed. You can create skills based on workflows, patterns, or domain knowledge that emerged in the conversation.
If you need clarification, use the AskQuestion tool when available:
Example AskQuestion usage:
- "Where should this skill be stored?" with options like ["Personal (~/.cursor/skills/)", "Project (.cursor/skills/)"]
- "Should this skill include executable scripts?" with options like ["Yes", "No"]
If the AskQuestion tool is not available, ask these questions conversationally.
Skills are stored as directories containing a SKILL.md file:
skill-name/
├── SKILL.md # Required - main instructions
├── reference.md # Optional - detailed documentation
├── examples.md # Optional - usage examples
└── scripts/ # Optional - utility scripts
├── validate.py
└── helper.sh
| Type | Path | Scope |
|------|------|-------|
| Personal | ~/.cursor/skills/skill-name/ | Available across all your projects |
| Project | .cursor/skills/skill-name/ | Shared with anyone using the repository |
IMPORTANT: Never create skills in ~/.cursor/skills-cursor/. This directory is reserved for Cursor's internal built-in skills and is managed automatically by the system.
Every skill requires a SKILL.md file with YAML frontmatter and markdown body:
---
name: your-skill-name
description: Brief description of what this skill does and when to use it
---
# Your Skill Name
## Instructions
Clear, step-by-step guidance for the agent.
## Examples
Concrete examples of using this skill.
| Field | Requirements | Purpose |
|-------|--------------|---------|
| name | Max 64 chars, lowercase letters/numbers/hyphens only | Unique identifier for the skill |
| description | Max 1024 chars, non-empty | Helps agent decide when to apply the skill |
The description is critical for skill discovery. The agent uses it to decide when to apply your skill.
The context window is shared with conversation history, other skills, and requests. Every token competes for space.
Default assumption: The agent is already very smart. Only add context it doesn't already have.
For optimal performance, the main SKILL.md file should be concise. Use progressive disclosure for detailed content.
Put essential information in SKILL.md; detailed reference material in separate files that the agent reads only when needed.
Keep references one level deep - link directly from SKILL.md to reference files. Deeply nested references may result in partial reads.
| Freedom Level | When to Use | Example |
|---------------|-------------|---------|
| High (text instructions) | Multiple valid approaches, context-dependent | Code review guidelines |
| Medium (pseudocode/templates) | Preferred pattern with acceptable variation | Report generation |
| Low (specific scripts) | Fragile operations, consistency critical | Database migrations |
Provide output format templates for consistent results.
For skills where output quality depends on seeing examples, provide concrete input/output pairs.
Break complex operations into clear steps with checklists.
For quality-critical tasks, implement validation loops.
Gather purpose, location, triggers, requirements, existing patterns.
Draft name, description, outline sections, identify supporting files.
Create directory, write SKILL.md, create reference files and scripts.
Check line count, description specificity, terminology consistency, file references.
Take coco-research/create-skill from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.