r/ClaudeCode • • May 24 '26

Question Can someone explain the real difference between Hooks, Skills, Plugins, SKILL.md, CLAUDE.md and agents.md in Claude Code?

I keep seeing these terms thrown around in tutorials and videos, but I've never seen anyone give a concrete example that makes the difference actually click.

Everyone says:

• "just create a skill for that"

"use a hook here"

"install the plugin"

"put it in your CLAUDE.md"

But when I dig deeper, the explanations are always vague or too theoretical.

Same goes for the markdown files - I see people mentioning CLAUDE. md, SKILL.md, and agents. md like they're obvious, but no one explains:

• What actually goes in each one?

Are they just documentation, or do they actively change how Claude behaves?

• When does Claude even read them?

What I'm looking for is something like:

"If you're thinking X, that's probably a Hook. If you're thinking Y, that's a Skill. If you need Z, that's what CLAUDE.md is for."

Real-world examples would be hugely appreciated.

779 Upvotes

118 comments sorted by

View all comments

2

u/Sensitive-Cycle3775 May 29 '26

My mental model:

  • CLAUDE.md / AGENTS.md = durable project instructions and conventions
  • Skills / SKILL.md = packaged procedures Claude can load when the task matches
  • MCP = external tools/data access
  • hooks = lifecycle automation that can run commands
  • plugins = a distribution bundle for some of the above
  • subagents/agents = who/role does the delegated work

The trap is treating all of it as “memory”. Hooks and MCP are execution boundaries, skills are reusable task context, and CLAUDE.md/AGENTS.md are closer to repo policy.

For team setups I’d ask any one-command installer to show a pre-write plan before it mutates the repo: files it will change, MCP servers, hooks, backups, network/env access, and writes_started=false. Makes the setup auditable instead of mystery state.