production-ready
May 9, 2026 · View on GitHub
A Claude Code skill that asks what production means to you, then enforces it on every line of code.
Install
In Claude Code, run:
/plugin marketplace add josharsh/production-ready
Or manually:
mkdir -p ~/.claude/skills/production-ready
curl -sL https://raw.githubusercontent.com/josharsh/production-ready/main/skills/production-ready/SKILL.md \
-o ~/.claude/skills/production-ready/SKILL.md
Manual: Copy skills/production-ready/SKILL.md to ~/.claude/skills/production-ready/.
Why I Built This
Every time I start a new project with Claude, it writes MVP code. Happy path works. Error handling is a generic try-catch. Input validation is TypeScript interfaces with zero runtime checks. Tests are "coming later." Secrets are hardcoded. And there's a trail of TODO comments that nobody will ever come back to.
The problem isn't that Claude can't write production code — it can. The problem is it defaults to tutorial quality unless you explicitly ask for more. And even then, "make it production ready" means different things for different projects. A weekend side project doesn't need rate limiting. An enterprise API does. Claude doesn't know the difference unless you tell it.
/production-ready fixes this by asking YOU what production means at the start of the session, then enforcing those standards on everything it writes. No silent shortcuts. No "we'll add that later." If it's going to skip something, it tells you first.
How It Works
The Calibration (30 seconds)
You: /production-ready
Claude: These are always on (unless you disable one):
- No hardcoded secrets — use environment variables
- Input validation on external boundaries
- Error handling with specific types, not generic catch-all
- No TODO/FIXME/placeholder code left behind
- No debug logs left in
- Functions do one thing
Want to disable any of these, or are we good?
You: Good.
Claude: Which of these matter for this project?
- Tests (unit? integration? framework?)
- Structured error responses
- Auth on every endpoint
- Database migrations / connection pooling
- Logging with levels
- CI/CD config
- Rate limiting
- Environment config validation
- Runtime type validation (zod, etc.)
You: Unit tests with Vitest, zod validation, structured errors.
Claude: Anything else specific to your project?
You: All API responses must include a requestId header.
Claude: Production standards locked:
Baseline: secrets, validation, error handling, no TODOs, no debug logs
Tests: unit tests with Vitest
Types: zod validation on all inputs
Errors: structured { error, code, details }
Custom: requestId header on all responses
30 seconds. Now every line of code in this session meets YOUR standards.
The Enforcement
You don't have to remember to ask. Claude writes production code by default:
- Validation at entry points, not buried in business logic
- Error handling with specific types and status codes
- Tests written alongside code, not promised for later
- Environment variables for anything that changes between environments
- Your custom rules applied automatically
The "I'm in a Hurry" Moment
You: Just quickly write me a login function, skip the extras.
Claude: I can do a quick version, but here's what I'd skip:
- Input validation on the endpoint
- Unit tests
- Structured error response
Want the quick version, or should I build it right?
Never silently downgrades. You choose with full information.
The Check
You: /production-ready check
Claude: Production Review: src/api/users.ts
✓ Input validation — zod schema on POST /users
✗ Error handling — catch returns generic 500
✓ Auth — middleware applied
✗ Tests — no test file found
✓ No hardcoded secrets
✗ Custom — missing requestId header
3/6 standards met. Want me to fix the gaps?
Commands
| Command | What it does |
|---|---|
/production-ready | Calibrate your standards, then enforce them |
/production-ready check | Review code against your defined standards |
/production-ready standards | Show current standards in effect |
Testing
Tested with skillmother:
skillmother test skills/production-ready/
Uninstalling
rm -rf ~/.claude/skills/production-ready
License
MIT