Tommy faces the third day of discipline still in bed, phone in hand. In the chat with Tom2036, a fresh image sits on top.
Tommy keeps looking at that door longer than he meant to. But without deciding anything, he heads to work.
After grabbing his favorite coffee, he opens his laptop, and there is the launch portal waiting for him. That very client project from Tony. Tommy scrolls it from top to bottom — here's the block he rewrote three tasks ago, here's the area where he threw up his hands a week ago, and now he knows every corner.
There's something to tweak in the UI, a small thing for a couple of minutes. Tommy opens the chat with the agent, starts typing: “Fix the block...” — and stops. His finger hovers over Enter. Before, he would have pushed through without looking. But now an unfamiliar question is in his head: if the agent goes in — will it hit something nearby? Break something that already works?
— What are you freezing for? — Oliver slows down by the desk with his mug and glances at the screen. — You used to charge into code like it was your own apartment.
— Yeah, I... — Tommy searches for words and is surprised by what he says himself. — Listen, it's weird. Before, I wasn't afraid of breaking something. Sandbox, toys, nuke it — rebuild it. But this thing here, — he pokes at the block he had polished himself, — I feel sorry for it. Honestly, I'm sorry to touch it.
Oliver snorts — not mockingly, but in recognition.
— Oh, congratulations. You grew up.
— Grew up to what?
— To having something to lose. — Oliver takes a sip from his mug. — A month ago your code was empty, worth zero. Break it — no loss. But now you brought the thing to life with your own hands, and it costs money and nerves. That's why you're scared. This isn't cowardice, rookie. You have something to protect for the first time.
Tommy stays quiet, takes it in. Right on the nose.
— And you know what's funny? — Oliver nods at the portal. — You're stepping on my old rake again. Remember how I talked your ear off about my thesis? Diplom_final, Diplom_final_ispr, Diplom_vot_etot?
— Is that when you brought a draft to the defense instead of the clean copy? — Tommy snorts. — I remember.
— Exactly. Back then what was I doing? I was afraid to lose a good version — and I spawned copies. You, — Oliver points at the screen again, — are now wanting to do the same thing. You get scared to touch the portal — you start slapping folders together: portal2, portal-final, portal-exactly. And you'll drown in them, just like I did in my thesis. Just like you drowned in that 2048 yourself.
Tommy frowns — he recognizes himself from three weeks ago.
— So then what? Don't touch it at all? You won't move from the spot that way.
1. Adults don't spawn copies — they have a safe
— Adults don't spawn copies, — Oliver sets down his mug. — Adults have their own thing for that. It's called git. You've probably heard of it in passing?
— I have. — Tommy nods. — I even thought about it back then. A grown-up system for storing state history. I thought about it — and decided not to dig in, figuring it was too early.
— And now it's not too early. — Oliver smirks. — Now you have a valuable project that's hard to lose. Perfect timing. git is, roughly speaking, a safe for code. Not a pile of copy folders in the corner, but one neat history: here it was good, here too, and you can return to any point. And, — he raises a finger, — it doesn't work like that undo button you hammered last night.
Tommy tenses up.
— Wait. How do you know about the night?
— The whole floor knows, — Oliver grins. — The portal went down, you were pounding /rewind at it, and it wouldn't roll back. So listen, here's why it didn't roll back.
He leans on the desk — old-school mode has kicked in to explain.
— Your /rewind lives in the conversation with the AI agent. As long as the session is alive, it can pull anything back. But at night the session got wiped. And the agent had already written the changes to disk, into the files themselves. Your button had nothing left to rewind: the conversation where it works was gone, and the broken code was lying on disk by itself. It can't reach disk. Not because it's bad — it's just on a different floor.
Tommy slowly nods — the hopelessness of that morning finally gets a name.
— And git? — he asks.
— And git lives on disk, together with the project. One floor below your conversation. Blow away ten sessions if you want — git checkpoints will still be sitting there. That's the difference: /rewind is insurance for the conversation, git is insurance for the project itself. That night you needed the lower floor, but only the upper one had been built.
Oliver leaves, and Tommy, with nothing better to do, opens the night log again — the same autopilot journal from which he'd already pulled lessons about the spec and testing. And today, after Oliver's words, his eye catches a line he'd used to skip as a technical detail:
03:47 reward-flow.js — rewritten
04:08 portal.js:15 — simplified the check
(for the whole night — not a single return point)
Not a single return point. All night the agent was breaking, rewriting, turning off pieces — and not once did it leave behind an honest “everything still worked here.” It just kept rolling forward over broken glass, and there wasn't a single intact step behind it to fall back to. So that's why that morning felt so hopeless. It wasn't the button. It was that there was nowhere to fall.
2. Prove that failure is reversible
The thought about the safe has already settled in, but before calling Oliver to break down git, Tommy opens a chat with Alex — he needs to write up the task itself. On the portal, the reward-flow fix is waiting, that very reward allocation area. On autopilot, Tommy opens TASK_SPEC and writes out the usual: what's broken, what needs to work, how we'll know it's done.
After the overnight burnout, Alex speaks in a low voice — there's no energy for long breakdowns, he's hanging on with a single reviewer. But he doesn't let one question slide by:
— You wrote down what success looks like. What does safe failure look like? If the run blows up — will the portal survive? Prove it.
Tommy opens his mouth and closes it. The form has only success. But what if the agent blows up? Nowhere. So it turns out you need to prove not only that “the feature will work,” but also that “failure has a clean exit.”
— So where will you go back to if it goes off the rails? And most importantly: how are you going to clean up the failure — by hand or...
— ...or I'll throw it all away, Tommy catches himself saying. Cleaning it by hand is exactly the swamp from that night, where he picked changes out line by line and still wasn't sure he'd cleaned everything. — I don't clean it up. I throw out the whole broken run and fall back to a clean point.
— There. — Alex nods, weakly but approvingly. — Manual cleanup always leaves a tail you didn't notice. And rolling back to a clean point isn't “I kind of removed it,” it's “I know it's clean.” Write that next to the task in the form. And ask the old man how this rollback is built — he's in better shape than I am today.
Tommy adds a safety net to TASK_SPEC: the work happens off to the side, on a separate branch; before starting — a return point; before acceptance — a mandatory review; failure is not cleaned up, it is thrown away in one piece.
WHAT is needed is clear: a separate branch, a return point, a full rollback. But HOW it's done — that's when Tommy catches Oliver as he shuffles by with his mug again.
— Uncle Oliver, you started talking about the safe — finish the thought. How is it built inside?
GO TO FULL VERSION