Narrative text is a worse UI pattern. It's impractical to read. Also how exactly do you merge narrative changes if you need to write several transformations as updates? Are you expected to update the original text? How does this affect diffs in version control?
I think it's more ideal to have the LLM map text to some declarative pseudocode that's easy to read which is then translated to code.
The example given by Daniel might map to something like this:
define sign-in-screen:
panel background "#f9f9f9":
input email required: true, validate-on-blur: true
input password required: true
button "Sign in" gradient: ("#EEE" "#DDD")
connect-to-database
Then you'd use chat to make updates. For example, "make the gradient red" or "add a name field." Come to think of it, I don't see why chat is a bad interface at all with this set up. replies(2):