This guide helps your team use Claude Code effectively on this project.
| Command | Use when... |
|---|---|
/dev |
Starting the development server |
/test |
Running tests (supports filters, watch, coverage) |
/qa |
Before committing — runs lint + typecheck + test |
/review |
After finishing a feature — code review of changes |
/deploy-dev |
Deploying to Railway staging (includes QA check) |
/deploy-prod |
Deploying to Railway production (strict safety checks) |
/deploy-gcp |
Deploying to GCP Cloud Run staging |
/deploy-gcp-prod |
Deploying to GCP Cloud Run production (strict safety checks) |
/db-migrate |
Creating or running database migrations |
/new-feature |
Scaffolding a new feature (routes, tests, types) |
Use Plan Mode (/plan or say "plan this first"):
- New features that touch 3+ files
- Architecture decisions with trade-offs
- Refactoring across multiple modules
- Tasks where the right approach is unclear
- Database schema changes
Skip Plan Mode (just ask directly):
- Bug fixes with a clear cause
- Adding a test for existing code
- Single-file changes
- Running commands (test, deploy, lint)
- Small refactors within one file
Good: "Add a GET /api/users route in src/routes/users.ts following
the pattern in src/index.ts"
Bad: "Add a users endpoint"
Good: "Create a new route handler like the health endpoint in
src/index.ts, but for /api/posts"
Bad: "Create a REST API"
Structure complex prompts with:
- Context — What part of the codebase, what problem
- Reference — Existing pattern or file to follow
- Expectation — What the result should look like
- Files — Which files to create or modify
Example:
Context: We need user authentication for the API.
Reference: Follow the route pattern in src/index.ts and
the test pattern in src/index.test.ts.
Expectation: JWT-based auth with login/register endpoints
that return tokens.
Files: src/routes/auth.ts, src/lib/auth.ts,
src/routes/auth.test.ts
Good: "Implement this using only Bun native APIs, no npm packages"
Bad: "Implement this" (Claude might reach for express, pg, etc.)
Fetches up-to-date docs for any library. Use when:
- Bun API syntax is unclear or may have changed
- Working with an unfamiliar npm package
- Need to verify current API signatures
Trigger it by including "use context7" in your prompt:
"How does Bun.serve() handle WebSocket upgrade? Use context7
for the latest docs."
For complex multi-step problems. Use when:
- Designing database schemas
- Planning migration strategies
- Debugging issues with multiple possible causes
- Working through architectural trade-offs
| Plugin | What it does |
|---|---|
| frontend-design | Generates polished, distinctive UIs (not generic AI aesthetic) |
| context7 | Injects live library documentation into prompts |
| superpowers | Structured workflows: brainstorm, plan, execute in batches |
| claude-md-management | Keeps CLAUDE.md updated as the project evolves |
| code-review | Automated code review on changes |
| security-guidance | Flags security issues and suggests fixes |
| commit-commands | Git commit helpers with conventional commit format |
Every commit automatically runs bun run qa (lint + typecheck + test). If any check fails, the commit is blocked. Fix the issue and commit again.
Before running shell commands, a hook checks for dangerous patterns:
rm -rf /orrm -rf ~— blockedsudocommands — blocked- Piping curl/wget to sh — blocked
If a command is blocked, it's for safety. Rewrite the command to be more specific.
- Create a branch:
feat/my-feature - Use
/new-feature my-feature-descriptionto scaffold - Implement the feature
- Use
/reviewto self-review - Use
/qato verify quality - Commit (pre-commit hook runs QA automatically)
- Use
/deploy-devto test on staging - Create PR and request review
- Describe the bug with reproduction steps
- Point Claude to the relevant file(s)
- Ask Claude to "check the tests" first
- Use context7 if the issue might be an API change
- Use
/reviewafter completing changes - Fix all Critical items before committing
- Address Important items unless you have a reason not to
- Suggestions are optional but worth considering
- Read CLAUDE.md — Claude follows it on every invocation. If Claude keeps making the wrong choice, update CLAUDE.md.
- Small commits — Smaller changes get better reviews and are easier to debug.
- One thing at a time — Don't ask Claude to "build the entire auth system." Break it into steps.
- Trust the hooks — If a commit is blocked, the code has an issue. Don't try to skip the hook.
- Update CLAUDE.md — When you add new patterns or conventions, add them to CLAUDE.md so Claude follows them next time.