# How I Built a Production Claude Code Setup (and Open-Sourced It)

> Source: <https://dev.to/faizkhairi/how-i-built-a-production-claude-code-setup-and-open-sourced-it-1be4>
> Published: 2026-06-22 07:06:51+00:00

I have been using Claude Code seriously for months. And I kept hitting the same frustrations:

So I built a reference architecture that fixes these. Then I open-sourced it.

[Claude Code Blueprint](https://github.com/faizkhairi/claude-code-blueprint) is a library of ready-to-copy files: CLAUDE.md, hooks, agents, skills, and rules. You copy what you need into your own project. Nothing more.

It is not a framework. It is not a wrapper. It is configuration files that change how Claude Code behaves.

**12 agents * 17 skills * 12 hooks * 6 rules**

60 seconds to start:

`ash`

curl -o CLAUDE.md https://raw.githubusercontent.com/faizkhairi/claude-code-blueprint/main/CLAUDE.md

The CLAUDE.md ships with three behavioral rules that prevent the most common AI coding mistakes:

Before writing any fix, Claude must run four checks: git state, error source, existing suppression, minimum viable diagnosis. This stops the most common waste -- building an elaborate fix for a problem that was already solved in a previous commit.

Any change touching more than one file goes through plan mode. No exceptions. Claude proposes, you approve, then it executes. This prevents the pattern where Claude charges into a 15-file refactor and produces something you did not ask for.

After finishing any task, Claude runs a verification pass appropriate to the work type. API endpoint? It curls the live URL. Config change? It confirms the value was actually picked up. File edit? It re-reads the changed block. This alone catches a significant proportion of errors before you do.

This was the hardest part to get right. Claude Code has no native persistent memory between sessions. The blueprint solves this with a file-based memory system:

Every session starts with a load-session hook that reads these files. Every session ends with a save-session hook that writes them. The result: Claude picks up where it left off, even days later.

One of the things I learned the hard way: running everything on the expensive model wastes quota on mechanical work.

The blueprint ships with 12 agents, each pinned to the right model tier:

The main Claude Code session (Opus) orchestrates. Sonnet subagents do the bulk work. Your expensive quota goes to the decisions that need it.

Skills are slash commands that invoke multi-step workflows. The blueprint ships 17:

| Skill | What It Does |
|---|---|
| eview-full | Full PR review across security, logic, tests, style |
| deploy-check | Pre-deploy checklist for your stack |
| est-check | Run tests, check coverage, flag gaps |
| sprint-plan | Turn a backlog into a sprint with estimates |
| load-session | Restore context from memory at session start |
| save-session | Write session state to memory at session end |
| self-review | Review your own diff before pushing |

Hooks run outside Claude's context window. They cost zero tokens. They are the highest-leverage place to add guardrails.

The blueprint ships 12:

Any developer using Claude Code who wants more reliable, consistent behavior. The blueprint is framework-agnostic -- it configures Claude's behavior, not your code.

There are four presets if you want a guided start:

`ash`

./setup.sh --preset=minimal # CLAUDE.md + 3 core hooks

./setup.sh --preset=standard # + agents + skills

./setup.sh --preset=full # everything

The README and setup docs are available in Japanese, Korean, and Chinese. The community contributed these.

GitHub: [github.com/faizkhairi/claude-code-blueprint](https://github.com/faizkhairi/claude-code-blueprint)

MIT licensed. Copy what you need. Leave the rest.

If it is useful, a star helps others find it.
