Skip to content
CAI
Software that uses CAICheck a score

rick-dev-creator/modularmonolith

62.5

Weak · 3 August 2026

223

lines of production code

C#

primary language

3

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This system provides a .NET 8.0-based modular monolith architecture, offering standardized project templates for both monolithic and modular application structures. It enforces Clean Architecture principles with isolated modules that register themselves via a pluggable \IModuleInstaller\ interface. The framework integrates key libraries like MediatR and FastEndpoints, supported by centralized package management for consistent dependency resolution.

Features

Added modular monolith and module project templates

Introduced new project templates for generating a modular monolith application and individual modules, each structured with Clean Architecture principles. The modular monolith template includes a core server project that uses reflection to automatically discover and install modules via the \IModuleInstaller\ interface, enabling a pluggable architecture. The module template provides a standardized structure for building isolated features, including application logic, infrastructure handlers, endpoints, and contracts, all wired together through a \ModuleInstaller\ that registers services and configures the host.

Module, Monolith · high confidence

Dependencies

Added .NET 8.0 project templates with centralized package management

Introduced new project templates for both the monolith and modular architectures, all targeting .NET 8.0. These templates establish a centralized package versioning system via Directory.Packages.props and define dependencies for key libraries including FastEndpoints, MediatR, FluentValidation, and Swashbuckle. The modular template specifically includes the Ardalis.Result package, while the monolith template incorporates Scrutor for assembly scanning.

(dependencies) · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Score

  • CAI 28 → 62 (+34.4)
  • Rubric changed (rubric-2026.08.18 → rubric-2026.08.19) — scores are not directly comparable.

Lenses

  • Code Health 89 (new)
  • Architecture 85 (new)
  • Maturity 13 → 69 (+55.7)
  • Readiness 15 → 57 (+41.3)
  • Security 100 → 58 (-42.1)

Resolved (5)

  • Dependency hygiene not measured — no supported dependency manifest was read
  • No automated tests
  • No exposed public API
  • bus factor not measured — no commits were sampled
  • single-commit history — no usable git history window to measure hotspots

New (16)

  • Duplicate 'Text' property in both Request (Query) and Response (DTO) types. While technically distinct, having a 'Text' field in both the input and output of a 'GetMessage' operation suggests a potential design flaw or unnecessary duplication. If 'Text' is the sole differentiator, the Query should likely not contain it, or the Response should not mirror the Request's structure unless there is a specific reason (e.g., echo-back). More importantly, the naming 'GetMessage' implies a retrieval operation, yet the Query carries the data to be retrieved or the Response carries the data retrieved. This creates ambiguity: is 'Text' the search criterion or the result? This is a semantic inconsistency in the API contract.
  • High CVE: System.Text.Json 7.0.3
  • Monorepo: only 1 of 3 solutions was scored
  • No tests — template/sample
  • Off the main sequence: Server.Module1.Contracts
  • Thin analysable surface across projects
  • XML-doc coverage: Server.CrossCuttingConcerns (Monolith/Server.CrossCuttingConcerns/Server.CrossCuttingConcerns.csproj)
  • XML-doc coverage: Server.Module1.Application (Module/Server.Module1.Application/Server.Module1.Application.csproj)
  • XML-doc coverage: Server.Module1.Contracts (Module/Server.Module1.Contracts/Server.Module1.Contracts.csproj)
  • XML-doc coverage: Server.Module1.Domain (Module/Server.Module1.Domain/Server.Module1.Domain.csproj)
  • XML-doc coverage: Server.Module1.EndPoints (Module/Server.Module1.EndPoints/Server.Module1.EndPoints.csproj)
  • XML-doc coverage: Server.Module1.Infrastructure (Module/Server.Module1.Infrastructure/Server.Module1.Infrastructure.csproj)
  • XML-doc coverage: Server.Module1.Module (Module/Server.Module1.Module/Server.Module1.Module.csproj)
  • complexity unreadable for .cs — churn × complexity hotspots could not be measured
  • git history depth insufficient
  • single-maintainer — knowledge-concentration (bus factor) risk

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

rick-dev-creator/modularmonolith was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 3 August 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 47388b30c3c87eccccc50463696e2f233838a762 — the exact code this score is about.
  • Scored under rubric-2026.08.19 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer latest.