Earlier this month I hosted a fireside chat session at the AI Engineer World’s Fair:https://www.ai.engineer/worldsfair/2026 with Cat Wu and Thariq Shihipar from Anthropic’s Claude Code team. We talked about Claude Code, Claude Tag, Fable, coding agent security, evals, tool design, and how Anthropic use these tools themselves.

The full video of the session is now available on YouTube:https://www.youtube.com/watch?v=uU5Gv2h8-9g. Below is an edited copy of the transcript, with extra links and my own bolded highlights.

A few top-level notes if you don’t want to watch the video or wade through the whole transcript:

1:05:https://www.youtube.com/watch?v=uU5Gv2h8-9g&t=65s

Simon: Claude Code came out in February of last year — it’s under a year and a half old, and it was originally just a bullet point on the Claude Sonnet 3.7 launch:https://www.anthropic.com/news/claude-3-7-sonnet. How has what you do on a day-to-day basis changed in the past year , now that we have these coding agents that actually work for us?

Cat: I remember when we first came out with Claude Code and Sonnet 3.7, you would give it a task and you would have to closely monitor every single little thing it tried to do. I would read every permission prompt extremely carefully. I would frequently say no — no, no, no, did you check this file? Did you check that file? And now it’s been incredible with every model generation. I feel like we’ve all gotten a chance to take a step back and delegate a lot more of the menial implementation to Claude . It’s freed up a lot of our time to think about more creative work, like: what is the right experience that we should be providing to our users, now that we know Claude Code can implement a lot of it? And now with Fable it’s a totally different step change improvement. We see for a lot of our use cases that you can actually one-shot a ton of features with Fable now .

Thariq: I remember the first text I got about Claude Code. One of my best friends was like, “You need to go try Claude Code.” It was about when Opus 4 came out, and I tried it and I was like, “Oh, shit. I need to work at Anthropic now.” And that was Opus 4 — great model, but you were reading permission prompts. It’s kind of crazy how much amnesia we have, where I’m like, oh, auto mode has always been here, right? I don’t even remember pressing yes and allow. For me, the big thing I’m trying to push myself on is that we have to do higher quality work than we’ve ever done before . The outputs are incredibly high quality. I’ve been using it to edit videos a bunch , and I’m like, okay, it has to meet the very exacting demands of our brand team in a couple of hours or we just can’t do it. That’s how I’m trying to shift with Fable: the best work we’ve ever done, faster than we’ve ever done it before .

3:39:https://www.youtube.com/watch?v=uU5Gv2h8-9g&t=219s

Simon: What’s a piece of conventional software engineering that was true a year ago that you don’t think holds anymore in this new world?

Cat: One of the biggest shifts we’re seeing in the eng skill set: two years ago it was pretty typical for a product manager to go talk to a bunch of customers, align over the course of six months with cross-functional teams on some PRD, and write a thorough spec on exactly how we’ll implement this before the first line of code gets written. Now things are completely turned the opposite way. For a lot of engineers, the push I would give to folks in the room is to develop more of your business sense and product sense on what it is we should build , because the timeline between having an idea and building it is so much shorter — it’s down from six to twelve months to maybe even a week. That means all of us need to have better taste on what is worth building, what will actually inflect the businesses we’re working on. So it’s an increase in value on product taste and business sense , and a bit lower on execution in most product domains. Of course, for infra there’s still a very heavy emphasis on making sure all the details are right.

Thariq: For me, it’s that rewrites are now good .

Simon: The worst thing you could do is now actually fine!

Thariq: Exactly. All the Mythical Man-Month stuff — never rewrite — I’m pro-rewriting now. If you have a good test suite — and I think the rewrite actually forces you to make sure you have a good test suite — but I think what people undercount is that a codebase is a spec, and maybe it’s the only copy of the spec that you have , because no one knows every branching part of the codebase. You can take this as an artifact and distill it or create other versions of it. We rewrote Bun in Rust:https://bun.com/blog/bun-in-rust and it works great — it’s live for me right now.

Simon: You’re not shipping Claude Code on Bun-in-Rust yet, right?

(Actually it looks like Anthropic started shipping Claude Code on Bun-in-Rust to everyone on June 17th:https://simonwillison.net/2026/Jul/19/claude-code-in-bun-in-rust/.)

6:36:https://www.youtube.com/watch?v=uU5Gv2h8-9g&t=396s

Simon: The other big launch recently was Claude Tag:https://www.anthropic.com/news/introducing-claude-tag — that’s what, a week old now, at least for the rest of us. I understand it’s being used at Anthropic by non-engineers a great deal. What kind of things are non-engineers doing with Claude Tag?

Cat: Claude Tag is a Claude that lives in your team’s collaboration tools. We launched it last week within Slack. The thing that’s different about Claude Tag is it’s multiplayer by default . Once you add Claude Tag to a Slack channel, you can chime in, your teammates can chime in, and you can collaborate together on the PR. The other big difference is that it’s proactive instead of reactive. You can tell Claude Tag, “Hey, monitor every bug report in this channel, put up a PR to fix it, and tag the engineer who last touched this part of the codebase,” and it’ll do it for the lifetime of the channel without you having to manually tag it in. And the third big shift is that we’ve added team memory:https://claude.com/docs/claude-tag/users/memory into this . If you tell Claude Tag your preferences in the channel, it’ll remember them for every future post. If you always want it to debug outages but you don’t want it to debug warnings, just tell it that in natural language in the channel and it’ll remember it for you and everyone else on your team.

Internally, we see Claude Tag as the evolution of Claude Code. We see this as a large shift in how we work internally. Claude Tag currently lands 65% of our product eng PRs.

Simon: For all of Anthropic, or just for Claude Code?

Cat: This is just for our product engineering team — our internal version of Claude Tag lands 65% of our product PRs right now . And this is a huge shift; this is more than 50% of our PRs. The way we see people split work between Claude Code and Claude Tag is: Claude Code is still the best place for your most complex tasks, when you’re interactively iterating with the agent. But Claude Tag is great for having it work proactively on your behalf , so you no longer need to manually kick off Claude Code for all the bug reports that come up for features you’re working on.

Thariq: And for non-coding cases: for example, before this talk we asked Claude Tag, “Hey, when is Fable releasing?” We wanted to make sure we’d line it up with the announcement. Claude Tag would search our Slack and look at who’s been saying what. As a search engine for your company, it’s really valuable. It has all the context for your product, so you can ask it metrics-related questions — often when you’re making decisions you want them informed by what the metrics say, so you hook it up to your event store. I’ve seen our marketing team do things like, "Hey, tell me about this feature." They’re not programmers, but Claude is a programmer — it can clone the codebase and say, "This is the feature, this is what it looks like, this is a recording of me using the feature ." It enables a whole wide variety of things, and I think we’re still early in figuring that out.

10:06:https://www.youtube.com/watch?v=uU5Gv2h8-9g&t=606s

Simon: One of the problems I’ve had with coding agents is that I get how to use them as an individual, but I’m not really clear on how to use them in a team environment. It sounds like Claude Tag is your current answer to that team collaborative layer for this stuff.

Cat: Exactly. And a large percentage of our sessions are actually multiplayer right now. Maybe I say, “Hey, I think we should implement this new feature in Cowork,” and I’ll tag in Claude Tag to do a first pass at it. Then I’ll tell Claude Tag, “Share a recording of your final implementation,” and I’ll tag in design to take a look. They’ll nudge it, then pass it on to eng to take it to the finish line and get it out to prod. It’s been this very fluid experience. We’re still trying to iron out what the social dynamics are for steering the same session , but we’ve found that people just observe how others use it and follow those social norms — it’s been pretty intuitive for us to integrate Claude Tag into our teams.

Thariq: It’s great for teaching people, and also for reducing slop, because the fact that everyone is seeing you use Claude together sort of levels up how you use Claude as well .

This reminded me of how Midjourney solved the challenge of teaching people advanced image prompting by enforcing prompting in public in their Discord channels.

11:41:https://www.youtube.com/watch?v=uU5Gv2h8-9g&t=701s

Something I’ve found really hard myself is knowing when a feature is worth shipping now that the cost of actually building features has dropped so much.

Simon: How do you deal with the hardest problem in all of engineering — prioritization? How do you decide which features are worth building and shipping when building a feature is so much more inexpensive now?

Cat: This is the hard thing. There are a few ways we approach it. One is we dogfood our products every single day. Whenever there’s something we want to be able to do in our products that we’re not able to, instead of finding a different solution we fix our product so it can support that case. We have a very heavy dogfooding culture internally. Before we share our products with everyone in the world, we share them with everyone within Anthropic, and with some early customers who give us very honest feedback about it — the more brutal the better — and we iterate until people love it. We have an internal bar for the number of active users and the amount of retention a feature has to have before we share it with the world. Because this bar is very clear, every engineer knows what they’re trying to hit. I think this also levels up our polish, because if the feature isn’t polished, people will churn — and then we shouldn’t ship that feature.

Using internal user-retention to decide if a feature should ship makes a whole lot of sense to me.

12:54:https://www.youtube.com/watch?v=uU5Gv2h8-9g&t=774s

Simon: Do you have an example of a feature which surprised you? You rolled it out and the engagement was off the charts — something unlikely to be shipped that turned into a real product thing.

Cat: I do have one. A lot of folks on our team love remote control:https://code.claude.com/docs/en/remote-control. Remote control lets you use your mobile device, or Claude in the web browser, to connect to a local Claude Code session running in your CLI. I never have this need, because I just kick off the task directly on mobile and it runs in a cloud session without using my local environment — I think because I’m doing very easy coding tasks. It was something I didn’t totally understand; I was like, hey, people should just set up remote dev environments. But in practice, once we rolled out remote control, so many people I talk to told me that what they do every night is plug their laptop into a power charger, open a bunch of remote control sessions, lock the screen, and then use their mobile phone from their couch to control Claude Code . So this has become a flow we’re now leaning into that I didn’t originally get — but now I do.

14:20:https://www.youtube.com/watch?v=uU5Gv2h8-9g&t=860s

One of the over-arching themes of the conference was review: how much attention to people spend to reviewing code written for them by coding agents. I was very keen to hear the Claude Code team’s take on this!

Simon: How does code review work? Does a human being review every line of production code that makes it into Claude Code? And if not, what are you doing — how do you keep the quality up?

Thariq: It varies on the task a lot. For important areas we have code owners. The system prompt is an example where we have a code owner — you really need to get their approval.

Simon: So the code owner is directly responsible for the quality of that area of the code.

Cat: And they need to approve any PR that touches it.

Thariq: We have our code review GitHub bot:https://code.claude.com/docs/en/github-actions review everything — that goes on every PR, and often it’s doing the bulk of the review. Something I’ve seen on the team is that for more complex PRs you might make an artifact to explain the PR so that other people can then review. And we invest a lot into verification, CI/CD, things like that, to make sure that any time anything fails we have a test. We have a really robust environment where Claude can control Claude Code and test it. So there’s a multi-pronged approach to code review.

So the key seems to be constantly iterating on the automated review systems themselves, in order to build trust in them over time.

17:20:https://www.youtube.com/watch?v=uU5Gv2h8-9g&t=1040s

We got deep into evals—another hot topic throughout the wider conference.

Simon: I know that Opus 4.8, if I ask it to build me a JSON endpoint that runs a SQL query and outputs JSON, is just going to get it right — that’s not something I have to review closely. But then a new model comes along and I don’t know how to build trust in Fable quickly, that it’s not going to mess things up that Opus didn’t. How does the new model affect your intuition for what it can do and what it can’t do?

Cat: The main reason we’re building up this eval base over time is so that new models can be a drop-in replacement . When we have a new model, we run the whole eval set and make sure that, for example, Fable is strictly better than Opus 4.8 — and that gives us the confidence to drop it in.

Simon: Are those model evals for Anthropic as a whole, or Claude Code team-specific?

Cat: We have both. We have evals on our team, and we run code review across every repo within Anthropic, so we have evals for that. And for things like auto mode, we not only have evals across every user within Anthropic — we’ve also commissioned multiple external testers to red team it, to create environments with prompt injections and malicious inputs, and make sure that auto mode doesn’t let any of those pass .

18:41:https://www.youtube.com/watch?v=uU5Gv2h8-9g&t=1121s

Simon: I want to know if the system prompt improvement I made actually improved the product — that’s the most basic form of product-specific eval, and I still don’t have a great feel for how to do that. Is that something you’re doing such that you have complete confidence that a tweak you’ve made to the system prompt results in better output?

Cat: We don’t have complete confidence, but we do a lot to make sure that we don’t regress performance. The starting point is a suite of external evals that we trust, and we complement that with an even larger suite of internal evals that we trust. To start, we mainly optimize for capability : given a complete definition of a task and the full codebase, does Claude make the right decisions, fully fix the bugs, and pass all the tests? That’s the starting point and the thing we optimize for, because it’s most directly what users want. But there are a lot of behaviors that impact how users feel when they work with Claude Code. For example, people really don’t like it when Claude Code says it’s time to go to sleep. Or people really don’t like it when it says, “Hey, I finished two out of five parts — do you want me to continue?” Yes, please continue. So we’re building up a set of behavioral evals to catch these. And as we get user feedback — please be loud with us about your user feedback — we rank the priority issues and go down one by one and build evals for each of them. It’s not 100% coverage, but it is a priority for us to increase the coverage.

20:21:https://www.youtube.com/watch?v=uU5Gv2h8-9g&t=1221s

Simon: How much interaction is there between the Claude Code team and the teams at Anthropic who are training the models in the first place? Is that quite a close collaboration?

Cat: Across Anthropic, we all work quite closely together. We meet often to talk about what we expect the next generation of models to be able to do. Our research team has also been amazing about showing this publicly — we often talk in our blog posts about how we’re targeting ever-increasing longer-horizon work , and how we train Claude itself to be honest, harmless, and helpful. We also put a lot of effort into making sure it’s aligned with your intent, even if your intent is expressed in a fuzzy way. Of course, try your best to be specific about what you want, so Claude has all the context — but even when you’re not specific, we teach Claude to make good assumptions. It’s been a productive partnership.

21:24:https://www.youtube.com/watch?v=uU5Gv2h8-9g&t=1284s

So many useful prompting tips in this section!

Simon: Thariq, you mentioned this morning:https://www.youtube.com/watch?v=9fubhllmsBU&t=358s that the system prompt for Claude Code has been reduced by 80% because of Claude Fable . Can you go into a little more detail? What kind of things have you been able to drop?

Thariq: It wasn’t just Fable — it was Opus 4.8 as well, and going forward, future models. We have different system prompts for different models now. One of the patterns we saw is that we were over-constraining Claude. The initial, maybe Opus 4-ish models wanted a lot of examples, and removing examples was extremely helpful , because it was just more creative than the examples we gave it.

Simon: That’s really interesting, because one of the top prompting tips I give people is: give it examples. If that’s no longer true, that kind of breaks my prompting model a little bit.