Claude Desktop & Claude Code: A Technical Deep Dive
Claude has four officially supported systems for providing context: CLAUDE.md for project-specific context, Skills for reusable reference documentation, Agents for project-specific tasks, and Commands for quick actions. This deep dive explores Claude's unique approach to context management and optimization.
Introduction
Claude's skills system represents a reference-based approach to AI customization. Unlike other formats that emphasize always-on rules, Claude uses a discoverable skills-based system where each skill is optimized for Claude's search system. Read more about what skills are and Anthropic's vision for agent skills.
CLAUDE.md: Always-On Project Context
According to Anthropic's official best practices, CLAUDE.md is a special configuration file that Claude Code automatically pulls into context when starting a conversation. It serves as your project's persistent memory.
What to include in CLAUDE.md:
- ✓Common bash commands (
npm run build,npm test) - ✓Core files and utility functions
- ✓Code style guidelines (ES modules vs CommonJS, naming conventions)
- ✓Testing instructions and coverage requirements
- ✓Unexpected project behaviors or gotchas
Skills: Reusable Reference Documentation
Skills are self-contained reference guides for proven techniques, patterns, or tools. Unlike CLAUDE.md (which is always loaded), skills are discoverable - Claude consults them only when relevant.
📁 Required File Structure & Naming
According to Claude's official documentation, skills have strict requirements:
└── my-skill/
└── SKILL.md ← Must be named SKILL.md (all caps)
Character Limits:
- •Skill name: Max 64 characters, lowercase letters, numbers, and hyphens only
- •Description: Max 1024 characters (aim for 100-800 for optimal discoverability)
PRPM enforces these requirements during package installation and publishing to ensure compatibility with Claude Desktop and Claude Code.
Supported Frontmatter Fields
| Field | Required | Description |
|---|---|---|
| name | ✅ Yes | Unique identifier (lowercase, numbers, hyphens, max 64 chars) |
| description | ✅ Yes | What the skill does and when to use it (max 1024 chars) |
| allowed-tools | ⬜ Optional | Restricts which tools Claude can use with this skill |
Claude Search Optimization (CSO)
Future Claude instances read the description field to decide if a skill is relevant. Bad descriptions mean skills won't be found.
✅ Good: Specific triggers + clear benefit
❌ Bad: Too vague
Skills vs Agents vs Commands vs CLAUDE.md
| Type | Activation | Use Case |
|---|---|---|
| CLAUDE.md | Always (auto-loaded) | "Run pnpm install", "Use App Router" |
| Skills | On-demand (search) | "How to implement rate limiting" |
| Agents | Explicit invoke | @agent-name invocation |
| Commands | Slash command | /review-code, /write-tests |
Best Practices
Optimize for Discovery (CSO)
Write skill descriptions that start with triggering conditions ("Use when...") and include specific symptoms that developers will search for.
Match Specificity to Degrees of Freedom
For creative tasks with high degrees of freedom, provide broad guidance. For critical operations with low degrees of freedom, provide explicit step-by-step instructions.
Official Resources
📚 Claude Documentation
- →Skills Documentation - Official technical documentation for Claude Code skills
- →Sub-Agents Documentation - How to create and use Claude sub-agents
- →Slash Commands Documentation - Creating custom slash commands
- →What are Skills? - Claude support article explaining skills concept
🔬 Anthropic Blog Posts
- →Skills Announcement - Anthropic's vision for agent skills
- →Equipping Agents for the Real World - Deep technical dive into agent skills architecture
Conclusion
Claude's skills system represents a reference-based approach where skills are documentation, not instructions. CSO optimization is critical for discovery, and examples matter more than explanations. PRPM fully supports Claude's frontmatter parsing, skills vs agents detection, and CSO validation.