Screaming Architecture with BCE / ECB 📎
The structure of a system should reveal its purpose. Robert C. Martin coined the term Screaming Architecture for this idea roughly 15 years ago. In the first episode of my BCE screencast course, I put it to the test: can you tell what a project does by reading its top-level package names? Production sources only, no tests.
zb:
compiler, hook, packer
zb stands for zero dependency builder. It compiles Java code, creates executable JARs, and runs unit tests as a hook. The packages describe exactly that.
prompting, sampling, tokenization, tools
With basic LLM terminology, the packages point to local inference. lightmetal runs LLMs on the Apple Metal API via llama.cpp.
agent, memory, skills, tools, tui
zsmith is an agent harness. The structure explains itself.
All three projects organize code by domain responsibility, the idea behind BCE business components. A new tool goes into tools, agent persistence lives in memory, and code is found where expected. This applies to LLMs as well: an agent navigating packages named after responsibilities locates code without scanning the whole project.