Eventmodelers Build Kit - Kotlin
Real-time Claude agent that connects to the Eventmodelers Platform and implements board slices as Cratis (Arc + Chronicle) vertical slices in a Kotlin 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
./gradlew buildand runs tests with./gradlew 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
.ktfile per slice — every backend artifact (command, event, reactor) lives together @Commanddata classes carry ahandle()method — no separate handler class@EventTypedata classes use past-tense, self-describing namesConceptAs<T>wraps identities and values in events and read models instead of raw primitives- Read models are exposed as Arc queries annotated with
@Path - Package 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-Kotlin — The Kotlin implementation
- Downstream: Cratis Chronicle + Cratis Arc — The frameworks the generated slices build on
See the sibling kits for other language implementations: C# 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-Kotlin installOr use the upstream CLI with this repository as a git stack:
npx @eventmodelers/cli init --stack cratis-kotlin --git https://github.com/Cratis/Eventmodelers-Build-Kit-KotlinAfter 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