LLMs produce poor domain-specific code not because they're incapable, but because they lack domain context. Using Domain Storytelling and EventStorming as structured inputs to LLMs dramatically improves generated code quality. The post walks through three prototype iterations of a recipe-sharing platform (CookWithUs): starting with a Domain Story and Visual Glossary, refining with EventStorming to surface business rules (e.g., 'a Cook cannot rate their own Recipe'), and finally splitting into three bounded-context OpenAPI specs that drive both backend and frontend generation. Each modeling step reduces ambiguity and produces measurably better LLM output. The key insight is that the Ubiquitous Language from collaborative modeling sessions serves as the specification that makes LLM-assisted development reliable — the domain work must still be done by humans, but once encoded precisely, LLMs become effective executors.
Table of contents
1. The Broken Promise of AI-Assisted Development2. The Core Idea: Ambiguity Is the Enemy3. Step One — Domain Storytelling: Capturing Intent4. Step Two — EventStorming: Sharpening the Language5. Step Three — The API Spec as Machine-Readable Contract6. The Ubiquitous Language as the Red Thread7. A Word for the Skeptics8. Conclusion: Stories First, Code SecondReferencesSort: