Slash commands you write yourself
A prompt you retype every week should be a word with a slash in front of it.
Drop a markdown file into .claude/commands/ and its name becomes a command. The body is the prompt.
Look for silent data loss in this project.
Check every place a value is written to a store or a file and answer one
question: can this overwrite something that already exists without warning?
Report each risk as file, function, and one sentence. Do not fix anything./bug-huntIt runs that prompt in this project, with everything it already knows about the code.
That is the whole feature. There is no syntax to learn beyond markdown, and the file is committed with the project, so the command exists for everybody who clones it.
What they are actually for
- Prompts you keep rewriting. The review you always ask for, the report you always want.
- Prompts that took a while to get right. Wording that works is worth keeping.
- Team conventions. Everyone asking the same question the same way gets comparable answers.
They are skills now
Worth knowing before you read anything older: custom commands and skills have been merged. A file at .claude/commands/deploy.md and a skill at .claude/skills/deploy/SKILL.md both give you /deploy and behave the same way. Existing command files keep working.
The difference is what the fuller form gives you: a description Claude can route on, supporting files, tool restrictions, and control over whether Claude may invoke it without being asked. That is the next lesson.
/ in a session to see everything available: built-in commands, the bundled skills like /doctor and /code-review, and anything you or your project has added.- Write a command for the question you asked twice this week.
- Run
/doctorand read what it checks.
You understood something today that you didn't yesterday.