skills/5dlabs/cto/skill-authoring

skill-authoring

SKILL.md

Skill Authoring Guide

Core Principle: Context Window is a Public Good

The context window is shared across system prompts, conversation history, skill metadata, and user requests. Challenge each piece of information:

  • "Does Claude really need this explanation?"
  • "Does this paragraph justify its token cost?"

Default assumption: Claude is already very smart. Only add context Claude doesn't already have. Prefer concise examples over verbose explanations.

Progressive Disclosure

Skills use three-level loading to manage context efficiently:

Level When Loaded Target Size Contains
Metadata Always in context ~100 words name + description in frontmatter
SKILL.md body When skill triggers <5k words Core instructions, workflow
Bundled resources As needed by Claude Unlimited Scripts, references, assets

Implications

  • Frontmatter is critical: The description field is the primary trigger mechanism
  • Body is conditional: Only loaded after triggering - don't put "when to use" info here
  • References defer complexity: Move detailed patterns to references/ subdirectory

Degrees of Freedom

Match instruction specificity to task fragility and variability:

Freedom When to Use Format
High Multiple approaches valid, context-dependent decisions Text-based instructions
Medium Preferred pattern exists, some variation acceptable Pseudocode or scripts with parameters
Low Operations fragile/error-prone, consistency critical Specific scripts, few parameters

Think of Claude exploring a path: a narrow bridge with cliffs needs specific guardrails (low freedom), while an open field allows many routes (high freedom).

Skill Anatomy

skill-name/
├── SKILL.md (required)
│   ├── YAML frontmatter (name + description only)
│   └── Markdown instructions
└── Optional Resources/
    ├── references/     # Documentation loaded into context as needed
    ├── scripts/        # Executable code for deterministic operations  
    └── assets/         # Files used in output (templates, icons, fonts)

Frontmatter Rules

---
name: skill-name
description: |
  What the skill does AND when to use it.
  Include trigger keywords. Be comprehensive.
  Example: "Create MCP servers for API integrations.
  Use when building tools for external services,
  implementing Model Context Protocol servers,
  or integrating APIs into agent workflows."
---
  • Only name and description - No other fields
  • Description is the trigger - Include all "when to use" information here
  • Be specific about triggers - List contexts, keywords, and scenarios

SKILL.md Body Guidelines

  • Under 500 lines - Split to references/ when approaching limit
  • No "When to Use" sections - That info belongs in frontmatter description
  • Progressive detail - Start with quick overview, link to references for depth
  • Imperative form - Use "Create X" not "You should create X"

References Directory

For skills with multiple variants, frameworks, or detailed patterns:

cloud-deploy/
├── SKILL.md (workflow + selection guidance)
└── references/
    ├── aws.md      # AWS-specific patterns
    ├── gcp.md      # GCP-specific patterns
    └── azure.md    # Azure-specific patterns

When user chooses AWS, Claude only reads aws.md - not all variants.

Scripts Directory

Include executable scripts when:

  • Same code is rewritten repeatedly
  • Deterministic reliability is required
  • Operations are complex but mechanical
# scripts/validate_schema.py
# Can be executed without reading into context
# Use --help pattern for black-box usage

Anti-Patterns

❌ Don't Create

  • README.md, INSTALLATION_GUIDE.md, CHANGELOG.md
  • User-facing documentation (skills are for agents)
  • Setup/testing procedures
  • Deeply nested reference structures (keep one level deep)

❌ Don't Include

  • Information Claude already knows (common libraries, basic syntax)
  • Redundant explanations (say it once, well)
  • Verbose variable names in examples
  • Unnecessary print statements in code examples

Writing Guidelines

Be Concise

❌ "In order to accomplish this task, you will need to first..."
✅ "First, create the configuration file:"

Use Tables for Structured Info

❌ "Use X for case A. Use Y for case B. Use Z for case C."
✅ | Case | Tool |
   |------|------|
   | A    | X    |
   | B    | Y    |
   | C    | Z    |

Provide Minimal Examples

❌ A 50-line example showing every possible option
✅ A 10-line example showing the core pattern

Quality Checklist

Before finalizing a skill:

  • Frontmatter description covers all trigger scenarios
  • SKILL.md body is under 500 lines
  • No redundancy with Claude's base knowledge
  • Progressive disclosure - detailed info in references/
  • Degrees of freedom match task fragility
  • No extra files (README, CHANGELOG, etc.)
  • Examples are minimal but complete
Weekly Installs
3
Repository
5dlabs/cto
First Seen
Jan 24, 2026
Installed on
claude-code2
windsurf1
trae1
opencode1
codex1
antigravity1