From arbiter-skills
Provides ASP.NET Core MVC controller base classes for exposing Arbiter CQRS commands and queries via controllers instead of minimal API endpoints.
How this skill is triggered — by the user, by Claude, or both
Slash command
/arbiter-skills:arbiter-mvcThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
ASP.NET Core MVC controller base classes that wrap the generic `Arbiter.CommandQuery` operations. Pick this over `arbiter-endpoints` if your app uses controllers, filters, model binding, or content negotiation features specific to MVC.
ASP.NET Core MVC controller base classes that wrap the generic Arbiter.CommandQuery operations. Pick this over arbiter-endpoints if your app uses controllers, filters, model binding, or content negotiation features specific to MVC.
dotnet add package Arbiter.CommandQuery.Mvc
using Arbiter.CommandQuery;
builder.Services.AddCommandQuery();
builder.Services.AddControllers(); // standard MVC
var app = builder.Build();
app.MapControllers();
There's no special AddXxx for the MVC package — controllers register through AddControllers() like any other.
[Route("api/[controller]")]
public class ProductController
: EntityCommandControllerBase<int, ProductReadModel, ProductReadModel, ProductCreateModel, ProductUpdateModel>
{
public ProductController(IMediator mediator) : base(mediator) { }
}
That single class exposes:
GET /api/Product/{id}
GET /api/Product (paged, with query string filter/sort)
POST /api/Product
PUT /api/Product/{id}
PATCH /api/Product/{id}
DELETE /api/Product/{id}
// Read-only
[Route("api/[controller]")]
public class CategoryController : EntityQueryControllerBase<int, CategoryReadModel, CategoryReadModel>
{
public CategoryController(IMediator mediator) : base(mediator) { }
}
// Add custom action alongside the inherited CRUD
[HttpPost("import")]
public async Task<IActionResult> Import([FromBody] ImportRequest request, CancellationToken ct)
{
var result = await Mediator.Send(new ImportProducts(User, request), ct);
return Ok(result);
}
Standard MVC features ([Authorize], action filters, model binders) compose normally because each method on the base is a regular controller action.
arbiter-endpoints for lower overhead and minimal-API ergonomics.npx claudepluginhub loresoft/arbiter --plugin arbiter-skillsExposes Arbiter commands and queries as REST endpoints via Minimal APIs. Automatically registers CRUD routes for entities with no per-route boilerplate.
Generates RESTful API Controllers with routing, versioning, authorization, and MediatR integration following Clean Architecture patterns.
Generates and configures REST APIs with Auto API Controllers, dynamic/static client proxies, Swagger, versioning, and integration services in ABP Framework v10.x.