First, if you use Claude Code heavily you should have a decent ~/.claude/history.jsonl (mine is almost 7k lines!). Just start a new clean claude instance and tell it to review that file and look for repeating patterns and suggest some custom slash commands, ultrathink if you dare ;)
Here’s my five that have been working fantastically well, you can just have claude create them by asking “create a new ~/.claude/ custom command called X with this: …“
prep.md for /prep <what to focus on>
# Background Research Command
---
description: Deep dive to build context before implementation
allowed-tools: Glob, Grep, Read, Task
---
## Task
Build complete context for **$ARGUMENTS**.
1. **Read the specified references** - Start with any docs, files, or areas mentioned. Understand the design and expectations.
2. **Trace all code paths** - Follow the logic from entry points through all dependencies. Track down every function, utility, and data flow involved. Be exhaustive.
3. **Find all touch points** - Scan the codebase for everything that reads, writes, calls, or depends on the target area.
4. **Understand how it all works together** - What are the key patterns and conventions in use?
## Output
Present a concise summary demonstrating you're ready to work on this area:
- How the current implementation works
- All relevant files and functions (with file:line refs)
- Dependencies and consumers
- Key patterns to follow
Research only, this is going to be so helpful, thank you! Let me know when you're ready.design.md for /design <scope>
# Plan Command
---
description: Think through completely, then present concise plan
allowed-tools: Glob, Grep, Read
---
## Task
Based on the research context we've built, think through **$ARGUMENTS** completely.
1. **Work through it fully** - Consider all impacts, dependencies, edge cases. Be exhaustive and thorough. Make sure you have the complete picture before summarizing.
2. **Identify all changes needed** - What files, functions, references, docs need updating?
3. **Order by dependencies** - What needs to happen first? Group related changes.
## Output
Once you're sure you have it all worked out, present a concise but complete action plan:
- Categorized list of changes (no code snippets)
- Clear sequence if order matters
- Any risks or open questions
Plan only - no implementation yet. I'll review and refine before we proceed. Thanks, I appreciate you!implement.md for /implement <any specific choices>
# Implement Command
---
description: Execute the approved plan with care
allowed-tools: Glob, Grep, Read, Edit, Write, Bash, Task
---
## Task
Implement **$ARGUMENTS** based on the plan we've reviewed.
1. **Work through it carefully** - Clean, maintainable code. KISS and DRY.
2. **Test when complete** - Only run the tests relevant to your changes, check Makefile for all options.
3. **Stay focused** - Only implement what was planned. No extra features or embellishments.
## Output
Summarize all of your changes and actions once complete, note any issues or followups you encountered.audit.md for /audit <any specific concerns if needed>
# Code Review Command
---
description: Thorough code review to find issues and propose fixes
allowed-tools: Glob, Grep, Read, Task
---
## Task
Review **$ARGUMENTS** thoroughly. Trace through all logic paths until you have the complete picture. Find:
- **Dead/unused code** - functions, imports, variables, files with no callers
- **Dangling references** - broken imports, missing deps, orphaned calls after refactors
- **Stale/outdated content** - docs, comments, naming that doesn't match current code
- **Redundancy** - DRY violations, duplicate logic that should be consolidated
- **Over-complexity** - anything that could be simplified while maintaining functionality
For each finding, note: what, where (file:line), and why it's an issue.
## Output
Present a concise categorized summary of all issues found. Group by category, not by file.
Surface any questions or ambiguities that need clarification before fixes.
Do not implement fixes yet - just your helpful findings for review and approval, thanks!commit.md for /commit
# .claude/commands/commit.md
---
description: create a great git commit
allowed-tools: Bash(git status:*), Bash(date:*)
---
## Context
- Git status: !`git status`
## Task
Congrats, these changes are great, thank you!
First stage only your changes, ignore any other changes present.
If something is already staged that is OK it was staged elsewhere to be part of this commit.
Then consider what a good short and long git message should contain to helpfully capture just the changes you made.
Do the git commit and then reply with a short confirmation, we don't need to repeat or re-state the previous responses.