A skill is a process you write down once, and an agent is a helper you hand a job to. In Claude Code a skill is a SKILL.md file in a .claude/skills folder that Claude reads into the chat you're already in when your request matches its description, or when you type its name with a slash in front. A subagent is a file in .claude/agents that runs on its own, in its own fresh memory, with its own tools, and sends back only a summary. Anthropic's skills overview says only a skill's name and description sit in Claude's memory until it's needed, which is why you can keep a lot of them around without slowing anything down.
So here's how I'd pick. If it's how you do something, like how your office answers a new lead, make it a skill. If it's a job you want done off to the side so your main chat stays clean, or a job that needs different permissions, like a checker that can read but can't edit anything, make it a subagent. And they work together, too: the reply-writer subagent in my guide follows a lead-reply skill. My step-by-step guide to all seven agent types builds both.
More questions on this
Part of: Contractor Marketing, the full guide, with every related question linked.