ME

mediator-reference

Provides patterns and interface references for the FSH mediator source generator.

Install

mkdir -p .claude/skills/mediator-reference && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/3293" && unzip -o skill.zip -d .claude/skills/mediator-reference && rm skill.zip

Installs to .claude/skills/mediator-reference

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

CQRS interface reference for FSH. This project uses the Mediator source generator, NOT MediatR. Reference when implementing commands, queries, and handlers.
156 chars✓ has a “when” trigger
Intermediate

Key capabilities

  • Implement command and query handlers
  • Define CQRS interfaces for FSH projects
  • Register mediator assemblies in host files
  • Enforce ValueTask return types for handlers

How it works

The skill provides the specific interfaces and registration patterns required by the Mediator source generator used in FSH projects, distinguishing them from standard MediatR implementations.

Inputs & outputs

You give it
Command or query definition
You get back
Registered handler implementation

When to use mediator-reference

  • Implement new command handlers in FSH
  • Define query patterns using the mediator generator
  • Ensure proper interface implementation for handlers
  • Reference FSH mediator code structure

About this skill

Mediator Reference

⚠️ FSH uses the Mediator source-generator package (using Mediator;), NOT MediatR. Different interfaces — MediatR types won't compile. The CQRS interfaces below are the library's own (no FSH wrapper).

Interfaces

Purpose✅ Mediator (use)❌ MediatR (don't)
CommandICommand<TResponse>IRequest<TResponse>
QueryIQuery<TResponse>IRequest<TResponse>
Command handlerICommandHandler<TCommand, TResponse>IRequestHandler<…>
Query handlerIQueryHandler<TQuery, TResponse>IRequestHandler<…>
Notification / domain eventINotification (IDomainEvent : INotification)INotification

Pattern

// Command/Query → the Contracts project (Modules.{X}.Contracts/v1/{Area}/)
public sealed record Create{Entity}Command(string Name) : ICommand<Guid>;

// Handler → the runtime project (Modules.{X}/Features/v1/{Area}/{Feature}/), public sealed
public sealed class Create{Entity}CommandHandler({X}DbContext db)
    : ICommandHandler<Create{Entity}Command, Guid>
{
    public async ValueTask<Guid> Handle(Create{Entity}Command command, CancellationToken cancellationToken)
    {
        // …
    }
}

Rules: handlers return ValueTask<T> (not Task<T>); parameter named command/query (not request); public sealed; .ConfigureAwait(false) on awaits. Send via mediator.Send(command, ct) (the IMediator interface name matches MediatR's — that part is fine).

Registration — the four places

The source generator only scans assemblies listed in o.Assemblies, and that list exists in two host files. A new module needs two markers (a Contracts type and the module type) added to the Mediator list plus an entry in the moduleAssemblies array — in both FSH.Starter.Api/Program.cs and FSH.Starter.DbMigrator/Program.cs:

builder.Services.AddMediator(o =>
{
    o.ServiceLifetime = ServiceLifetime.Scoped;
    o.Assemblies = [
        /* … */
        typeof(FSH.Modules.{X}.Contracts.{X}ContractsMarker),   // Contracts assembly
        typeof(FSH.Modules.{X}.{X}Module)];                     // runtime assembly
});

See add-module for the full procedure.

Common errors

SymptomCause → fix
IRequest<T> / IRequestHandler<,> not foundMediatR interface → use ICommand/IQuery + ICommandHandler/IQueryHandler
Task<T> vs ValueTask<T> mismatchHandler must return ValueTask<T>
Handler not invoked at runtimeAssembly missing from o.Assemblies (in one or both Program.cs files)

When not to use it

  • Projects using the standard MediatR library

Limitations

  • Requires manual registration in two separate Program.cs files
  • Handlers must return ValueTask instead of Task

How it compares

It explicitly prevents the use of MediatR interfaces, which would cause compilation errors in the FSH architecture.

Compared to similar skills

mediator-reference side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
mediator-reference (this skill)12moNo flagsIntermediate
architect-review1094moNo flagsAdvanced
solid-principles579moNo flagsIntermediate
codex322moReviewAdvanced

Try saying

Example prompts that trigger this skill in your AI assistant.

You might also like

architect-review

sickn33

Master software architect specializing in modern architecture patterns, clean architecture, microservices, event-driven systems, and DDD. Reviews system designs and code changes for architectural integrity, scalability, and maintainability. Use PROACTIVELY for architectural decisions.

109320

solid-principles

SmidigStorm

Enforce SOLID principles (Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation, Dependency Inversion) in object-oriented design. Use when writing or reviewing classes and modules.

57236

codex

Lucklyric

Invoke Codex CLI for complex coding tasks requiring high reasoning capabilities. This skill should be invoked when users explicitly mention "Codex", request complex implementation challenges, advanced reasoning, or need high-reasoning model assistance. Automatically triggers on codex-related requests and supports session continuation for iterative development.

32238

error-handling-patterns

wshobson

Master error handling patterns across languages including exceptions, Result types, error propagation, and graceful degradation to build resilient applications. Use when implementing error handling, designing APIs, or improving application reliability.

35170

deepwiki-rs

sopaco

AI-powered Rust documentation generation engine for comprehensive codebase analysis, C4 architecture diagrams, and automated technical documentation. Use when Claude needs to analyze source code, understand software architecture, generate technical specs, or create professional documentation from any programming language.

25170

senior-fullstack

davila7

Comprehensive fullstack development skill for building complete web applications with React, Next.js, Node.js, GraphQL, and PostgreSQL. Includes project scaffolding, code quality analysis, architecture patterns, and complete tech stack guidance. Use when building new projects, analyzing code quality, implementing design patterns, or setting up development workflows.

35110

Search skills

Search the agent skills registry