Skip to content
Mastering Claude

Home

Claude Code12 lessons102 min

Extending: skills, MCP, subagents, hooks, plugins

  1. 01Skills: teaching Claude a workflow7 min

    A skill encapsulates a reproducible workflow in a SKILL.md file, invoked by an explicit slash command or by automatic matching on its description.

  2. 02Creating a skill that is also a command9 min

    A custom command and a skill are now the same mechanism: a .claude/commands/name.md file and a .claude/skills/name/SKILL.md folder both produce the /name command with the same behaviour, and for a personal or project skill, it is the folder's name, not the frontmatter's name field, that becomes the command's name.

  3. 03Discovering, curating and stacking skills8 min

    Skills are discovered in two public libraries maintained by Anthropic, and several skills declared for distinct needs can load together on the same task, but a poorly chosen description never triggers, whether alone or stacked.

  4. 04MCP: the connection protocol8 min

    MCP is the open standard that connects Claude to external tools and data around three primitives: the tools it can call, the resources it can read, the reusable prompts it can offer.

  5. 05Connecting an MCP server, and what changed9 min

    An MCP server connects via OAuth or a key, is verified with claude mcp list, and the protocol itself changed at its core on 28 July 2026, a fact independent of any Claude Code version.

  6. 06Building your own MCP server9 min

    A homemade MCP server launches as a child process over stdio transport, declares a JSON schema in inputSchema that the server itself must validate, and a precise description decides when Claude calls it.

  7. 07Subagents: delegating in an isolated context9 min

    A subagent handles a task in an isolated context window and returns only its conclusion, which keeps the main conversation clean and allows several to run in parallel.

  8. 08Hooks: automating the lifecycle7 min

    A hook is an action the harness executes itself on a precise lifecycle event, never a preference entrusted to the model in the hope that it remembers.

  9. 09Hook events, from trigger to message11 min

    PreToolUse can prevent a call from happening, PostToolUse can only react after the fact, and a hook's decision travels through precise JSON fields, never a sentence written to standard output.

  10. 10Plugins: bundling skills, hooks, MCP and agents8 min

    A plugin bundles skills, hooks, MCP servers and commands into a single versioned directory, installable and shareable in one go, with a single manifest that lives apart from everything else.

  11. 11settings.json in depth9 min

    Five levels of settings.json follow one another from strongest to weakest, a scalar key common to two files is decided by the highest-priority level, but most lists, including permissions.allow and permissions.deny, merge across levels instead of overwriting each other.

  12. 12Skill routing fails silently8 min

    Claude decides whether to invoke a skill by comparing the request's vocabulary against that skill's description field alone, and a mismatch of language or jargon between the two causes automatic invocation to fail with no visible signal in the response.