modern-csharp-coding-standards
Write modern, high-performance C# code using records, pattern matching, value objects, async/await, Span<T>/Memory<T>, and best-practice API design patterns. Emphasizes functional-style programming with C# 12+ features.
domain-driven-design
Domain-Driven Design tactical and strategic patterns including entities, value objects, aggregates, bounded contexts, and consistency strategies. Use when modeling business domains, designing aggregate boundaries, implementing business rules, or planning data consistency.
clean-architecture
Provides implementation patterns for Clean Architecture, Hexagonal Architecture (Ports & Adapters), and Domain-Driven Design in PHP 8.3+ with Symfony 7.x. Use when architecting enterprise PHP applications with entities/value objects/aggregates, refactoring legacy code to modern patterns, implementing domain-driven design with Symfony, or creating testable backends with clear separation of concerns.
domain-driven-design
Domain-Driven Design tactical patterns for complex business domains. Use when modeling entities, value objects, domain services, repositories, or establishing bounded contexts.
symfony:value-objects-and-dtos
Apply production-grade Symfony architecture and execution workflows with controlled scope and clear checkpoints. Use for value objects and dtos tasks.
domain-building-blocks
A design guide for DDD building blocks (value objects, entities, aggregates, domain services). Used when domain modeling, designing entities, deciding aggregate boundaries, or implementing value objects. Triggers: domain-modeling related requests such as “I want to create a value object,” “aggregate design,” “how to write domain services,” “difference between entity and value object,” or “I want to implement this in DDD.”
DDD module pattern
Domain-layer packaging guidance based on DDD module patterns. Detects technology-driven packaging (entities/, value-objects/, services/, repositories/, etc.) and prompts migration to domain-terminology-based packaging. Guides module names in the domain layer so they become part of the ubiquitous language. Triggers: activated by domain-module-related requests such as “domain layer package structure”, “DDD module design”, “want to fix technology-driven packaging”, “want to stop using an entities/ folder”, “domain package review”, and similar.
domain-modeling
Create production-ready Effect domain models using Schema.TaggedStruct for ADTs, Schema.Data for automatic equality, with comprehensive predicates, orders, guards, and match functions. Use when modeling domain entities, value objects, or any discriminated union types.
domain-entity-generator
Generates Domain Entities following DDD principles with factory methods, private setters, domain events, and proper encapsulation. Supports aggregate roots, child entities, and value objects.
laravel-value-objects
Immutable value objects for domain values. Use when working with domain values, immutable objects, or when user mentions value objects, immutable values, domain values, money objects, coordinate objects.
domain-driven-design
Apply Domain-Driven Design patterns. Use when modeling complex business domains, defining bounded contexts, or designing aggregates. Covers entities, value objects, and repositories.
Test Data Builder Pattern (dotnet)
Complete implementation guide for the Test Data Builder Pattern. Use when you need to create maintainable test data or simplify test setup for complex objects. Covers fluent interfaces, semantic factory methods, default value design, and Builder composition patterns. Keywords: test data builder, builder pattern for tests, object mother, fluent interface, UserBuilder, ProductBuilder, .With(), .Build(), AUser(), test data preparation, complex object construction, semantic testing
implementing-ddd-architecture
Design and implement DDD patterns (entities, value objects, aggregates, CQRS). Use when creating new domain objects, implementing bounded contexts, designing repository interfaces, or learning proper layer separation. For fixing existing Deptrac violations, use the deptrac-fixer skill instead.
creating-springboot-projects
Create Spring Boot projects with Java 25 and Spring Boot 4. Use when user wants to create, build, scaffold, setup, or initialize a new Spring Boot application, microservice, REST API, or backend service; asks for project structure recommendations; mentions Java 25 or Spring Boot 4 features (RestTestClient, HTTP Service Clients, API versioning, JSpecify null-safety, modularization); needs architecture guidance (layered, package-by-module, modular monolith, tomato, DDD+hexagonal); or requests Spring Initializr setup. Also triggers on discussions about Spring Boot architecture patterns, Value Objects, CQRS, or domain-driven design.
JBCT
Java Backend Coding Technology skill for designing, implementing, and reviewing functional Java backend code. Use when working with Result, Option, Promise types, value objects, use cases, or when asked about JBCT patterns, monadic composition, parse-don't-validate, structural patterns (Leaf, Sequencer, Fork-Join), or functional Java backend architecture.
long-parameter-list
Refactor methods with excessive parameters by using parameter objects, value objects, or method calls to improve code readability and maintainability.
preserve-whole-object
Pass entire objects as method parameters instead of extracting and passing individual values
symfony-validator
Validate values following JSR-303 Bean Validation specification. Use this skill to validate objects, raw scalar values, and arrays with built-in constraints or custom validation logic. Support validation groups, error severity levels, and message translation.
introduce-null-object
Replace null values with objects that provide default behavior, eliminating excessive null-checking code through polymorphism
symfony-validator
Validate values following JSR-303 Bean Validation specification. Use this skill to validate objects, raw scalar values, and arrays with built-in constraints or custom validation logic. Support validation groups, error severity levels, and message translation.
change-value-to-reference
Change Value to Reference refactoring - convert value objects into reference objects to ensure data consistency and eliminate duplication of shared mutable state
replace-data-value-with-object
Replace Data Value with Object refactoring - convert primitive data values into dedicated objects to enable behavior encapsulation, validation, and type safety
analyzing-domain-model
Use when analyzing domain entities, value objects, aggregates, and business rules encoded in the model
objection-handling-expert
Expert in analyzing and responding to tenant objections in commercial lease negotiations. Use when tenant objects to rent as above market, requests higher TI allowance, demands more free rent, pushes back on security deposit or personal guarantee, claims market is soft, cites competitive properties, requests shorter term or early termination rights, or challenges any lease provision. Expert in classifying objection types (financial, operational, market-based, risk-based), distinguishing legitimate concerns from negotiating tactics, and crafting evidence-based responses. Key terms include rent objection, TI allowance, free rent, market comparables, competitive pressure, tactical objection, legitimate concern, evidence-based response, value-creating solution
spring-boot-data-ddd
A Spring Boot 4 data-layer implementation tailored for Domain-Driven Design (DDD). Use this when implementing JPA or JDBC aggregates, Spring Data repositories, transactional service boundaries, projections, or entity auditing. It includes support for aggregate roots via AbstractAggregateRoot, mapping and persistence of value objects, and use of EntityGraph or fetch-joins to prevent N+1 select issues. Also covers Spring Boot 4 specifics such as JSpecify null-safety annotations and AOT-compatible repository patterns for native-image readiness. For DDD concepts and design decisions, see the domain-driven-design skill.
refactor:value-objects
/value-objects
domain-driven-design
Expert guidance for Domain-Driven Design (DDD) architecture and implementation. Use when designing complex business systems, defining bounded contexts, structuring domain models, choosing between a modular monolith and microservices, implementing aggregates, entities, or value objects, or when users mention DDD, domain-driven design, bounded context, aggregate, domain model, ubiquitous language, event storming, context mapping, domain events, anemic domain model, strategic design, tactical patterns, or domain modeling. Helps make architectural decisions, identify subdomains, design aggregates, and avoid common DDD pitfalls.
domain-driven-design
Design and review software using patterns from Eric Evans' "Domain-Driven Design." Use for DDD tactical patterns (Entities, Value Objects, Aggregates, Repositories, Factories, Domain Services), strategic patterns (Bounded Context, Context Map, Anticorruption Layer, Shared Kernel, Open Host Service), supple design (Intention-Revealing Interfaces, Side-Effect-Free Functions, Closure of Operations), distillation (Core Domain, Segregated Core), large-scale structure (Responsibility Layers, Knowledge Level), and Ubiquitous Language. Trigger on "DDD", "domain-driven design", "bounded context", "aggregate root", "value object", "entity", "repository pattern", "domain service", "anticorruption layer", "context map", "ubiquitous language", "core domain", "specification pattern", "supple design", "layered architecture", or "strategic design."
ddd-entity-generator
Generate domain layer components (entities, value objects, repository interfaces, events, errors). Use when adding entities to existing context, creating value objects for validation, or defining domain-specific errors (e.g., "Create Product entity with Price VO", "Add Customer with Email").
domain-driven-design
Design and review software using patterns from Eric Evans' "Domain-Driven Design." Use for DDD tactical patterns (Entities, Value Objects, Aggregates, Repositories, Factories, Domain Services), strategic patterns (Bounded Context, Context Map, Anticorruption Layer, Shared Kernel, Open Host Service), supple design (Intention-Revealing Interfaces, Side-Effect-Free Functions, Closure of Operations), distillation (Core Domain, Segregated Core), large-scale structure (Responsibility Layers, Knowledge Level), and Ubiquitous Language. Trigger on "DDD", "domain-driven design", "bounded context", "aggregate root", "value object", "entity", "repository pattern", "domain service", "anticorruption layer", "context map", "ubiquitous language", "core domain", "specification pattern", "supple design", "layered architecture", or "strategic design."
ddd-tactical-patterns
Apply DDD tactical patterns in code using entities, value objects, aggregates, repositories, and domain events with explicit invariants.
DDD
Domain-Driven Design (DDD) modeling and architectural guidance. Used to create domain models, design bounded contexts, and implement aggregate roots, entities, value objects, domain services, and domain events. Supports strategic design (context mapping, subdomain partitioning) and tactical design (aggregates, repositories, factory patterns). Use when performing domain modeling, microservice partitioning, or designing complex business logic.
dotnet-domain-modeling
Modeling business domains. Aggregates, value objects, domain events, rich models, repositories.
ddd-tactical-patterns
Apply DDD tactical patterns in code using entities, value objects, aggregates, repositories, and domain events with explicit invariants.
python-ddd
Domain-Driven Design patterns for Python — aggregates, value objects, repositories, domain events, CQRS, and application services. Async-first with Pydantic v2 and SQLAlchemy 2.0.
dinero-formatting
Formatting patterns for the Dinero.js money library. Use when displaying monetary values to users, formatting prices with currency symbols, handling locale-specific number formats, or working with non-decimal currencies. Triggers on toDecimal, toUnits, toSnapshot calls, or Intl.NumberFormat usage with Dinero objects.
Modern C# Coding Standards
Write modern, high-performance C# code using records, pattern matching, value objects, async/await, Span<T>/Memory<T>, and best-practice API design patterns. Emphasizes functional-style programming with C# 12+ features. Use when writing new C# code or refactoring existing code, designing public APIs for libraries or services, optimizing performance-critical code paths, or building async/await-heavy applications.
dinero-best-practices
Core best practices for the Dinero.js money library. Use when writing, reviewing, or refactoring code that creates Dinero objects, performs arithmetic on monetary values, or handles money in JavaScript/TypeScript. Triggers on imports from 'dinero.js', monetary calculations, or price/cost handling logic.
dinero-currency-patterns
Currency handling patterns for the Dinero.js money library. Use when working with multiple currencies, converting between currencies, defining custom currencies, storing monetary values in databases, or integrating with payment services like Stripe or PayPal. Triggers on currency conversion, database schema design for money, or payment API integration with Dinero objects.
dotnet-tactical-ddd
Use when building .NET backend APIs with business logic, domain rules, invariants to enforce, or projects expanding beyond simple CRUD. Symptoms - anemic models with public setters, domain logic in controllers, AutoMapper bypassing validation, primitives instead of value objects
laravel-value-object-pattern
Implements Value Objects in the Domain layer following Hexagonal Architecture and strict immutability principles.
domain-modeler
Use esta skill sempre que a tarefa envolver modelagem de domínio: entidades, agregados, value objects, invariantes, regras de negócio e limites de contexto para backend NestJS e Prisma.
symfony-validator
Validate values following JSR-303 Bean Validation specification. Use this skill to validate objects, raw scalar values, and arrays with built-in constraints or custom validation logic. Support validation groups, error severity levels, and message translation.
ddd-tactical-patterns
Apply DDD tactical patterns in code using entities, value objects, aggregates, repositories, and domain events with explicit invariants.