← Back to blog
·5 min·Barta Gergő

I Finally Realized Why Claude Code Skills Matter

claude-codebuilding-in-public

I built an Electron terminal, an orchestration layer, a project board, a scheduler, and 86 MCP tools in under a month. Claude wrote all the code, 1000+ commits.

The 14 skills and 47 commands I created along the way changed how I work more than any of it. Each skill encodes a process that Claude figured out once, so no agent has to figure it out again.

What a skill actually does

My /blog-manager skill handles the full blog lifecycle: create, edit, publish, deploy. It loads writing voice rules automatically so every draft follows the same style constraints. Before this skill, I had to remind Claude about the voice rules manually each time. Now it triggers on context: if I say "rewrite the blog post," the skill loads without me typing the command.

A skill holds the knowledge of how I want things done. Any agent that loads it works the way I expect without me repeating instructions.

Why I make skills for recurring work

Releases, debugging, research, content publishing, issue triage, deployment. If Claude has done it twice, it becomes a skill.

/release-local bumps the version, builds the Windows installer, uploads to GitHub Releases, and posts to Discord. I've used it 41 times across /release and /release-local.

/deploy-site builds the Astro blog, pushes to the meta repo, and triggers the CI pipeline to Coolify. One command instead of build, commit, push, wait, verify.

/preflight runs the full verification suite before I consider work done: typecheck both tsconfigs, unit tests, integration tests, import validation, console error check on the dev instance. One command instead of remembering six.

They compound

Each skill turns a recurring process into something that runs without explanation. Over time that adds up. When every workflow has a skill behind it, sessions start faster because Claude already knows the process. What's left is decisions that don't have a playbook yet.

Meta-skills: skills that build other skills

Anthropic ships a skill-creator that interviews you about what you need, generates the SKILL.md with proper frontmatter, creates test cases, and iterates based on your feedback. It scaffolds the directory structure, handles the YAML formatting, and gets the description right (which matters more than you'd think for triggering).

There's also a /skill-optimizer that reads session logs to find how often each skill runs, where it wastes tokens, and what patterns repeat. It identifies skills that trigger but don't help, and skills that should trigger but don't.

I used both of these to create /skill-create-mosaic, my own skill-creation skill tuned to my workflow. Skills creating skills. The meta-layer sounds absurd but it saves time: when I need a new skill, I don't start from scratch or re-read the spec. I run the skill that already knows how I structure things.

There's a skills library with ready-made skills for PDF, DOCX, XLSX, presentations, frontend design, and more. Register the marketplace once, then install:

/install document-skills@anthropic-agent-skills

I use a few of these (docx, pdf, xlsx) alongside my own. Good starting point to see how skills are put together.

Skills don't trigger when you expect them to

The hardest part isn't creating skills. It's making sure Claude actually uses them.

I had a blog writing skill (/blog-manager) that handled creating, editing, and publishing posts. When I said "rewrite the blog post," Claude ignored the skill and just started editing the file directly. No voice rules loaded, no verification gate, wrong tone.

The problem was disable-model-invocation: true in the skill's frontmatter. That flag means the skill only runs when you type the slash command. Claude can't auto-trigger it from context. I removed the flag and rewrote the description with explicit trigger words: "rewrite," "edit," "fix," "update blog."

The description is the trigger mechanism. Claude reads it to decide whether to load the skill. If the description says "manage blog" but the user says "fix that post," there's no match. The description needs to contain the exact verbs and phrases the user actually says.

I also had a voice rules skill named bartag-voice. The name meant nothing to future Claude sessions. Renamed it to writing-voice with a description that starts with what it does and when to load it. Now it fires on any blog content editing.

Where to start

Pick the task you do most often that follows roughly the same steps each time. Committing, deploying, reviewing, setting up a new feature branch, running a test suite.

Write it as a skill, put it in .claude/commands/your-skill.md, and start using it. Refine it as Claude runs it. In a month you'll have a collection that makes your agents better at your specific work.


I'm building Mosaic Terminal, an orchestration workstation for AI coding agents. The Discord has early access and a free weekly AI coding digest.