The non-obvious moves. The stuff that turns Claude Code from "faster way to type" into something your whole team actually gets value from. One snippet each, a sentence on why it matters. Skim in five minutes. Steal what fits.
/design-md https://stripe.com
Fetches a live site and pulls out colors, type scale, spacing, voice. Saves it as a spec Claude can re-apply to your project. Decent starting aesthetic in about 90 seconds, which is better than what most of us would do by hand.
/spec "add a refund flow with retry"
Turns a fuzzy one-liner into a real spec: requirements, edge cases, files touched, test plan, risks. All before any code gets written. Usually catches the misunderstanding that would've eaten your whole Tuesday.
Esc Esc (or: /rewind)
Roll back to a previous checkpoint, try a different approach, compare, keep the one that worked. It's basically git for the conversation. I use this constantly.
[drag any PNG/JPG into Claude] + "build this in React + Tailwind"
Hand sketches, Figma exports, a competitor's screenshot. All of it lands as working HTML/CSS. Saves you from typing out what a picture already shows.
Dispatch IN PARALLEL: - code-reviewer - security-reviewer - test-engineer Synthesize. One verdict.
One message, three subagent dispatches, run concurrently in isolated contexts. You get three reviews in the time of one and your main thread doesn't get cluttered with their scratch work.
cat error.log | claude -p \\ "root cause as JSON" \\ --output-format json | jq '.cause'
Pipeline mode. You can compose Claude with grep, jq, curl, whatever you've already got. Headless and scriptable, which is when it stops being an "AI tool" and starts being part of your actual stack.
You trigger these. Just markdown files in .claude/commands/ that you check in so everyone gets them.
/review # current diff /review src/auth.ts # specific file
Bake your senior engineer's review checklist into a command. One button, same eight findings every time, including the days she's wall-to-wall in meetings.
/incident PAGER-4421
Pulls logs, traces, recent deploys through MCP and hands back a Slack-ready post with the three most likely causes. Mostly it saves you the first 15-20 minutes of every page where you're just gathering the obvious stuff.
/commit
Reads the staged diff, writes a commit message in your team's house style. It's better than the -m "wip" you were going to type.
--- description: ... argument-hint: [pr number] --- Review PR $ARGUMENTS for ...
$ARGUMENTS in a command file gets replaced with whatever the user typed after the command. It's the simplest way to parameterize a workflow without writing a real CLI.
CLAUDE.md gets loaded into every session automatically. Put opinions in here, not descriptions of what the code already says.
CLAUDE.md ★./CLAUDE.md # root rules ./src/api/CLAUDE.md # only loads in api/ ./db/CLAUDE.md # only loads in db/
Specialized rules only load when Claude's actually working in that subtree. So your frontend sessions don't get bloated with database conventions nobody's touching.
~/.claude/CLAUDE.md: - Be terse. No emojis. - Never recap what you just did. - Never say "as you can see"
Your personal rules follow you into every project without ending up in the team's shared file. Good place for the "stop apologizing" stuff.
@Explain @src/auth/session.ts Compare @old/handler.ts vs @new/handler.ts
Inline file references. No copy-paste, no "let me read that first." Claude just pulls it in.
/clear # reset conversation /compact # squeeze the context
Long sessions get heavy. /clear wipes it; /compact keeps the gist and drops the noise. Either one beats opening a new terminal and re-explaining everything.
Isolated context, scoped tools, fire-and-forget. They live in .claude/agents/.
--- name: code-reviewer tools: Read, Grep, Bash ---
No Write, no Edit. A reviewer that can't "helpfully" go fix the thing it's supposed to be reviewing. Capability boundaries hold up better than asking nicely.
Dispatch spec-writer: "Build X. Return spec only." Then implement from the spec.
Engineers (and Claude) love jumping straight into code. A spec-writer subagent in front of that instinct costs about 30 seconds. Saves you from rewriting the wrong thing tomorrow.
description: Use when the user asks to write tests, add test coverage, or fix a failing test in this codebase.
Skills auto-invoke by matching what the user said against the description field. Write vague descriptions and they basically never fire. Spell out the trigger phrases and they fire when you want them to.
"Write a slash command that takes a Linear ticket URL and produces a minimal reproduction case."
Use Claude to write Claude's own config. It all ends up as markdown, which (conveniently) is the thing Claude is best at producing.
Plain shell commands, deterministic. Configured in .claude/settings.json. Non-zero exit blocks the action.
PostToolUse on Write|Edit: prettier --write && eslint --fix
Claude stops writing unformatted code. You stop getting prettier-only PRs. Takes about five minutes.
PreToolUse on Write|Edit: grep for api[_-]?key|secret|token → exit 1 if matched
Fifteen minutes of bash heads off most of the "uh, Claude committed our API key" stories you hear from other teams.
PreToolUse on Bash: match git push -f, reset --hard, rm -rf / → exit 1
The really catastrophic commands die before they run. Cheap insurance against the kind of accident you only need to have once.
SessionStart:
echo "branch: $(git branch --show-current)
last: $(git log -1 --oneline)" Every session starts already knowing what branch you're on and what you last did. Skips the first half-minute of "okay so where were we."
Claude Code outside the interactive terminal. Scripts, pipes, CI jobs.
claude -c
Picks up right where you left off. No more starting from zero because your terminal crashed.
claude -r feature-auth claude -r incident-2024-12-03
Keep multiple work streams alive without them bleeding into each other. Named, resumable, swap with a flag. Helpful when you're juggling a feature and a fire at the same time.
claude -p --output-format json \\ --allowed-tools "mcp__github__*,Read" \\ "/review-pr $PR_NUMBER" > out.json
Every PR gets a pass before a human ever opens it. Scope the toolset with --allowed-tools so the CI job can't do more than it should.
.claude/settings.local.json # gitignored .claude/settings.json # committed
The local file overrides the team file. So you can turn off that one annoying hook for yourself without turning it off for the whole team.
Model Context Protocol. A safer way to expose external tools and data to Claude.
claude mcp add pg -- \\ npx server-postgres \\ "postgresql://readonly@..."
No more guessing column names. Claude queries the real schema. Read-only means the worst case is bounded (which is the only reason I'd hand it db credentials at all).
// ~50 lines of TS using @mcp/sdk
server.tool("get_customer", {#123; id }#125;, ...)
server.tool("get_billing", {#123; id }#125;, ...) The thing the off-the-shelf servers can't do: teach Claude your business. Maybe half a day of work. Pays itself back the first time someone asks "wait, what's the rate limit for tier-2 again?"
/plan # review and edit the plan # approve before any file is touched
Forces Claude to lay out the whole multi-file change before touching anything. You read the plan, edit it, then say go. Most of the "the AI went off the rails" stories start with someone skipping this step.
[paste current screenshot] [paste target screenshot] "Make mine look like the second one"
Way faster than trying to describe UI changes in words. Pictures in, code out.
The real payoff comes from combining them. The free Reseek course walks through that, module by module, with artifacts you can actually use.