We want to introduce the concept of rendering. This should be represented in the core Stage as an interface and then a new project for Cratis specifically. Think: Stage.Rendering.Cratis as project and prefixed with Cratis for assembly and namespace names.
It’s job is to take a Screenplay file and output the correct C# and optionally React frontend.
For generating the C# we don’t want to have text templates, but instead generate something that can is verifiable and driven by specs, look at the spike we did here for this:
https://github.com/Cratis/VerticalSlices/pull/4/changes
All the screenplay capabilities align with Cratis Arc and Chronicle.
It needs to follow the vertical slice approach we have - see the AI instructions. It should also favor the model bound approach and support command validation using the base CommandValidator and FluentValidation.
When it’s First time generation, we need to scaffold the project. This should be done using the Cratis Templates. Add this as a NuGet package dependency and call it programmatically.
We need to keep printing tasks it’s doing, the render method should take a output stream and an error for where to output things
Let’s skip frontend (screen) in this iteration.
We want to introduce the concept of rendering. This should be represented in the core Stage as an interface and then a new project for Cratis specifically. Think: Stage.Rendering.Cratis as project and prefixed with Cratis for assembly and namespace names.
It’s job is to take a Screenplay file and output the correct C# and optionally React frontend.
For generating the C# we don’t want to have text templates, but instead generate something that can is verifiable and driven by specs, look at the spike we did here for this:
https://github.com/Cratis/VerticalSlices/pull/4/changes
All the screenplay capabilities align with Cratis Arc and Chronicle.
It needs to follow the vertical slice approach we have - see the AI instructions. It should also favor the model bound approach and support command validation using the base CommandValidator and FluentValidation.
When it’s First time generation, we need to scaffold the project. This should be done using the Cratis Templates. Add this as a NuGet package dependency and call it programmatically.
We need to keep printing tasks it’s doing, the render method should take a output stream and an error for where to output things
Let’s skip frontend (screen) in this iteration.