Skip to content

Code scaffolding

A server that generates the skeleton of a new module — a use case, an adapter, a service — in the shape this team already uses, with its test structure, its package layout and its contract wiring in place.

Templates go stale the moment the codebase moves past them, and nobody notices because a template is only read when a new module is created — which is rarely, and always by whoever is least equipped to spot the drift.

This server generates from the blueprint repositories that are themselves maintained and built: arch-blueprint-java, arch-blueprint-kotlin, arch-blueprint-quarkus. If the blueprint compiles and its tests pass, the shape being propagated is a shape that currently works.

  • The ports and adapters skeleton for a new use case: the port interface, the application service, the inbound adapter, the outbound adapter stub.
  • The test skeleton alongside it — an acceptance test through the port, failing, because a scaffold that generates code without its test has generated half the work and the less important half.
  • The contract wiring: the generated client or server stub from the registered API contract, rather than a hand-written HTTP call.

It does not decide that the module should exist, what it is called, or where the boundary around it sits. Those come out of event storming and the design conversation. Scaffolding starts after the decision.

A scaffolder that generates a lot is a scaffolder whose output nobody reads. The target is the smallest skeleton that removes the tedium and leaves every interesting choice visible — not a working feature with the business logic missing.

Not built. The blueprint repositories exist; the server that reads them does not. See the Spring Boot and Quarkus stack pages.