Recipes for Claude Code

A curated collection of reusable commands that codify common development workflows. Drop them into any project and let Claude handle the tedious parts.

Terminal
$ /commit-changes
Running pre-flight checks...
✓ format · ✓ lint · ✓ typecheck · ✓ test
Staging files individually...
feat(api): add rate limiting middleware

5 Commands to supercharge your workflow

📝 /commit-changes

Stage & commit with conventional commits

Runs pre-flight checks (format, lint, typecheck, test), reviews your diff, stages files individually, and creates a commit using conventional commit format. Automatically groups unrelated changes into separate commits and refuses to stage secrets.

How it works
  1. Detects your toolchain and runs format, lint, typecheck, and tests
  2. Reviews all modified and untracked files
  3. Stages files individually — never uses git add -A
  4. Refuses to stage secrets (.env, credentials)
  5. Groups unrelated changes into separate commits
  6. Creates commits using conventional commit format
🔨 /implement-issue

Fetch one or more issues and implement them end-to-end

Takes one or more GitHub issue numbers (space-separated, comma-separated, with or without # prefixes), fetches each issue with comments, researches the codebase, identifies cross-issue dependencies, asks clarifying questions if any spec is ambiguous, enters plan mode for your approval, then implements a unified set of changes with tests.

How it works
  1. Parses flexible input formats and fetches all issues via gh CLI
  2. Researches affected files, identifies shared concerns and dependencies between issues
  3. Flags conflicts between issue requirements and asks clarifying questions
  4. Enters plan mode with a unified implementation plan across all issues
  5. Implements changes with tests, using subagents for parallel work
  6. Runs full verification suite and reports which changes address which issues
💬 /incorporate-feedback

Triage and address PR review comments

Fetches all review comments on the current branch's PR, categorizes each as clear-and-actionable or ambiguous, incorporates obvious improvements automatically, and asks you about ambiguous feedback with concrete options (including "Ignore"). Responds to every comment, then commits and pushes.

How it works
  1. Identifies the current branch's open PR
  2. Fetches all review comments — top-level and inline
  3. Categorizes comments: clear and actionable vs. ambiguous or debatable
  4. Asks you about ambiguous feedback with suggested options and an "Ignore" escape hatch
  5. Makes changes, responds to every comment, and re-runs checks
  6. Commits and pushes the feedback changes
🚀 /pull-request

Open a PR with a structured description

Runs pre-flight checks, rebases on origin/main, analyzes the full diff, and opens a PR with a structured body including summary, complexity notes, test steps, and a checklist.

How it works
  1. Runs format, lint, typecheck, and test checks
  2. Rebases on origin/main and resolves any conflicts
  3. Analyzes the full diff across all commits
  4. Drafts a structured PR with summary, complexity notes, test steps
  5. Pushes the branch and creates the PR via gh CLI
  6. Supports draft mode with /pull-request draft
🔀 /rebase-on-main

Rebase on main and resolve conflicts

Checks for uncommitted work, fetches and rebases on origin/main, resolves conflicts file-by-file (asking for help on ambiguous ones), and verifies everything still passes.

How it works
  1. Checks for uncommitted changes — warns you, never stashes
  2. Fetches origin/main and rebases your branch
  3. Resolves conflicts file-by-file with full context
  4. Asks for help on ambiguous conflicts
  5. Re-runs all checks after rebase to ensure nothing broke
  6. Reports what happened: commits rebased, conflicts resolved

Quick Start up and running in 3 steps

1

Clone the repo

git clone https://github.com/utensils/claudebook.git
2

Copy commands into your project

cp claudebook/commands/*.md \
your-project/.claude/commands/
3

Use them in Claude Code

/commit-changes
/pull-request
/implement-issue #42

Write Your Own commands are just markdown

A command is a markdown file that tells Claude Code how to perform a task. Drop it in .claude/commands/ and it becomes a slash command.

  • Be explicit — Specify exact commands, flags, and tool names
  • Handle failure — Tell Claude what to do when a step fails
  • Use $ARGUMENTS — Reference user input for parameterized commands
  • Scope narrowly — One command per workflow, compose them together
my-command.md
One-line description of what this command does.

## Steps

1. **Step name** — What to do:
   - Specific sub-steps with exact commands
   - Decision points and branching logic
   - Error handling instructions

2. **Next step** — Continue the workflow:
   - More sub-steps
   ...
🤝

Contributions Welcome

Have a command that's been useful across projects? We'd love to include it. Open a PR on GitHub — just make sure the steps are concrete, actionable, and general enough to work beyond a single project.

Contribute on GitHub