What problem does it solve? It enforces consistent style when writing or modifying business logic in a Go clean-architecture usecase layer, preventing common mistakes like importing concrete repositories, misplacing validation inside transactions, or adding sentinel errors without matching HTTP error-handler cases. ## Core Features & Use Cases - Interface-at-point-of-use enforcement: Declares narrow Repository, Gateway, and UseCase dependency interfaces in the same file as the consuming usecase, listing only the methods actually called. - Transaction boundary rules: Wraps multi-step writes in txManager.WithTransaction with gorm, validates input before opening transactions, and guards optional validators with nil checks. - Three-case error handling: Distinguishes error wrapping with fmt.Errorf, domain.WrapInvalidInput-style business rejections, and direct sentinel returns, with sentinel registration in usecase_errors.go plus a matching errors_handler.go case. - Use Case: When adding a new Add method to a Movement usecase that reserves credit and persists a record atomically, follow the canonical template to wire dependencies, open one transaction, and wrap errors in English lowercase action-phrased messages. ## Quick Start Ask the AI to add a new usecase method in internal/usecase following the go-usecases conventions, including its dependency interfaces, transaction handling, and sentinel error registration.