Skip to main content

The First Thing You Should Build With Claude Code Isn't Code

Most Claude Code projects fail because you started building before building the system. The meta-system—CLAUDE.md, memory, skills—makes every session compound.

Robbie Jack
Robbie Jack
10 min read
Share
The First Thing You Should Build With Claude Code Isn't Code
The First Thing You Should Build With Claude Code Isn't Code

Most people start a Claude Code project the same way. They fire up the terminal, describe what they want to build, and start prompting. Day one feels electric. Code is flowing. Features are materializing. Progress is visible.

Then the project gets more complex. And everything starts to break down.

Claude forgets decisions you made two sessions ago. It rewrites a component in a style you already told it you don't use. It names things inconsistently. It makes the same architectural mistake it made last Tuesday, because it has no memory of last Tuesday. Every session starts cold. You spend the first fifteen minutes re-explaining context that should already exist somewhere.

So you blame the tool. "Claude Code is only good for simple stuff." I hear this constantly. And it's almost always wrong.

The problem isn't Claude Code. The problem is that you started building before you built the system that makes building possible.

What Is a Claude Code Meta-System?#

When I start a new project with Claude Code, the first thing I create isn't a feature, a component, or a file structure. It's what I call the meta-system: the collection of context, instructions, memory, and skills that teaches Claude Code how to work on this specific project.

A Claude Code meta-system has four parts. The CLAUDE.md file is the project's operating manual. It tells Claude the project's purpose, architecture preferences, coding standards, and behavioral instructions. The memory architecture defines how decisions, patterns, and learnings persist across sessions so the system doesn't repeat mistakes. The skills library contains reusable capabilities, things like slash commands, agents, and workflows that the system can call on whenever it encounters a familiar problem. And the supporting context is everything else: API documentation, design system specs, reference implementations, architecture decision records.

This is not documentation. It's not setup hygiene. It's a fundamentally different mental model for working with AI coding tools.

Without a meta-system, every Claude Code session starts from zero. With one, every session starts from everything you've already figured out. You're not configuring a tool. You're building a collaborator's understanding of your project before you ask it to produce anything.

And here's the part most people miss: the meta-system is the most valuable artifact you'll produce. Code depreciates the moment you write it. Context appreciates every time you add to it.

How to Build Your Foundation Layer#

Start with a blank folder. Not a template repo someone shared on GitHub. Not a starter kit. A blank folder. The first time you build this from scratch, you'll learn what actually matters to you. Templates teach you someone else's opinions. Building from zero teaches you yours. This is the same principle behind front-loading your primitives—lock down your foundations before you start building on top of them.

Write CLAUDE.md Before Anything Else#

Open that blank folder and create one file: CLAUDE.md. Before a single line of application code exists, write down how this project should work.

Most CLAUDE.md files I see look like this:

## Architecture
- Next.js app router with TypeScript
- Supabase for auth and database
- shadcn/ui for components

## Coding Standards
- Functional components only. No classes.
- Named exports. No default exports except pages.
- Error handling: always use try/catch with specific error types.

That's fine. It's also what every tutorial tells you to write. And it's the least important part.

Architecture and coding standards are table stakes. A linter can enforce half of them. The real value is in the sections that teach Claude Code how to think about your project, how to remember what it learns, and how to get better over time. That's the meta-system.

Here's what those sections look like in my projects:

# Project: GrowthMarketer Platform

## Purpose
Growth-as-a-Service platform for B2B SaaS and DTC brands spending $100K+/mo
on ads. Solo operator model. The product replaces agency relationships with
AI-native growth infrastructure.

## Memory and Context

### Decision Log
Before making any architecture or pattern decision, check docs/decisions/.
If a relevant decision exists, follow it. If you disagree with a past
decision, don't silently override it. Reference the original, explain
what changed, and create a new decision record.

### Session Continuity
At the start of every session, read docs/project-state.md for current
priorities, recent changes, and open questions. Before ending a session
that involved significant decisions or new patterns, update this file.

## Skills Protocol

### When to Create a Skill
If you solve a problem I'll want solved the same way again, create a
skill file in .claude/skills/ before moving on. Not after. Not later.
Before the next task.

### Skill Structure
Each skill file includes: a description of what it does, when to use it,
the inputs it expects, the output format, and at least one example of
correct output. Skills reference other project files by path, never by
copying content inline (content drifts, paths don't).

### Skill Improvement
When a skill produces output that needs correction, update the skill
with the correction. Add the edge case. The goal is that the same
mistake never happens twice.

## How to Handle Uncertainty
If you're unsure about an implementation approach, don't guess. Write
out the options with tradeoffs in a brief analysis, then ask. Guessing
costs more time than a 30-second conversation.

The architecture and standards matter. But they're not what makes the meta-system compound. The memory protocol, the skill creation triggers, the rules for handling uncertainty: that's the infrastructure that makes session fifty dramatically better than session one.

Set Up the Memory System#

Claude Code doesn't have persistent memory between sessions by default. Every conversation starts fresh. The memory system is how you solve that.

This can be as simple as a docs/decisions/ folder where architecture choices get recorded, or as structured as a memory bank pattern where key decisions, learnings, and project state are maintained in markdown files that Claude reads at the start of every session.

The point is: when Claude Code makes a decision in session four, it should be findable in session forty. Otherwise you're paying for the same thinking twice.

Define How Skills Get Created#

This is where the compounding starts. When Claude Code solves a problem well, for example, scaffolding a new API endpoint with all your conventions baked in, that solution should become a reusable skill. Not just a snippet you hope it remembers. A structured, documented capability it can call on next time.

Define where skills live (I use .claude/skills/), how they're structured, and what triggers their creation. A simple rule works: if Claude does something you'll want done the same way again, it becomes a skill before you move on. This is the same skills compounding dynamic that separates early AI adopters from everyone else—except applied to your tools instead of yourself.

The Second Layer: Skills, Docs, and Context#

Once your foundation exists, build the project-specific layer on top of it. This is where you load the context that turns a general-purpose AI assistant into a collaborator that understands your project deeply.

Import or create domain-specific skills for the things you do repeatedly. Testing patterns, component scaffolding, deployment workflows, database migration templates. Each one saves you the time of explaining your preferences from scratch.

Add reference documentation. If your project uses a specific API, drop the docs into a reference folder. If you have a design system with tokens and spacing rules, include the spec. If there are architecture decision records from earlier in the project, make them accessible.

Include example implementations. If you want new components to follow a specific pattern, show Claude a completed example of that pattern. One good reference implementation teaches more than a page of written instructions.

The more context you front-load here, the less you repeat yourself later. I've built projects where, by week two, I could describe a feature in one sentence and Claude would scaffold the full implementation: correct naming conventions, proper error handling, matching test structure, consistent with every other component in the codebase. Not because it's magic. Because I spent the time upfront teaching it how this project works. I wrote about this exact workflow when I built this site with Claude Code—one sentence descriptions turning into full implementations because the meta-system already knew every convention.

The Compounding Effect#

This is the part that makes the meta-system worth the upfront investment. The returns aren't linear. They're exponential.

Each session makes the system smarter. A bug fix reveals an edge case, so you add it to the relevant skill. An architecture decision gets documented, so future sessions don't relitigate it. A testing pattern crystallizes, so it becomes a reusable command. The system's floor keeps rising.

After a few weeks of active development, the meta-system knows more about your project's conventions, patterns, and history than most human collaborators would. Not because it's smarter. Because everything is written down and it reads all of it every time.

Skills improve through use. The first version of a skill is rough. The fifth version handles edge cases you didn't think of when you wrote the first. Over time, you're not just using Claude Code. You're refining a custom-built development environment that keeps getting better.

Most people treat Claude Code like a contractor they hire fresh every morning. No institutional knowledge. No memory of what happened yesterday. Every day starts with "So here's what we're building..." That's an expensive way to work. The meta-system approach is more like training a team member who gets sharper with every project.

And here's where it gets really interesting: the portable parts of your meta-system transfer across projects. I have over a dozen production skills I carry with me, things like a blog post writer, an ad asset generator, a landing page skill, a PRD architect. My next project doesn't start from a blank folder anymore. It starts from everything I've learned across every project I've built.

Your first meta-system takes real effort. Your second one takes half the time. By the third or fourth, you have a personal starter template that gives every new project a massive head start before you write a single line of application code. This is the practitioner's edge in action—years of building real things give you the judgment to construct a meta-system that actually works, while newcomers are still copying templates they don't understand.

Build the System That Builds the Software#

The shift happening right now isn't about prompting. It's not about which AI model is fastest or which coding agent has the best autocomplete. The builders who win with these tools are the ones who invest in the infrastructure that makes every future interaction more effective.

The meta-system is that infrastructure. CLAUDE.md, memory, skills, context. It's the most valuable thing you'll build, and none of it is application code.

The best developers I know aren't writing more code with AI. They're writing less, because they built a system that already knows how.


Ready to Build AI-Native Growth Systems?#

The meta-system approach isn't just for code. It's exactly how we run growth for clients—AI-powered workflows with human expertise in the loop, compounding systems that get smarter every week.

Apply to work with us and see what happens when your growth partner builds systems, not just campaigns.

Robbie Jack

Founder, GrowthMarketer

Co-founded TrueCoach, scaling it to 20,000 customers and an 8-figure exit. Now runs GrowthMarketer, helping scaling SaaS and DTC brands build AI-native growth systems and profitable paid acquisition engines.