Extending Claude - Commands and Skills

Metaprogramming Claude through Claude for more Claude

It is a truth universally acknowledged, that a single [software engineer] in possession of a good [coding agent], must be in want of [a means to extend its abilities].

— Claude Claudesten, Claude and Claudjudice (2026)

Shtick aside, it was not long into my use of Claude before I started to get a little tired of providing the same kinds of complex instructions to do similarly shaped things. In particular, the kinds of side projects I’m dusting off these days feature multiple packages and services that I want to make changes to and ship as features. This generally means that I have a top-level folder for the entire project, with sub-folders that each contain a repo for some part of the system’s implementation. It wasn’t impossible, but if I’m going to use an agent to automate things, then I certainly want it handling low-value, repetitive chores.

Claude Commands and Skills

A command extends the CLI interface with / commands so that when you issue one, it understands what arguments to expect and how to use them to complete a parameterized set of instructions. They require you to intentionally invoke them.

A skill is more like priming the context so that when you give it general instructions, Claude should recognize what you want accomplished and just as importantly, it knows how you expect it to go about things.

As you combine them, you will realize that you are now in control of an English language-based metaprogramming tool that will not only refine the kinds of results you’re getting but will give you more of a shorthand between you and the agent.

How I’m Using It

I have built skills and commands for working at the system layer (vs. the repository layer) such that Claude will now prompt me through a series of initial questions (anticipated services and modules, their programming languages, technology stacks, high-level roles) and then create the directory structures, initialize the projects and scaffold them, create repos for both local development with docker compose, and an IaC repository for deployment to a cloud provider. It also creates a dedicated design documentation folder for system design and tracking of each ‘story’ which it keeps up-to-date through conversations about features.

My experience with this so far has felt like a big boost in how effective I am at structuring how I define a clear system design with an ordered set of features to work through. It has changed how Claude interacts with me (because of how I’ve specified these skills and commands to work in concert). When I fail to provide clear guidance or overlook potentially conflicting directions, it will prompt me by suggesting potential options, providing a cursory analysis of trade-offs, and then update all stories (including their ordering and inter-dependencies) so that the design documentation stays in sync with the conversational way I am interacting with Claude.

How I Got Started

As one might guess, Claude is actually pretty good at providing the boilerplate and structure so that you can start from existing commands and skills grouped as “features” that would be installable from a GitHub repository (what Claude would call a marketplace). While it didn’t give me perfect commands or skills out of the box, it did give me a nice reference point to start from and work with. Each person may want to do this differently, but in my case, starting with the boilerplate in place meant I didn’t need to read a lot of reference documentation to know how to structure the repository, what kind of structure each document type required, or even how to go about making it accessible for my own use.

I liked that after installing some of these skill and command sets from my repository, they were available across all of my projects and that I didn’t have to install them specifically into each project before I could use them.

Future Plans

Once I’ve used this on a few projects and refined it, if it feels like something that might be generally useful, I can open-source it for others to try. I suspect that, for folks using Claude in side projects or freelance work, learning how to build your own skills and commands is probably the best way to go. Skilled woodworkers often create jigs to assist with specific cuts to make them safer, easier, and repeatable. I see skills and commands with Claude as a close analogue; you have the opportunity to create specialized tools that will tune the agent’s outputs so that you get repeatable and predictable outcomes.