Guides
Practical, tested guides for getting Claude Code set up right — and keeping the code it writes safe to ship.
Configuring Claude Code
Skills vs subagents vs commands vs MCP vs plugins in Claude Code
Five primitives, one decision table. When to reach for a skill, a subagent, a slash command, an MCP server, or a plugin — and the mistakes that waste your context window.
MOFU · 7 min readWhy your Claude Code subagent isn't being called
Claude delegates to a subagent by reading its description, not its system prompt. If yours never fires, the description is usually written like a bio instead of a routing rule.
TOFU · 8 min readA CLAUDE.md template that changes Claude's behaviour
A CLAUDE.md earns its place by holding the few things Claude cannot infer from your code. Here is what to put in it, what to leave out, and a template to copy.
TOFU · 7 min readHow to create a Claude Code skill (SKILL.md)
A skill is a folder with a SKILL.md inside. The description decides when Claude loads it; the body holds the instructions. Here is how to build one that fires.
TOFU · 6 min readClaude Code slash commands with arguments
Type input after a command name and Claude Code substitutes it into the prompt. $ARGUMENTS takes the whole string; $0 and $1 pick out positional arguments.
MOFU · 7 min readClaude Code hooks cookbook
The lifecycle event map plus five copy-paste settings.json recipes — format on save, block dangerous commands, run tests, notify on stop — and why hooks silently fail to fire.
MOFU · 7 min readHow many MCP servers is too many?
The context-tax argument you have read everywhere is stale: tool search defers tool definitions by default. Here is what adding servers actually costs now.
MOFU · 6 min readStop paying Opus rates for Haiku subagent work
Claude Code lets you set a model per subagent. Send mechanical work to Haiku, keep judgment on Sonnet or Opus, and stop paying premium rates for grep and test runs.
MOFU · 6 min readLicense hygiene for Claude Code agents
The .md files you copy into .claude/ carry licenses like source code does. The safe allowlist, the traps, and how to verify a licence at the exact commit you pulled from.
Securing AI-generated code
Harden Claude Code against prompt injection
How injection reaches a coding agent, and the layered guardrails that contain it: a bash-blocking PreToolUse hook, a PostToolUse output scanner, deny-rules, and a way to test them.
BOFU · 8 min readAI coding agent guardrails: a checklist
The threat model, the layers that contain it — permissions, hooks, secret guards, network approval, sandboxing — and a copy-run checklist for what to automate versus stop and ask.
MOFU · 8 min readSlopsquatting: stop AI installing bad packages
AI models invent package names, and attackers register them. Here is the defensive half nobody ships: an agent install-gate, lockfile pinning with hashes, and pre-install import checks.
TOFU · 6 min readIs AI-generated code secure? An honest answer
Independent studies keep finding real vulnerabilities in a large share of AI-generated code. Here is the honest picture — where it is fine, where it is dangerous, and what actually lowers the risk.
MOFU · 6 min readHow to review AI-generated code for security
Half of AI-generated samples fail security tests, and scanners miss most of what matters. A concrete review workflow, a worked SQL-injection example, and the checklist to run.
MOFU · 6 min readStop your AI assistant leaking secrets
Coding assistants hardcode keys because their training data is full of them. Keep .env out of context, block secrets with hooks before they commit, and rotate anything already exposed.