Technical
Claude Code in Production: A Year of Orchestration Patterns
Claude Code went from a novelty to my primary development interface in less than a year. The shift was not the tool getting better. The shift was me learning how to direct it. Here are the orchestration patterns that actually produced shipped code over the last twelve months.
Pattern 1: The CLAUDE.md Contract
Every project gets a CLAUDE.md file at the root. That file describes conventions, important paths, and things the agent must not do. Without this file, the agent guesses. With this file, the agent executes with context.
# CLAUDE.md
## Conventions
- TypeScript strict mode
- Never use em dashes in user-facing text
- Database migrations live in `db/migrations/`
## Do Not Modify
- `.env` files
- `package-lock.json` (use npm install)Pattern 2: Scoped Tasks
Bad task: 'add authentication to the app'
Good task: 'add JWT authentication to the /api/posts POST endpoint using the existing verify_token helper'
The difference is specificity. Scoped tasks produce correct code on the first try.
Pattern 3: Verification First
Before asking the agent to build a feature, I ask it to verify the current state:
- 'What endpoints exist in the posts router?'
- 'Is there a test for the subscribe flow?'
- 'Where does the email template live?'
This pre-loads the agent context and catches my wrong assumptions before they become wrong code.
Pattern 4: Artifact Scripts for Repetitive Work
When I need to create 30 similar things, I have the agent write a Python artifact script. The script is code I can read, test, and rerun. The agent writing 30 things inline is code I have to trust blindly.
What Broke and Why
Long sessions drift. After about 90 minutes in one context, the agent starts contradicting itself. The fix is to close the session, commit the work, and open a fresh one. Fresh context beats long context.
Pattern 5: Human Verification Gates
After every meaningful change, I verify before moving on. Run the tests. Open the page. Check the logs. Agents generate faster than I can verify, which means verification is the actual bottleneck. Planning around verification capacity, not generation speed, keeps the whole workflow sustainable.
The Outcome in Numbers
Rough estimate across this year: roughly 80% of my shipped code touched an agent at some point. Roughly 100% of the architectural decisions were mine. That ratio feels right. The agent accelerates the typing. I still own the thinking.
See the Claude Code best practices for the current orchestration guidance.
RELATED READING
The Consulting Shift I Am Making In Year Two
After a year of writing and building, my consulting practice is changing shape. Shorter engagements. Sharper outcomes.
ReadThe Frontend Shift: Shipping Less JavaScript In Year Two
A year ago I reached for Next.js for everything. This year I often reach for nothing.
ReadThe Serverless Lesson I Would Write On A Sticky Note
After a year of shipping serverless projects, one rule explains most of the wins and all of the losses.
Read