The gap between a design and working code has been the same gap my whole career. Somebody makes a beautiful thing in a design tool. Somebody else builds an approximation of it. Everyone is mildly disappointed and nobody says so at the time.
AI has changed the mechanics of that handover completely and has not fixed it at all, which is worth being honest about.
What now works well: I can take a design file and hand it more or less directly to a session, and get a real implementation of the layout, the spacing, the type scale and the colour tokens. What used to be a week of front-end work is a session. On 13 June I pointed at a design and asked for it to be implemented on a WordPress theme, and it was, and it was good.
What does not work, and caused most of my trouble, is everything around that handover.
The design has to be in the repository. If it exists only as a link in a tool, or as an ephemeral file someone generated, then the next session cannot see it and neither can anyone else. This is the incident from the last piece. Commit the handoff.
The constraint has to be stated as hard, or it will be interpreted as soft. When I asked for a visual redesign of a screen that had a large inventory of test identifiers, drag-and-drop wiring and a state store I did not want touched, the instruction had to be explicit: visual layer only, preserve all of it. Left implicit, "redesign this screen" is a licence to rebuild it.
Somebody has to look at the result on a real device. This is the one that keeps getting me. On 11 July I found the modal on mobile went grey and lost its editing function entirely. It looked right. It was not right. An agent that cannot open the page on a phone cannot tell you that, and the tests do not know what "looks wrong" means.
Two hundred percent fidelity is not the goal. I have spent hours pushing for exact reproduction of a mockup when the honest answer was that the mockup was a suggestion and the real screen had constraints the designer did not know about. That is not new to AI. It is just faster now, so you can waste a whole afternoon on it before lunch.
The thing I would tell anyone starting this: treat the design as an input to be committed, not a reference to be consulted. If it is in the repo, everything downstream works. If it is a link in someone’s message, you are one lost session away from building from memory.
Next: the plan that looked fine and was not a plan at all.
