Extending: skills, MCP, subagents, hooks, plugins
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.