The fundamental extensibility distinction in Claude Code: **skills** are model-invoked (Claude activates them autonomously from context), while **commands** are user-invoked (explicitly triggered via slash commands).
| | Skills (model-invoked) | Commands (user-invoked) |
|---|---|---|
| Trigger | Claude detects relevant context | User types `/command` |
| Activation | Automatic, description-matched | Explicit, deliberate |
| Purpose | Embed quality protocols into all work | Execute specific workflows |
## Implications
- **Quality infrastructure**: skills enforce verification without the user remembering to invoke them
- **Activation precision**: poor descriptions cause false positives or missed activations
- **Context cost**: every active skill consumes shared context tokens
## Design Principles
Keep SKILL.md focused; include specific trigger terms in the description; use progressive disclosure (core protocol in SKILL.md, details in references); match specificity to task fragility. Anti-pattern: skill proliferation reduces activation clarity — start with 1-2 high-value skills.
## Related Concepts
- [[Claude Skills Design Patterns]]
- [[Progressive Disclosure as Agent Tool Design Pattern]]
- [[Compound Engineering Method]]