Eventmodelers Build Kit - C#
Real-time Claude agent that connects to the Eventmodelers Platform and implements board slices as Cratis (Arc + Chronicle) vertical slices in a .NET / C# project.
What This Kit Does
Section titled “What This Kit Does”When a slice is marked Planned on your Eventmodelers board, this kit automatically:
- Connects to the Eventmodelers Platform in real-time
- Fetches the slice definition and board context
- Generates a complete Cratis vertical slice (commands, events, projections, read models, React components)
- Builds the slice with
dotnet buildand runs tests withdotnet test - Updates the board status to
Donewhen complete
The entire process happens automatically, with your Claude agent implementing the slice according to Cratis best practices.
Where to Start
Section titled “Where to Start”- Install the Kit — Get up and running in five minutes
- Run Your First Slice — Watch a slice go from
PlannedtoDone - Connect a Board — Wire the kit up to your Eventmodelers board
How It Works
Section titled “How It Works”The kit implements the Eventmodelers Build Kits platform contract:
- Real-time board subscription — The kit subscribes to your board’s slice status changes
- Status-based triggers — Two independent loops:
tasks.jsonnon-empty → runprompt.md(reacts to status changes)- Slice is
Plannedin.slices/*/index.json→ runbackend-prompt.md(builds one slice)
- Slice-type routing — Automatically routes to the correct build skill:
TRANSLATIONorprocessors[]→build-automation(reactors/automation)projections/queries/readModel→build-state-view(read models)- Otherwise (
commands/events) →build-state-change(commands/events)
- Cratis conformance — Generated slices follow Cratis best practices:
- One
.csfile per slice — every backend artifact (command, event, reactor) lives together [Command]records carry aHandle()method — no separate handler class[EventType]records use past-tense, self-describing names and take no attribute arguments- No nullable event properties — model an optional fact as a separate event instead
ConceptAs<T>/EventSourceId<T>replace raw primitives for identities and values- Namespace mirrors the folder structure
- One
See Understanding the Loop for the full mechanics.
Place in the Cratis Ecosystem
Section titled “Place in the Cratis Ecosystem”This kit sits between the Eventmodelers Platform and Cratis:
- Upstream: Eventmodelers Build Kits — The platform that manages board slices
- This Repository: Eventmodelers-Build-Kit-CSharp — The C# implementation
- Downstream: Cratis Chronicle + Cratis Arc — The framework the generated slices build on
See the sibling kits for other language implementations: Kotlin and Java.
Installation
Section titled “Installation”Install from git (this package is private, so use the git install path):
npx github:Cratis/Eventmodelers-Build-Kit-CSharp installOr use the upstream CLI with this repository as a git stack:
npx @eventmodelers/cli init --stack cratis-csharp --git https://github.com/Cratis/Eventmodelers-Build-Kit-CSharpAfter installation, run:
node .build-kit/ralph-claude.jsNext Steps
Section titled “Next Steps”- Install the kit
- Connect your Eventmodelers board
- Mark a slice as
Plannedon your board - Watch the kit automatically implement it as a Cratis vertical slice — see Run Your First Slice
See Also
Section titled “See Also”- Understanding the Loop — How the two triggers work independently
- CLI Commands —
install,uninstall, andstatus - Cratis Conventions — The conventions the kit enforces, generated from the Cratis AI corpus
- Eventmodelers Build Kits platform contract — The platform skills the kit uses