with one click
net-domain-model
Create domain models following Domain-Driven Design principles
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
Create domain models following Domain-Driven Design principles
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Implement agile development practices and ceremonies for .NET projects
Automate Work Item -> Branch -> PR -> Evidence Pack for AI Coding Factory
Implement Scrum framework and team structures for .NET enterprise projects
Implement CQRS pattern with MediatR for .NET applications
Create Docker configuration for ASP.NET Core applications
Create GitHub Actions CI/CD pipelines for .NET applications
Based on SOC occupation classification
| name | net-domain-model |
| description | Create domain models following Domain-Driven Design principles |
| license | MIT |
| compatibility | opencode |
| metadata | {"audience":".net-developers","framework":"entityframeworkcore","patterns":"ddd"} |
I help you create domain models following DDD principles:
Use this skill when:
src/{ProjectName}.Domain/
├── Entities/
│ ├── Product.cs
│ ├── Order.cs
│ └── Customer.cs
├── ValueObjects/
│ ├── Money.cs
│ ├── Email.cs
│ └── Address.cs
├── Aggregates/
│ └── OrderAggregate/
│ ├── Order.cs
│ └── OrderItem.cs
├── Interfaces/
│ ├── IProductRepository.cs
│ ├── IOrderRepository.cs
│ └── IUnitOfWork.cs
├── Events/
│ ├── OrderCreatedEvent.cs
│ └── OrderPaidEvent.cs
└── Services/
└── DomainService.cs
public abstract class Entity
{
public Guid Id { get; protected set; }
public DateTime CreatedAt { get; protected set; }
public DateTime? UpdatedAt { get; protected set; }
public List<IDomainEvent> DomainEvents { get; } = new();
protected Entity(Guid id) => Id = id;
protected Entity() { }
}
public abstract class ValueObject : IEquatable<ValueObject>
{
protected abstract IEnumerable<object> GetEqualityComponents();
public bool Equals(ValueObject? other)
{
if (other is null) return false;
if (ReferenceEquals(this, other)) return true;
return GetEqualityComponents()
.SequenceEqual(other.GetEqualityComponents());
}
}
public abstract class AggregateRoot : Entity
{
public override void RaiseDomainEvent(IDomainEvent domainEvent)
{
DomainEvents.Add(domainEvent);
}
public void ClearDomainEvents() => DomainEvents.Clear();
}
Create a domain model for an e-commerce system with:
- Product entity
- Order aggregate root
- Money value object
- OrderCreated domain event
- Repository interfaces
I will generate complete domain model following DDD patterns.