Stop Re-Teaching Your AI
When Livewire 4 came out, I had to upgrade it across multiple Laravel projects. I sat down with my AI coding agent, gave it the upgrade docs, and set it loose. It made a plan. I reviewed it, gave the go-ahead. The upgrade was done faster, without the usual grind.
Then I opened the next project. And repeated the same process. Same docs. Same corrections. Same steering.
Two projects in, the waste became obvious. Every session starts from zero. The AI has no memory of what you taught it last time. You're not only repeating the work. You're repeating the corrections: all the times you said "no, not like that, like this."
Every correction from project one, you make again in project two. Every correction from project two, you make again in project three.
Aaron Francis's faster.dev course opened my eyes. His new-tests and finalize commands improved the code I was getting from AI agents. new-tests audits your session and suggests improvements to your test suite. finalize reviews code before commit and strips dead code. I used them. They worked. I got faster. I wrote more about how these two commands changed my workflow in AI Writes Fast. You Ship Bugs..
So I looked for more. I browsed his other commands. Some targeted languages and frameworks I don't use. I considered adapting them. Then I realized the problem wasn't the language.
Someone else's commands are tuned to someone else's brain.
How they work, how they think, what they want from AI. I needed commands tuned to mine.
I went back to that Livewire upgrade session and asked the AI to convert it into a reusable command. I told it to review the session, identify the key decisions, and write them into a command file.
It nailed it in one shot. Almost.
A command is a markdown file that lives in .opencode/commands/. Reload opencode and it appears as a slash command. Type /upgrade-livewire-4 and the full instructions load into context. No blank prompt.
---
description: Implement passwordless registration (Fortify + Livewire)
---
# Passwordless Registration
Implement passwordless registration to reduce signup friction.
Users can register with just an email address and optionally
set a password later via security settings.
A frontmatter description and markdown instructions. The AI reads it like a prompt you never have to type again.
The command doesn't just repeat steps. It preserves the corrections. During that first Livewire upgrade, I steered the AI to rename component files to use the volt emoji. I steered it to colocate test files next to blade components instead of in a separate test folder. Those preferences are now baked into the command. The AI won't make those mistakes again, because I already taught it not to.
Look at the prompts you reuse across sessions. Or pause before your next session and ask: would the work I just did be useful again? If yes, snapshot it.
My commands folder has grown. Upgrade commands for Livewire and Laravel. A command for passwordless registration. Commands outside code, too. One interviews me about a customer issue and drafts a support reply. Another reviews my writing for punctuation using a condensed guide from Julian Shapiro's punctuation guide. Each one saves me from re-explaining.
Commands evolve, too. When a session reveals something the command missed, I ask the AI to update it. The command grows with you.
One command interviews me. I give it a half-formed idea, and it asks questions until the idea sharpens into something I can use. Sometimes I know something is in the back of my head but can't articulate it. The questions bring it to the surface.
You're adjusting AI to match how you think. As your thinking sharpens, so do your commands. The AI grows alongside you.
You're not building tools from scratch. You're snapshotting your own expertise.
The power move isn't downloading someone else's commands. It's creating your own.
Look at your last three AI sessions. What did you repeat? That's your first command.