Skip to content

My Experience Using Claude Code with Rolldown

TL;DR — No magic, just smart models and sensible prompts

A few months ago, I thought I had a pretty good grasp of what AI could do. It might be able to write some simple scripts and handle some web development work, but it couldn’t manage a project with Rolldown’s complexity.
Over the past two weeks, it has written almost all of my code. There’s no magic in the process, just a careful application of the official Claude Code: Best practices for agentic coding documentation, and that alone turned my perception upside down.
This article is not a tutorial on how to use Claude Code, though it may have some reference value. For me, it’s a running gag, and I’ll write whatever comes to mind.
But I think it’s valuable simply to document the facts. When I realized the developers of Claude Code were using Claude Code intensively to develop Claude Code, I felt that if I wasn’t using it well, it was my problem, not Claude’s marketing.
This pushed me to try Claude Code on Rolldown, and I eventually realized there was nothing inherently hard about it. Claude Code can handle projects at Rolldown’s level of complexity.
When you read that “AI has written almost all of my code in the last two weeks,” don’t assume someone is exaggerating to sell anxiety yet again. Instead, consider how you’ll adapt if it’s true.

Early experiments and missteps

The first time I used Claude Code, I was half‑nudged into trying it by Tai Wolf. To be honest, the experience wasn’t a success.
Claude Code did solve the problem, but it took almost as long as doing it by hand. Worse, I had to constantly direct it: “do this,” “change that,” “this piece of logic is wrong.”
At the end of that trial, I discussed it with Tai Wolf and other colleagues, and we concluded that Claude Code was indeed smart, but the context wasn’t enough. Its context window couldn’t hold the volume and complexity needed to internalize Rolldown, NAPI‑RS, and OXC, which weren’t in its pre‑training.
The reasoning sounded convincing — limited context window, huge repo, multiple layers of logic — but in hindsight, it was completely wrong.

A well‑rounded JavaScript, TypeScript, and Rust expert working in a vacuum

The first mistake we made was underestimating the model’s acquired understanding. Just because Rolldown wasn’t in its pre‑training corpus, and maybe it only learned Webpack and Rollup, doesn’t mean it can’t understand Rolldown’s code.
Imagine a well‑rounded JavaScript, TypeScript, and Rust expert working in a vacuum — someone who knows programming languages and compiler theory but nothing about bundlers.
If you throw Rolldown’s source code at that person, will they really not understand it?
Rolldown is essentially complex but reasonable business logic, written in TypeScript and Rust.
Claude Code may not have seen Rolldown, but it understands the code. Rolldown’s code is not intrinsically special; deterministic statements result in deterministic execution.

Collaborating by treating AI like a teammate

In trying to attribute and analyze AI’s behavior, I found an extremely intuitive but easily overlooked principle: treat AI like a human collaborator.
After realizing this, everything made more sense. You can think of Claude Code as a person with the innate ability to access a vast body of knowledge, and the ability to learn and understand new knowledge from what is already known.
For Rolldown, it’s like having a new colleague with superhuman experience and knowledge who just doesn’t yet understand Rolldown. Not only can they understand Rolldown’s code on their own, they’ll be even better if you’re a responsible mentor and offer guidance.
Otherwise, it’s like recruiting a new person, dropping them into the codebase without a word, and expecting them to figure it out alone. That’s what goes wrong — and it’s the same with AI.

Why AGENTS.md (and CLAUDE.md) matter

AGENTS.md is like the onboarding guide you’d write for a new teammate. If you write it well, your superhuman coworkers will do a good job. If you write it in a messy way, your superhuman coworkers might think it’s fashionable to wear their underwear outside the house.
To give an example from Rolldown: the core logic is in Rust, and the outermost layer is TypeScript, which provides the API. One behavior I’ve often seen from Claude Code is focusing on the head and not the tail. If you ask it to change the naming of an option, and you don’t include a directive to that effect, it may change the Rust side of the code when you meant the Node side, or vice versa. After this happened several times, I added a line to the documentation that says:
- Trace through all three layers: When working with options or behavior, always trace from TypeScript API → NAPI bindings → Rust core to understand the full flow.
There has been no unintended behavior since.
Another implication is that AGENTS.md must be maintained over time. You have to build and update the appropriate instructions based on the model’s behavior and the project’s characteristics.
There’s no fancy prompt engineering here — just practice, feedback, and iteration.
For example, as a human, I set alarms to remind me of important events a day ahead, two hours ahead, half an hour ahead, fifteen minutes ahead, and five minutes ahead.
It’s the same for AI. If you want to prevent it from getting sidetracked, give it cues: write key processes, styles, and boundary conditions into AGENTS.md, and reference those boundaries in task instructions.

My real‑world experience

💡
I only use Claude Code’s Plan mode.
The commands I type into Claude Code are straightforward:
  • Deprecate top‑level inject, define and add transform.inject, transform.define
  • Refactor rebuild_strategy from bool to enum, remaining compatible with previous code
When I build prompts, the level of detail is determined by the complexity of the task. Mostly it’s one sentence, sometimes two or three paragraphs, and rarely — if it’s very complex — a short article. Depending on your understanding of the project and your familiarity with Claude Code, you’ll get better at writing instructions it can follow.
Of course, you’ll also need to learn to split tasks into subtasks yourself. Thanks to stacking.dev, this has become muscle memory for me.
In about 90% of cases, Claude Code delivers a change plan that matches my expectations on the first try. Only rarely do I need to micromanage, like moving a machine gun five meters to the left.

AI isn’t a wishing machine

Claude Code is powerful, but it’s not a magic wish‑granting machine. I’ve summarized these scenarios as not meeting my needs:
  • Bug fixes or architectural changes when I don’t have a clear idea myself
  • Refactoring code written by someone else that I don’t understand
  • Tasks where the outcome criteria are vague and the judgment depends on subjective experience
In these cases, I ask Claude to help me think, rather than expecting it to deliver the final result.

Closing thoughts

  • My personal understanding of AI is shallow and mostly macro‑level, far behind people deep in the field. But nothing in my experience requires specialization, including prompt engineering. I don’t need to know much — just follow the steps.
  • Whether with Claude Code or other AI tools, I’m still a beginner in many ways. But even at this level, the results are impressive.
  • This article focuses on developing Rolldown rather than the user experience, because there are no special tricks — just normal use of the Claude Code CLI.
  • The company offers AI‑specific reimbursement, which is genuinely useful. Honestly, given my initial attitude toward AI, if you’d asked me to subscribe for $20, I would have thought it a waste of money. I only tried it because the company reimbursed me. Now, I’m willing to pay $200 per month.
  • I hesitated to write this post at first, worrying it might cause anxiety — because I’ve felt that anxiety myself.
Those who know how to use it are already all‑in; those who haven’t tried it still think it’s just a toy.