**CLAUDE.md** is the per-project constitution. It sets the rules, tone, client context, and guardrails for every session in that project. It lives in the repo and is versioned in git β treat it like code.
**Skills** are auto-discovered from `.claude/skills/` (project-level) or `~/.claude/skills/` (global). The model reads the short header and decides when to load the full instructions.
**Subagents** spin up a separate context window with their own tool allowlist. Use them for role-based orchestration (Strategist delegates to Copywriter) or for context isolation β for example, reading a 200-page PDF in a subagent and returning only the synthesis to the main thread.
**Hooks** are deterministic scripts that fire at defined lifecycle events (before a write, after a tool call, etc.). This is how guardrails become guaranteed instead of merely hoped-for.
**Slash commands** are parameterized shortcuts a human triggers β `/weekly-report {client}` kicks off the full pipeline with one command.
**Plugins** bundle skills + hooks + MCP configs into a single installable package β the distribution format for a future GMS OS offering.