← スキル一覧に戻る

cqrs-scaffolder
by ademceper
⭐ 1🍴 0📅 2026年1月23日
SKILL.md
name: cqrs-scaffolder description: Scaffolds complete CQRS command or query with handler, validator, and DTO following Merge project patterns
CQRS Scaffolder Skill
Bu skill, Merge E-Commerce Backend projesi için tam CQRS yapısı oluşturur.
Ne Zaman Kullan
- Kullanıcı "command oluştur", "query oluştur" dediğinde
- Yeni bir CRUD operasyonu eklenirken
- "handler yaz", "validator ekle" gibi isteklerde
Command Oluşturma
Merge.Application/{Module}/Commands/{Name}/
├── {Name}Command.cs
├── {Name}CommandHandler.cs
└── {Name}CommandValidator.cs
Command Template
public record {Name}Command(
// Properties from user
) : IRequest<{ReturnType}>;
Handler Template
public class {Name}CommandHandler(
IRepository<{Entity}> repository,
IUnitOfWork unitOfWork,
IMapper mapper,
ILogger<{Name}CommandHandler> logger)
: IRequestHandler<{Name}Command, {ReturnType}>
{
public async Task<{ReturnType}> Handle(
{Name}Command request,
CancellationToken ct)
{
logger.LogInformation("Processing {Command}", nameof({Name}Command));
// Implementation
await unitOfWork.SaveChangesAsync(ct);
return mapper.Map<{ReturnType}>(entity);
}
}
Validator Template
public class {Name}CommandValidator : AbstractValidator<{Name}Command>
{
public {Name}CommandValidator()
{
RuleFor(x => x.Property)
.NotEmpty()
.WithMessage("Property is required");
}
}
Query Oluşturma
Merge.Application/{Module}/Queries/{Name}/
├── {Name}Query.cs
└── {Name}QueryHandler.cs
Query Template
public record {Name}Query(Guid Id) : IRequest<{ReturnType}?>;
Query Handler Template
public class {Name}QueryHandler(
IRepository<{Entity}> repository,
IMapper mapper,
ICacheService cache,
ILogger<{Name}QueryHandler> logger)
: IRequestHandler<{Name}Query, {ReturnType}?>
{
public async Task<{ReturnType}?> Handle(
{Name}Query request,
CancellationToken ct)
{
var cacheKey = $"{entity}:{request.Id}";
return await cache.GetOrCreateAsync(cacheKey, async () =>
{
var entity = await repository.GetByIdAsync(request.Id, ct);
return entity is null ? null : mapper.Map<{ReturnType}>(entity);
}, TimeSpan.FromMinutes(5), ct);
}
}
Kurallar
- Primary constructor kullan
- CancellationToken her async metotta olmalı
- Logger injection zorunlu
- Validator her command için oluşturulmalı
- Query'lerde cache kullan
スコア
総合スコア
40/100
リポジトリの品質指標に基づく評価
✓SKILL.md
SKILL.mdファイルが含まれている
+20
○LICENSE
ライセンスが設定されている
0/10
○説明文
100文字以上の説明がある
0/10
○人気
GitHub Stars 100以上
0/15
○最近の活動
3ヶ月以内に更新がある
0/10
○フォーク
10回以上フォークされている
0/5
✓Issue管理
オープンIssueが50未満
+5
✓言語
プログラミング言語が設定されている
+5
○タグ
1つ以上のタグが設定されている
0/5
レビュー
💬
レビュー機能は近日公開予定です