So, most posts about Claude Code are written by people who installed it last Tuesday. They sound the same: a glowing screencast, a sample CLAUDE.md file someone copy-pasted from the docs, a line about how it's "changed their workflow forever."
That isnt the case with me , I've been running it as my primary IDE for nine months. I've built skills that ship every day, abandoned skills that looked clever and weren't, lost work to a config mistake I made twice, and watched my workflow split in two, the parts where Claude Code is essential and the parts where I quietly switched back to a plain terminal.
This is the honest version. The parts that worked, the parts I gave up on, and the receipts.
Well, I started out as a musician who wanted to tinker with AI , was always keen on picking up something to harness my programming skills, but never actually got around to it. Then came OpenClaw ! I dont know if it was my greatest friend or biggest foe. I used it to generate heavily arbitrary garbage, things that a proper engineer could generate in half the time with twice the resilience... thankfully the starry-eyed me removed my rose-tinted glasses soon enough .
I realized that this wasn't gonna work , I need something more definitive and something more structured to actually create something of value.
I was working on a commercial movie at that time and needed a tool that dealt with various edits and project management , that's when i actually got into Claude Code.
The first month was miserable , I couldnt figure out how to document things, or keep a track of the project, the versions, the changes, git repos .. all of that was new to me .. all while having this powerful tool that could fuck everything up at my request without second thought!
I kept modifying my CLAUDE.md files to the point where it felt like an extension of me, I can proudly say at month 9, i've shipped 4 products that have actually generated revenue streams , with paying clients , and no database deletions by OpenClaw ... hahahaha..
What I have realized is that, the key is context.. and there are only a few ways in which i can explain this , but context is king .. a lot of people keep harping on about this , but they dont realize that context for a musician or a media composer, is very different to that of a programmer/engineer. We have to articulate a sense of our own being into the md file ! It needs to know your tastes, how you interpret art and how you emote, this was a large chunk of training that i undertook with Claude Code... humongous databases of our likes and dislikes and our requirement .. phew it was a fucking journey .. on top of that we built a video decoding tool, which actually analyses what happens on screen , but in the context of storyline , emotions and graph.. that was fascinating ..
Amidst all this , a new experience was working on an architectural software for my partner , which converted basic plans into full-fledged BOQs .. the database management on that , and also developing the algorithm to decode the plan was the most exciting 40 days of my life I think ..
There did come a moment, where I stopped and thought that what i was using was not dumb , so let me not try and spoonfeed everything to it .. That's when things changed.. those few days actually changed how i used CC.
Basically we were stuck on how to decipher a scene , I kept giving ideas about how interpersonal human relationships are , and that's where i went wrong , my personal experience was unique , but CC had a much wider understanding of general audiences. and that's what worked ! the amalgamation of the two .
the reality check ..
I lost work, twice, to the same config mistake. I was brainstorming a certain idea and CC decided it knew better and changed a perfectly working onboarding process for the software. Both times I stared at the screen and went "well, fuck." Both times it was preventable. Both times the docs had warned me. The lesson: read the safety stuff. The defaults are not safe for the way I work. (honestly shouldnt have turned on nuclear mode when i was still learning)
The clincher for CC is nothing prolific or technical actually.
It's all very basic ... for example, most people write a CLAUDE.md the way they'd write a README. Stack, conventions, "always use TypeScript", "tests live in __tests__/", "we don't use Redux." Useful stuff. But it's the same stuff a competent engineer would figure out from glancing at the codebase. It teaches the model nothing it didn't already half-know.
I came at this from the wrong angle and it ended up being the right one.
I'm a composer. I write music for film. The thing I actually do for a living is make decisions about taste, does this cue land softer or harder, is this string section too sentimental, does the silence between two notes carry more than the note itself. You can't put that in a README. There's no convention to lint against. The work is the taste.
So when I started using Claude Code, my instinct wasn't to teach it my codebase. It was to teach it me. What I find pretentious. What I find honest. The phrases that make me cringe. The specific aesthetic I want my apps to have , for one of them I went with "Earthy Editorial," sage and terracotta and warm muted palette, not bright tech-bro neon. oh fuck , the number of times i've seen that black on purple theme ! Argh !!
So then i started actually feeding it taste.. and that's what made this unique for me , it no longer had the let's fucking dive in paraphrasing , random emojis etc.. all that had vamoosed.
That's not a config file. That's a self-portrait.
And here's the thing I didn't expect: it works just as well for the engineering side. Because every engineering decision is also a taste decision. When to abstract vs inline. When to add a test vs ship without it. When to pull in a library vs write the twelve lines yourself. The "right answer" depends on the kind of codebase you want — careful or scrappy, ornate or minimal, conservative or experimental. That's taste. Engineers just don't usually call it that.
Once I started writing my CLAUDE.md as "here's who I am and what I think is beautiful," the output started feeling like mine instead of like Claude's. The tonal drift that happens when you let any AI write for you, that low-grade smoothness where every sentence ends up sounding like every other sentence. Not because the model got smarter, rather because I told it what I actually wanted in language that wasn't engineer-speak.
This is the thing I think most people miss about Claude Code. The edge isn't the model. The model is a commodity nearly by the dozen now, there's a new one every quarter, they all get better, none of them are yours. The edge is the layers of you you write into the config around the model. Skills, MCP servers, memory, hooks, CLAUDE.md ...these aren't features. They're the parts of the system that compound over time. The part nobody else has.
So if you're a programmer reading this and thinking "this is artsy, doesn't apply to me" you're wrong. You just call your taste "code style" instead of "aesthetic." Same skill. Encode it.
My CC, specifically, is me in most aspects, it now sees films like I do , kinda likes the same music , is as anal about line weights in architectural drawings... All annoying traits in real life, but excruciatingly beautiful in the world where someone else is executing it for you .
what stuck ..
Now post all this lovey relationship I built with Claude, there were some skills we built which actually helped our workflow, most were very generic , like code checking , git upload formats, etc etc.. but some were exciting , we built a scale and tempo detector for a scene, not a music piece ! i know !! then we built project-switch , cos i was working on 4 projects at that time , what was unique was , when i would project switch in terminal , it would also open a whole new set of tabs on Safari .. then we built a ui-fix skill , cos i noticed cc would generally fuck up column widths and stuff.. we built maybe 10 others and quietly deleted most of them , but those 2-3 skills have saved me hours.. i have one where it figures out ingested video and compares edit changes to the older file ! GOLD !
Then comes the part that cannot be reasoned with .. I run my own Gmail MCP. My own Telegram bot bridge. My own calendar integration. People ask why I don't use the off-the-shelf ones. Three reasons: I want to know exactly what goes over the wire (privacy), I don't want to pay per call for things I do thousands of times a day (cost), and I want the schema to match how I actually think about my data, not how some product manager at a vendor thought about it.
The CLAUDE.md version I run is closer to a manifesto than a settings file. It's longer than most people's. It changes maybe once a week. It's the single most important file in my whole setup.
Now coming to something that was a pain point at first , but then not so much , the memory ! This is the most undersold feature in Claude Code and I'll die on this hill. I used to face huge troubles with remembering to ask claude to save context... remember these are the olden days... i would just shut the terminal window and bam , most context lost. Thankfully Claude Code's auto-memory writes what you've said about yourself into files that get reloaded every session. After nine months of this, the model knows more about how I actually work than most colleagues I've worked with for years. It knows I don't want to git init without asking. It knows my partner uses Render Studio so I should never restart it without checking. It knows my finance situation, my goals, my preferences, the things that have burned me before. None of that survived in any other tool I tried.
Like i hate killing my servers, cos my wife uses some to edit photographs, my accountant is probably using one .. so then we built systems to actually safeguard these things — they're not features I learned in a tutorial. They're things I built in response to friction I was actually feeling. Anything I built because "oh that's a cool feature, let me try it", puff, gone within a month.
and the stuff i gave up on ..
Audit automations being the main one .. how much ever you try .. the slop never fails to amaze, nor does the drift... I realized using CC as an assistant rather than a partner is most effective.. and i've had many such fuckups
- The over-engineered skill that tried to handle too many cases cos i asked all my wife's work photos to be quality checked before publishing on her website !
- The OpenClaw "agent everywhere" pattern that turned out to be more work than it saved
- The slash command nobody — including you — remembered to run
- A daily briefing hook that fired too often and got annoying
- A
CLAUDE.mdsection that contradicted itself and confused the model - the funniest was me trying to force CC to make a 3d model of a switch , and then realizing it just wasnt the right tool
The pattern I see in retrospect, across all the failures: I was trying to be clever instead of trying to be useful. The clever ideas all rotted. The simple ones all stayed.
Nine months in, 3 things this setup has shipped:
Throughline — Film management and scoring software ArchiBot — Drafting and automated BOQ software ContextArch CLI — didn't really take off, but i learned a fuckton from building it.
I'm not claiming Claude Code built these. I built them. But the ease of use, that came from somewhere I hadn't had before. The same months that produced these three products, in the pre-Claude-Code version of my life, would have produced one half-finished prototype and a stack of TODO comments I never came back to.
if you're starting ..
Don't try to use everything in week one. The skills, hooks, MCP, memory system, all of it, they're not a stack you adopt. They're tools you reach for when you have a specific friction.
Build one skill in your first month. The wrong one. Pick something you do every day, build a skill for it, watch it not quite work, delete it, build a better one. That's how you learn what a good skill looks like. Reading the docs about skills will not teach you this. Building one and deleting it will.
Write your CLAUDE.md as a self-portrait, not a config file. It can be three paragraphs. It can be ten pages. It can be ugly. The only rule: it should sound like you. If a reader can't tell whose CLAUDE.md it is from reading it, the model can't either.
Don't replicate what the chat already does well. Build for the parts that require acting on your stuff — files, repos, services, your real life. That's the part where Claude Code is actually different. The rest is just a chat with extra steps.
Nine months in, the thing I'd tell my month-one self isn't a tip. It's a reframe. Stop treating this as a smarter chatbot. Start treating it as a tool that can hold "you". your taste, your bad habits, your past mistakes, the kind of work you want to make. The features are interchangeable. The version of yourself you've encoded into the config is the moat.
That's also, I think, what people will eventually mean when they say "context engineering." More on that in a separate post, but for now: if anything in here landed, the move is to go open your CLAUDE.md and write the part of it that sounds like nobody but you.