kratos-biz-layer

Generates business logic layer components for go-kratos microservices following Clean Architecture. Creates use cases, repository interfaces, business models, and validators. Use when adding business logic to kratos services.

$ Installieren

git clone https://github.com/alecszaharia/brizy-microservices-go /tmp/brizy-microservices-go && cp -r /tmp/brizy-microservices-go/.claude/skills/kratos-biz-layer ~/.claude/skills/brizy-microservices-go

// tip: Run this command in your terminal to install the skill


name: kratos-biz-layer description: Generates business logic layer components for go-kratos microservices following Clean Architecture. Creates use cases, repository interfaces, business models, and validators. Use when adding business logic to kratos services.

<essential_principles>

How Kratos Business Layer Works

Clean Architecture Dependency Rule

The business layer (biz) is the core of Clean Architecture in Kratos microservices:

Dependency Flow: Service → Biz → Data

  • Biz defines interfaces that data layer implements
  • Biz contains business logic independent of frameworks
  • Biz uses domain models not ORM entities

Three Key Components

1. Business Models (internal/biz/models.go)

  • Domain entities with validation tags
  • Independent of database structure
  • Use validator struct tags for validation

2. Repository Interfaces (internal/biz/interfaces.go)

  • Define data access contracts
  • Implemented by data layer
  • Accept/return business models, not ORM entities

3. Use Cases (internal/biz/{entity}.go)

  • Orchestrate business logic
  • Depend on repository interfaces
  • Handle validation, logging, error mapping

Wire Dependency Injection

All constructors must be added to ProviderSet in internal/biz/biz.go:

var ProviderSet = wire.NewSet(NewSymbolValidator, NewSymbolUseCase)

After changes, run make generate to regenerate Wire code. </essential_principles>

  1. Create a new entity (use case + interface + model + validator)
  2. Add methods to existing use case
  3. Create standalone validator
  4. View examples and patterns

Wait for response before proceeding.

After reading the workflow, follow it exactly.

<reference_index> All domain knowledge in references/:

Core Patterns: use-case-pattern.md, interface-pattern.md, model-pattern.md Code Style: naming-conventions.md

Additional patterns (error handling, logging, transactions, testing) are covered within use-case-pattern.md. </reference_index>

<workflows_index>

WorkflowPurpose
create-entity.mdGenerate complete biz layer for new entity
add-methods.mdAdd CRUD methods to existing use case
create-validator.mdCreate standalone validator
view-examples.mdShow patterns and examples
</workflows_index>

<success_criteria> Business layer code is correct when:

  • Use case struct has repo, log, validator, tm fields
  • Constructor function returns interface type (not struct)
  • Methods accept context.Context as first parameter
  • Validation happens before repository calls
  • Errors are properly wrapped and logged
  • Repository interface added to interfaces.go
  • Business model added to models.go with validation tags
  • Constructor added to ProviderSet in biz.go
  • User reminded to run make generate </success_criteria>