Config New Module (Java)
Overview
Scaffold determinístico de um Bounded Context seguindo java-namespace-layout.md:
packages/customers/
domain/entity/Customer.java
domain/repository/CustomerRepository.java
application/dto/CreateCustomerInput.java
application/usecase/CreateCustomerUseCase.java
apps/backend-java/.../modules/customers/
infrastructure/persistence/CustomerJpaEntity.java
infrastructure/persistence/CustomerRepositoryAdapter.java
interfaces/web/CustomerController.java
Workflow
- Confirmar workspace bootstrap (
config-project-java). - Executar script com nome do BC (plural, kebab-case).
- Opcional:
--entity=Customerse o singular não for inferível. - Registrar dependência BC no
apps/backend-java/build.gradle. ./gradlew build.
Commands
node config-new-module-java/scripts/create-module-java.mjs customers --entity=Customer --group=com.example
Stubs de implementação
O template gera use case e adapter como stubs (UnsupportedOperationException("implement via ...")), completados pelos skills de implementação da camada:
application/usecase/Create__Entity__UseCase.java→core-use-case-javainfrastructure/persistence/__Entity__RepositoryAdapter.java→backend-data-java
O controller já segue o contrato §5.1: devolve DTO (Create__Entity__Output), 201 Created e 400 { "errors": [...] } via getErrorMessages() quando o Result falhar.
Resources
agents/openai.yamlscripts/create-module-java.mjsassets/module-template-java/../config-shared-core-java/references/java-namespace-layout.md
Global Standards
- Consultar
../skills-standards.mdseção Java Stack Standards.