
JasperFx Software has been busy lately create a new set of AI Skill files that incorporate our recommendations for using the Critter Stack tools (Marten, Polecat, Wolverine, Weasel, Alba, and the soon forthcoming CritterWatch tool). As of the end of the day tomorrow (April 16th, 2026), these skill files will be available to all current JasperFx Software support clients.
If you’re interested in gaining access to these skills, just message us at sales@jasperfx.net.
How did you build the Skills files (so far)?
Let me tell you, this has been an exercise in sheer T*E*D*I*U*M. In some order, the Critter Stack core team and I:
- Started with a Google doc laying out the subjects we needed to include in our skills files along with the key points about usage, design, and software architecture we wanted to enforce
- I used Claude to build a plan using that document after the team reviewed it, all the documentation websites, my blog, and by running through Discord discussions to identify common areas of questions or confusion (which was also used to improve the documentation).
- I admittedly let Claude take the first pass at the skill files, then reviewed each file by hand and made some course corrections as I went
- I then let Claude use the new skills to convert several sample projects published online to Wolverine + Marten, then reviewed each conversion and corrected or added to the skills content as needed
- Yet another pass at converting some additional sample projects with the corrected skills
- Had Claude run the AI skills against a pair of large JasperFx client systems to identify issues in their code, and painstakingly reviewed that report while making yet more refinements and additions to the skills — partially to identify what advice is strongly recommended for green field systems and what can be bypassed in existing systems. As well as exception cases in plenty of cases. This also turned into an exercise in identifying performance optimization opportunities. One of my thoughts about the AI Skills is saying that developers can write the conceptual code they can, then let the AI skills move the (hopefully covered by tests) code to more idiomatic Wolverine usage and opt into some non-obvious Wolverine usage that can lead to better performance.
- Let a friendly community member check out the AI skills against their new system, and we again refined the skils based on what it found — and for the record, it absolutely identified some important changes that needed to be made.
Whew, take my word for it, that was exhausting. But, the result is that I feel good about letting these new skill files out into the wild! Even knowing that we’ll 100% have to continue to refine and curate these things over time.
Summary of the AI Skills (So Far)
Each skill file is a structured Markdown document that gives AI assistants deep knowledge about a specific pattern, API, or migration path. When an AI assistant has access to these skills, it can generate idiomatic Critter Stack code, follow established conventions, and avoid common pitfalls — rather than guessing from generic .NET patterns.
Skill Categories
Getting Started (6 skills)
- New project bootstrapping for Wolverine + Marten, Wolverine + EF Core, Wolverine + Polecat, and Wolverine + CosmosDB
- Vertical slice architecture fundamentals
- Modular monolith patterns with Wolverine
Wolverine Handlers (8 skills)
- Building handlers with convention-based discovery
- Pure function handlers and A-Frame Architecture
- Declarative persistence with
[Entity]andIStorageAction<T> - EF Core integration patterns
- Middleware, Railway Programming, and FluentValidation
- IoC and service optimization
Wolverine HTTP (3 skills)
- HTTP endpoint fundamentals with
[WolverineGet],[WolverinePost], etc. - HTTP + Marten integration with
[Aggregate]and[WriteAggregate] - Hybrid handlers (HTTP + messaging)
Wolverine Messaging (2 skills)
- Message routing, outbox, scheduled messages, partitioning
- Resiliency policies, retry strategies, circuit breakers, DLQ handling
Marten Event Sourcing (14 skills)
- Aggregate handler workflow with
[AggregateHandler] - Event subscriptions and forwarding
- 5 projection types: Single Stream, Multi Stream, Flat Table, Composite, Event Enrichment
- 7 advanced topics: Async Daemon, Cross-Stream Operations, Dynamic Consistency Boundary, Indexes, Load Distribution, Multi-Tenancy, Optimization
Polecat (1 skill)
- Setup guide and decision criteria for SQL Server 2025 with native JSON
Migration Skills (7 skills)
- Converting from MediatR, MassTransit, NServiceBus, EventStoreDB/Eventuous, Minimal API, and MVC Core
- Each includes API mapping tables, before/after code examples, and migration checklists
Messaging Transports (9 skills)
- RabbitMQ, Azure Service Bus, AWS SQS/SNS, Kafka, SignalR, NATS, Redis, Apache Pulsar, MQTT
- Each covers configuration, topology, error handling, and best practices
Testing (7 skills)
- Alba HTTP testing, Wolverine tracked sessions, Wolverine + Marten integration testing
- Marten-specific test patterns (
CleanAllMartenDataAsync,DocumentStore()) - Test parallelization for xUnit, TUnit, NUnit, MSTest
Observability (5 skills)
- OpenTelemetry setup, Prometheus metrics, Grafana dashboards
- CLI diagnostics (
describe,codegen-preview,db-apply) - Code generation strategies
CritterWatch Integration (1 skill)
- Installing and configuring CritterWatch monitoring
- Adding monitoring to Wolverine applications
- Aspire orchestration patterns
Key Principles Taught
The skills encode battle-tested patterns refined through real-world sample conversions:
- Prefer synchronous handlers — let Wolverine middleware handle async persistence
- Avoid
IResult— return concrete types for OpenAPI inference - Use
[Entity]aggressively — declarative entity loading replaces manualLoadAsync+ null checks - Move sad-path validation into
Validate/ValidateAsync— keep handlers focused on the happy path - Use
Results.NoContent()over[EmptyResponse]— more intention-revealing for 204 responses - Use
IntegrateWithWolverine()+AutoApplyTransactions()— the foundation for everything - Name commands in imperative form —
CreateOrder, notOrderRequest - One file per request type — colocate command record, validator, and endpoint class
Validated by Real Conversions
These skills were tested and refined by converting 10 real-world open-source projects in the JasperFx/CritterStackSamples repository — from MediatR, MassTransit, Clean Architecture, EventStoreDB, and modular monolith patterns to the Critter Stack. 107 Alba integration tests pass across all samples.
The Sample Projects
We’ve long fielded complaints, with some legitimate validity, that the Critter Stack needed to have more sample projects. Luckily, as a side effect of all this AI skill file work, we now have the CritterStackSamples repository with all these converted projects! So far this is mostly showing Wolverine + Marten work with not much asynchronous messaging, but we’ll continue to add to these samples over time. I know the next sample application I’m building is going to involve Marten’s new DCB capability. And we’ll surely add more samples for Polecat too.
Why aren’t these skills free?
Really just two reasons:
- These skills have been primarily built through lessons learned as JasperFx has assisted our clients and even trained and corrected through usage on the code from JasperFx customers. Moreover, the skills will be constantly improved based on JasperFx client usage
- The long term viability of the Critter Stack depends on there being a successful company behind the tools. Especially in the .NET ecosystem, it is not feasible to succeed as an OSS project of this complexity without commercial support. This is part of the answer to that need.
And in other words, I just want some sweeteners for folks considering JasperFx support contracts!
Are you changing your mind about licensing?
No, and for all of you just ready to scream at us if we even flirt with making the same licensing change as MediatR or MassTransit, we’re still committed to the “Open Core” model for the Critter Stack. I.e., the currently MIT-licensed core products will remain that way.
But, as I said before, I’m concerned about the consulting and services model being insufficient in the future, so we’re pivoting to a services + commercial add on product model.











