Applying judgment is much harder when the amount of stuff that theoretically needs judgment is not actually processable by humans. I don’t want to throw my hands up and give up but I honestly haven’t found a middle ground that works.
It is nice that models remain stable, explains points of the architecture and an llm is good at following instructions that model changes needs a human in the loop. Languages with good static type systems cause friction in a transformation to show up in the types, which act as (weak) specifications.
It works to some extent