Skip to content
CAI
Software that uses CAICheck a score

itlibrium/DDD-starter-dotnet

56.3

Adequate · 21 September 2026

6.8k

lines of production code

C#

primary language

4

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This is a .NET 8-based e-commerce platform that implements a modular architecture with distinct bounded contexts for Sales, Contacts, and Payments. It provides core domain capabilities including client and order management, company and group administration, and product data structures. The system is supported by a Nuke-based build automation framework that manages local infrastructure, database migrations, and integration testing.

Features

Add ValueObjectMeta record struct

A new ValueObjectMeta record struct has been added to the TechnicalStuff library, defining a readonly record struct that holds Type and ValueType properties.

TechnicalStuff · high confidence

Added Nuke build tasks for Docker Compose management

New Nuke build tasks have been introduced in the \Build/Nuke.DockerCompose\ directory, enabling developers to manage Docker Compose infrastructure directly from the build process. This includes \DockerComposeTasks\ for executing \up\, \down\, and \logs\ commands, with specific settings classes (\DockerComposeUpSettings\, \DockerComposeDownSettings\, \DockerComposeLogsSettings\) that allow configuration of options such as detached mode and log following. The implementation uses the \MyCompany.ECommerce\ namespace and relies on the \NoesisVision.Annotations\ library for assembly-level metadata.

Build/Nuke.DockerCompose · high confidence

Initial database schema and API for managing companies, groups, and tags

The Contacts module now includes the initial database schema and API endpoints for managing companies, groups, and tags. This adds the foundational data models (Company, Address, Phone, Group, Tag) and their relationships, along with the corresponding REST and legacy API controllers to create, read, update, and delete these entities. The database context and migrations are also included to support the new structure.

Sources · high confidence

Introduce Nuke-based build automation for local infrastructure

The project now includes a Nuke build system that automates the setup of the local development environment. This includes targets for starting and stopping Docker Compose-based infrastructure (PostgreSQL, Elasticsearch, Kibana), applying database migrations, and running integration tests. The build system also manages SSL certificates for local development and handles user creation for the local Elasticsearch cluster.

Build/Nuke · high confidence

Introduces new value object types for the Sales domain

The Sales module now includes new value object types for clients, orders, products, and common business concepts. Specifically, the diff adds ClientId, OrderId, ProductId, Money, TaxId, Amount, and ProductAmount. These types implement value object patterns (e.g., \[DddValueObject\] attribute, equality checks, and operators) to enforce domain rules such as currency matching for Money and unit consistency for Amounts. This change introduces the foundational data structures for representing clients, orders, and products within the Sales deep model.

Sales · high confidence

Standardized project structure and build automation

The repository now enforces a consistent project and namespace structure across the solution, as defined in the new Projects-and-Namespaces.md guidelines. This includes a standardized naming convention where project names start with the Bounded Context, and namespaces reflect the business hierarchy. Additionally, the solution now includes a Nuke-based build system (build.sh, build.ps1, build.cmd) to automate the build process, along with .gitignore and .DotSettings files to standardize the development environment.

(repo-wide) · high confidence

Dependencies

Upgrade to .NET 8 and update dependencies

The project has been upgraded to target .NET 8.0 across all components, including the Nuke build scripts, domain modules (Sales, Payments, ProductsDelivery, RiskManagement, Search), and shared TechnicalStuff libraries. Key dependencies have been updated, including Microsoft.EntityFrameworkCore to 8.0.5, Npgsql to 8.0.3, and JetBrains.Annotations to 2025.2.2.

(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

This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings — which rule fired, in which file, on which line, and how to fix it — are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.

Score

  • CAI 55 → 56 (+1.8)
  • Rubric changed (rubric-2026.08.18 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 75 → 74 (-1.5)
  • Architecture 79 → 79 (+0.0)
  • Maturity 53 → 53 (+0.0)
  • Readiness 47 → 48 (+1.6)
  • Security 54 → 63 (+8.6)
  • Domain Modelling 100 → 100 (+0.0)
  • Event-Driven 100 → 100 (+0.0)
  • Performance 78 → 78 (+0.0)

Resolved (14)

  • Bounded contexts not declared
  • High CVE: Microsoft.Build.Tasks.Core 17.8.3
  • High CVE: Microsoft.Build.Tasks.Core 17.8.3
  • High CVE: System.Text.Json 8.0.0
  • High CVE: System.Text.Json 8.0.0
  • Low CVE: Microsoft.Identity.Client 4.56.0
  • Medium CVE: Azure.Identity 1.10.3
  • Medium CVE: Azure.Identity 1.10.3
  • Medium CVE: Azure.Identity 1.10.4
  • Medium CVE: Azure.Identity 1.10.4
  • No exposed public API
  • The README gives a strong About section plus an important DISCLAIMER but does not explain what DDD starter is, what it is not, or how to get started with the various implementation options. (README.md)
  • XML-doc coverage: Search.Startup (Sources/Search.Startup/Search.Startup.csproj)
  • dormant codebase — no living knowledge left to concentrate

New (89)

  • CRAP 30: EndpointVersioningProcessor.OperationIsForSingleVersion (Sources/TechnicalStuff/TechnicalStuff.Api/Versioning/EndpointVersioningProcessor.cs)
  • CRAP 30: Order.ConfirmPrices (Sources/Sales/Sales.DeepModel/Orders/Order.cs)
  • CRAP 30: PriceAgreement.CanChangePrice (Sources/Sales/Sales.DeepModel/Orders/Order.PriceAgreement.cs)
  • CRAP 30: PriceAgreement.IsValidOn (Sources/Sales/Sales.DeepModel/Orders/Order.PriceAgreement.cs)
  • CRAP 42: Order.ApplyPriceAgreements (Sources/Sales/Sales.DeepModel/Orders/Order.cs)
  • CRAP 42: PricesConfirmed.PricesConfirmed.ctor (Sources/Sales/Sales.DeepModel/Orders/Order.Events.cs)
  • CRAP 42: ValueObjectExtensions.GetValueObjectsMeta (Sources/TechnicalStuff/TechnicalStuff/ValueObjects/ValueObjectExtensions.cs)
  • CRAP 56: EqualsExtensions.HasSameItemsAs (Sources/TechnicalStuff/TechnicalStuff/EqualsExtensions.cs)
  • Documentation: no installation or build instructions (README.md)
  • Documentation: no usage examples (README.md)
  • Duplicated block (10 lines × 2) (Sources/Contacts/Contacts/Companies/OldApi/CompaniesController.cs)
  • Duplicated block (10 lines × 2) (Sources/Contacts/Contacts/Companies/OldApi/CompaniesController.cs)
  • Duplicated block (10 lines × 2) (Sources/Contacts/Contacts/Groups/OldApi/GroupsController.cs)
  • Duplicated block (13 lines × 2) (Sources/Contacts/Contacts/Companies/OldApi/CompaniesController.cs)
  • Duplicated block (14 lines × 2) (Sources/Contacts/Contacts/Companies/OldApi/CompaniesController.cs)
  • Duplicated block (5 lines × 2) (Sources/Contacts/Contacts/Companies/OldApi/CompaniesController.cs)
  • Duplicated block (5 lines × 2) (Sources/Contacts/Contacts/Tags/OldApi/TagsController.cs)
  • High CVE: Microsoft.Build.Tasks.Core 17.8.3
  • High CVE: System.Text.Json 8.0.0
  • High: security finding (details withheld)
  • …and 69 more

API surface

  • Unchanged — 65 HTTP endpoints

Architecture

  • Unchanged — 9 containers · 2 contexts · 1 edges

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

Survey your own repository

itlibrium/DDD-starter-dotnet 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 21 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 7950712a202382aa132664373713f60eb92e4667 — the exact code this score is about.
  • Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-28e75b8e3254.