From 93d75ad17a81252addc8f78db28eb49923200b70 Mon Sep 17 00:00:00 2001 From: Einar Date: Wed, 29 Jul 2026 09:37:37 +0200 Subject: [PATCH 1/2] Checkout Prologue in the docs-site workflow MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The site build never checked out Cratis/Prologue as a sibling repo, so sync-content.mjs silently skipped it and the /prologue/ page never got built — breaking every link to it from the front page and the CLI's cross-reference. Add the missing checkout step, matching the pattern already used for Screenplay and the other self-contained products. --- .github/workflows/docs-site.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/docs-site.yml b/.github/workflows/docs-site.yml index c7ed751..52ad286 100644 --- a/.github/workflows/docs-site.yml +++ b/.github/workflows/docs-site.yml @@ -147,6 +147,14 @@ jobs: token: ${{ secrets.DOCS_CHECKOUT_TOKEN || github.token }} path: Screenplay + - name: Checkout Prologue + uses: actions/checkout@v4 + with: + repository: Cratis/Prologue + ref: main + token: ${{ secrets.DOCS_CHECKOUT_TOKEN || github.token }} + path: Prologue + - name: Checkout Prompter uses: actions/checkout@v4 with: From 79a5cb01d538b2bc3a5ec1c14e2d9dedb6966a9a Mon Sep 17 00:00:00 2001 From: Einar Date: Wed, 29 Jul 2026 10:07:15 +0200 Subject: [PATCH 2/2] Fix stale tenancy link on why-cratis MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The tenancy section's landing page is index.md, not overview.md, so its URL is /arc/backend/tenancy/ — the /overview/ segment 404s and was breaking the internal-links check. --- web/src/content/docs/why-cratis.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/src/content/docs/why-cratis.mdx b/web/src/content/docs/why-cratis.mdx index f4bdea4..1a43085 100644 --- a/web/src/content/docs/why-cratis.mdx +++ b/web/src/content/docs/why-cratis.mdx @@ -188,7 +188,7 @@ Cratis is opinionated on purpose. The opinions are what make it productive: - **Storage is a deployment choice.** Chronicle supports MongoDB, PostgreSQL, Microsoft SQL Server, and SQLite without changing the domain model. - **High cohesion through [vertical slices](/arc/vertical-slices/).** Everything for one behavior — command, events, projection, UI, specs — lives in one folder, backend and frontend together. - **Full-stack type safety.** Models flow from C# through proxy generation to TypeScript, with no manual synchronization — [the proxy boundary](/arc/understanding-the-proxy-boundary/) is what keeps the two languages honest. -- **Cross-cutting concerns are first-class.** [Identity and access](/arc/understanding-identity-and-access/), [authorization](/arc/backend/core/authorization/), [tenancy](/arc/backend/tenancy/overview/), [AuthProxy](/authproxy/), and [Chronicle namespaces](/chronicle/concepts/namespaces/) are part of the platform story. +- **Cross-cutting concerns are first-class.** [Identity and access](/arc/understanding-identity-and-access/), [authorization](/arc/backend/core/authorization/), [tenancy](/arc/backend/tenancy/), [AuthProxy](/authproxy/), and [Chronicle namespaces](/chronicle/concepts/namespaces/) are part of the platform story. - **Operability is architecture.** Workbench, CLI, OpenTelemetry, recommendations, replay, jobs, and failed-partition recovery are part of how you run the event store. - **Specifications are executable models.** [Testing with Cratis](/testing-with-cratis/) maps event modeling's given/when/then flow to Arc command specs and Chronicle event/read-model/reactor scenarios. - **Easy to do the right thing.** Convention over configuration and artifact discovery by naming mean less boilerplate and fewer ways to get it wrong.