
Writing Skills
Author concise, discoverable SKILL.md files so Claude and other agents load only what they need and reliably invoke your custom capabilities.
Overview
Writing Skills is a journey-wide agent skill that teaches concise SKILL.md authoring and discovery-friendly structure—usable whenever a solo builder needs to package agent capabilities before committing tokens to bloated
Install
npx skills add https://github.com/sickn33/antigravity-awesome-skills --skill writing-skillsWhat is this skill?
- Treat the context window as shared—challenge every paragraph for token cost
- Metadata name/description pre-loaded; SKILL.md loaded only when relevant
- Default assumption that the model is already smart—omit redundant explanations
- Concise example patterns (~50 tokens) vs bloated tutorials
- Aligns with official skill discovery and progressive file loading behavior
- Concise skill example cited at approximately 50 tokens
- Startup preload limited to metadata name and description across skills
Adoption & trust: 588 installs on skills.sh; 40.1k GitHub stars; 3/3 security scanners passed (skills.sh audits).
What problem does it solve?
Your custom skill never triggers because the description is vague, SKILL.md is too long, and the agent burns context before it can follow your procedure.
Who is it for?
First-time and experienced authors maintaining antigravity-style or personal skill repos for Claude Code and Cursor.
Skip if: Runtime MCP server implementation or one-off chat prompts you will not reuse as a skill package.
When should I use this skill?
Creating, expanding, or trimming SKILL.md files and frontmatter so agents discover and load skills efficiently.
What do I get? / Deliverables
You produce a tight SKILL.md with clear metadata and scoped sections so agents load the skill when relevant and execute without redundant preamble.
- Revised SKILL.md with tight procedure
- Improved name and description for discovery
- Token-conscious section outline
Recommended Skills
Journey fit
Useful at every journey phase - explore requirements and options before committing to a direction.
Where it fits
Draft skill descriptions while exploring which agent workflows are worth packaging.
Refactor a 2k-token SKILL.md down to essentials before adding to your repo.
Audit all skills in a monorepo for redundant tutorials before tagging a release.
Update invoke descriptions after production learnings without expanding file size.
How it compares
Authoring doctrine for SKILL.md packages, not a code generator or skills.sh install CLI.
Common Questions / FAQ
Who is writing-skills for?
Solo and indie builders packaging repeatable workflows as agent skills for Claude and similar coding agents.
When should I use writing-skills?
At Idea when sketching agent workflows; at Validate when prototyping a skill; at Build for every new SKILL.md; at Ship when trimming skills before release; and at Operate when updating skills as products evolve.
Is writing-skills safe to install?
It is documentation-only guidance—confirm repo trust via the Security Audits panel on this page before cloning third-party skill collections.
SKILL.md
READMESKILL.md - Writing Skills
# Skill authoring best practices > Learn how to write effective Skills that Claude can discover and use successfully. Good Skills are concise, well-structured, and tested with real usage. This guide provides practical authoring decisions to help you write Skills that Claude can discover and use effectively. For conceptual background on how Skills work, see the [Skills overview](/en/docs/agents-and-tools/agent-skills/overview). ## Core principles ### Concise is key The [context window](https://platform.claude.com/docs/en/build-with-claude/context-windows) is a public good. Your Skill shares the context window with everything else Claude needs to know, including: * The system prompt * Conversation history * Other Skills' metadata * Your actual request Not every token in your Skill has an immediate cost. At startup, only the metadata (name and description) from all Skills is pre-loaded. Claude reads SKILL.md only when the Skill becomes relevant, and reads additional files only as needed. However, being concise in SKILL.md still matters: once Claude loads it, every token competes with conversation history and other context. **Default assumption**: Claude is already very smart Only add context Claude doesn't already have. Challenge each piece of information: * "Does Claude really need this explanation?" * "Can I assume Claude knows this?" * "Does this paragraph justify its token cost?" **Good example: Concise** (approximately 50 tokens): ````markdown theme={null} ## Extract PDF text Use pdfplumber for text extraction: ```python import pdfplumber with pdfplumber.open("file.pdf") as pdf: text = pdf.pages[0].extract_text() ``` ```` **Bad example: Too verbose** (approximately 150 tokens): ```markdown theme={null} ## Extract PDF text PDF (Portable Document Format) files are a common file format that contains text, images, and other content. To extract text from a PDF, you'll need to use a library. There are many libraries available for PDF processing, but we recommend pdfplumber because it's easy to use and handles most cases well. First, you'll need to install it using pip. Then you can use the code below... ``` The concise version assumes Claude knows what PDFs are and how libraries work. ### Set appropriate degrees of freedom Match the level of specificity to the task's fragility and variability. **High freedom** (text-based instructions): Use when: * Multiple approaches are valid * Decisions depend on context * Heuristics guide the approach Example: ```markdown theme={null} ## Code review process 1. Analyze the code structure and organization 2. Check for potential bugs or edge cases 3. Suggest improvements for readability and maintainability 4. Verify adherence to project conventions ``` **Medium freedom** (pseudocode or scripts with parameters): Use when: * A preferred pattern exists * Some variation is acceptable * Configuration affects behavior Example: ````markdown theme={null} ## Generate report Use this template and customize as needed: ```python def generate_report(data, format="markdown", include_charts=True): # Process data # Generate output in specified format # Optionally include visualizations ``` ```` **Low freedom** (specific scripts, few or no parameters): Use when: * Operations are fragile and error-prone * Consistency is critical * A specific sequence must be followed Example: ````markdown theme={null} ## Database migration Run exactly this script: ```bash python scripts/migrate.py --verify --backup ``` Do not modify the command or add additional flags. ```` **Analogy**: Think of Claude as a robot exploring a path: * **Narrow bridge with cliffs on both sides**: There's only one safe way forward. Provide specific guardrails and exact instructions (low freedom). Example: database migrations that must run in exact sequence. * **Open field with no hazards**: Many paths lead to success. Give general direction and trust Claude to find the best route (high