skills/bae-changhyun/creating-skills/SKILL.md
Guide for creating Claude Code skills following Anthropic's official best practices. Use when user wants to create a new skill, build a skill, write SKILL.md, or needs skill creation guidelines. Provides structure, naming conventions, description writing, and quality checklist.
npx skillsauth add aiskillstore/marketplace creating-skillsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Guide for creating Claude Code skills following Anthropic's official best practices.
# 1. Create skill directory
mkdir -p ~/.claude/skills/<skill-name>/references
# 2. Create SKILL.md with frontmatter
cat > ~/.claude/skills/<skill-name>/SKILL.md << 'EOF'
---
name: <skill-name>
description: <what it does>. Use when <trigger phrases>. <key capabilities>.
---
# <Skill Title>
<One-line description>
## Quick Start
<Minimal steps to use the skill>
## Core Workflow
<Step-by-step instructions>
## Important Rules
<Critical constraints and requirements>
EOF
# 3. Add helper scripts if value-add
# 4. Add reference files for detailed docs
---
name: skill-name # lowercase, hyphens, no spaces
description: <desc> # CRITICAL for discovery (max 1024 chars)
---
---
name: skill-name
description: <desc>
context: fork # Run in forked context (protects main context)
agent: general-purpose # Execute as specific agent type
---
| Field | Purpose | Use Case |
|-------|---------|----------|
| context: fork | Run skill in isolated forked context | Large content processing (PDF, images) that could bloat main context |
| agent | Specify agent type for execution | general-purpose, Explore, Plan etc. |
<What it does>. Use when <trigger phrases>. <Key capabilities>.
Example:
Creates GitHub Pull Requests with automated validation. Use when user wants
to create PR, open pull request, or merge feature. Validates tasks, runs
tests, generates Conventional Commits format.
Trigger phrases to include:
# Skill Name| Style | Example | When to Use |
|-------|---------|-------------|
| Gerund (verb-ing) | processing-pdfs | Action-focused |
| Noun phrase | github-pr-creation | Entity-focused |
| Prefixed group | github-pr-* | Related skills |
| Component | Limit | Notes | |-----------|-------|-------| | SKILL.md body | < 500 lines | Split if approaching | | Description | < 1024 chars | Quality over quantity | | Quick Start | < 30 lines | Minimal viable example |
If approaching 500 lines:
references/examples.mdreferences/troubleshooting.mdDO create scripts for:
DON'T create scripts for:
gh api ...)#!/usr/bin/env python3
"""Script description."""
import json
import sys
def main():
# Read from stdin or args
# Process data
# Output JSON to stdout
print(json.dumps(result))
if __name__ == "__main__":
main()
~/.claude/skills/<skill-name>/
├── SKILL.md # Main skill file (< 500 lines)
├── scripts/ # Optional helper scripts
│ └── helper.py # Only if value-add
└── references/ # Optional detailed docs
├── examples.md # Extended examples
└── guide.md # Deep-dive documentation
"Default assumption: Claude is already very smart. Only add context Claude doesn't already have."
Challenge each line:
SKILL.md (primary)
↓ references/ (when needed)
↓ external links (rarely)
**ALWAYS** confirm before:
- Modifying files
- Running destructive commands
- Creating external resources (PRs, issues)
Prefer JSON for script output:
# Good: Structured, parseable
python3 script.py | jq '.result'
# Bad: Unstructured text
python3 script.py | grep "Result:"
Before finalizing a skill:
context: fork for large content processingBash(git *)) instead of verboseFor commands that use allowed-tools, use wildcard patterns for cleaner permissions:
# Old (verbose)
allowed-tools:
- Bash(git -C:*)
- Bash(git config:*)
- Bash(git log:*)
- Bash(git show:*)
# New (concise with wildcards)
allowed-tools:
- Bash(git *) # All git commands
- Bash(npm *) # All npm commands
- Bash(mkdir *) # mkdir with any args
- Bash(pwd) # Exact match (no args)
Pattern Types:
| Pattern | Matches | Example |
|---------|---------|---------|
| Bash(git *) | git + anything | git log, git diff --stat |
| Bash(* install) | anything + install | npm install, pip install |
| Bash(git * main) | git ... main | git checkout main |
| Bash(pwd) | Exact match only | pwd (no args) |
| Anti-Pattern | Why Bad | Instead |
|--------------|---------|---------|
| Wrapper scripts | No value-add | Inline commands |
| Explaining basics | Claude already knows | Skip or brief |
| Multiple workflows | Confusing | One clear path |
| Verbose examples | Token waste | Minimal examples |
| Custom systems | Non-standard | Use official patterns |
| Verbose Bash permissions | Repetitive | Use Bash(git *) wildcard |
development
Apple Human Interface Guidelines for content display components. Use this skill when the user asks about charts component, collection view, image view, web view, color well, image well, activity view, lockup, data visualization, content display, displaying images, rendering web content, color pickers, or presenting collections of items in Apple apps. Also use when the user says how should I display charts, what's the best way to show images, should I use a web view, how do I build a grid of items, what component shows media, or how do I present a share sheet. Cross-references: hig-foundations for color/typography/accessibility, hig-patterns for data visualization patterns, hig-components-layout for structural containers, hig-platforms for platform-specific component behavior.
tools
Automate HelpDesk tasks via Rube MCP (Composio): list tickets, manage views, use canned responses, and configure custom fields. Always search tools first for current schemas.
testing
Expert Haskell engineer specializing in advanced type systems, pure functional design, and high-reliability software. Use PROACTIVELY for type-level programming, concurrency, and architecture guidance.
tools
GraphQL gives clients exactly the data they need - no more, no less. One endpoint, typed schema, introspection. But the flexibility that makes it powerful also makes it dangerous. Without proper controls, clients can craft queries that bring down your server. This skill covers schema design, resolvers, DataLoader for N+1 prevention, federation for microservices, and client integration with Apollo/urql. Key insight: GraphQL is a contract. The schema is the API documentation. Design it carefully.