Skip to content

Questions? The #bobcat channel on the Critter Stack .NET Discord is the fastest way to reach the team.

Event Modeling and Spec Driven Development ​

The Event Modeling workflow across the Critter Stack -- declaring the model in C#, turning the board's examples into executable specifications, scaffolding handlers for the slices that have no code yet, and catching drift between the design and the code -- is written down end to end in one place:

Event Modeling with the Critter Stack, in the Wolverine documentation.

Bobcat's part, and where it is documented ​

Importing an eventmodelers.ai board as C# stubs, an EventModelDefinition, and optionally a specification per examplebobcat import-event-model
Binding a specification to its slice -- [BobcatSpec], [BobcatSlice], TriggeredBy, Pending = trueWriting Specifications
The slice's command, aggregates, events, read models and messages, read off the vocabulary's [EventModelRole] attributesBinding, not roles
The Given/When/Then vocabulary the specifications are written inTesting with Bobcat (Wolverine docs)
What a specification claims about an event, an aggregate or a read model -- partial objects, collection expectations, tolerances, member checks and the C# version they needExpected Objects
The gate that keeps the model and the specifications honest (SpecIdentityAudit, in WolverineFx.Bobcat)Testing with Bobcat (Wolverine docs)
How the vocabulary maps onto the model -- the act's command, GivenContext as ReadsFrom, a read act (WhenReading) making a Query sliceThe Event Model, from the vocabulary (Wolverine docs)
Seeing the model, which slices have specifications, and how those specifications last ranThe Bobcat UI and bobcat slice-coverage
Running one slice's specifications, a chapter's, or every ViewSelecting by Event Model coordinates

Skeleton generation for declared-only slices is Wolverine's scaffold command, not Bobcat's.

For a coding agent working the same loop -- import a board, write the specs, scaffold, implement until green -- the critterstack-sdd-* AI skills carry the whole workflow, including the import's callouts and how to read a red spec.

Released under the MIT License.