Skip to content
CAI
Software that uses CAICheck a score

ehsomma/ddd-cqrs-microservices

54.0

Adequate · 21 September 2026

14.2k

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 system is a software project that has been configured for automated quality assurance and documentation. It utilizes Coverlet for code coverage analysis and maintains updated project documentation with CI and license badges.

Behavioural changes

Improved project documentation and coverage configuration

The README has been updated with CI, coverage, issues, and license badges, and replaced old image syntax with modern HTML tags for better rendering. A new \coverage.runsettings.xml\ file was added to configure code coverage collection (using Coverlet with Cobertura format), and the solution file was updated to include documentation assets.

(repo-wide) · 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 54 → 54 (+0.5)
  • Rubric changed (rubric-2026.08.18 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 83 → 73 (-10.5)
  • Architecture 86 → 86 (+0.0)
  • Maturity 75 → 75 (+0.0)
  • Readiness 41 → 40 (-1.1)
  • Security 52 → 58 (+6.2)
  • Domain Modelling 68 → 67 (-0.3)
  • Event-Driven 100 → 100 (+0.0)

Resolved (25)

  • Bounded contexts not declared
  • Duplicated block (14 lines × 2) (Src/Apps/Records.Persons.Api.V1/HealthCheck/DependencyInjection.cs)
  • Duplicated block (19 lines × 2) (Src/Apps/Records.Persons.BackgroundTasks/Tasks/PublishOutboxJob.cs)
  • Duplicated block (21 lines × 2) (Src/Apps/Records.Persons.BackgroundTasks/Program.cs)
  • High CVE: System.Text.Json 8.0.0
  • High CVE: System.Text.Json 8.0.0
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • Inconsistent naming for the Country projector interface/implementation. The interface is named 'ICountryCrearedProjector' (typo: 'Creared' instead of 'Created'), while the SQL implementation is named 'CountryProjector'. Other projectors follow the pattern 'XProjector' (e.g., PersonProjector, PersonDeletedProjector).
  • Inconsistent naming for the database session abstraction. It is referred to as 'IDbSession' in some places, while the unit of work is 'IUnitOfWork'. Additionally, 'IDbSession' is used for what appears to be a database session/transaction scope, but the naming is not consistent with 'IUnitOfWork' or 'ISession'.
  • Inconsistent naming for the payload property. CreatePersonRequest and UpdatePersonRequest expose the entity as 'Person', while CreateCountryRequest exposes it as 'Country'. This breaks the pattern where the property name matches the entity type name.
  • LLM evaluation failed
  • LLM evaluation failed
  • Medium CVE: Azure.Identity 1.7.0
  • Medium CVE: Azure.Identity 1.7.0
  • …and 5 more

New (226)

  • AnalyzerSeverityNone (.editorconfig)
  • AnalyzerSeverityNone (.editorconfig)
  • AnalyzerSeverityNone (.editorconfig)
  • AnalyzerSeverityNone (.editorconfig)
  • AnalyzerSeverityNone (.editorconfig)
  • AnalyzerSeverityNone (.editorconfig)
  • AnalyzerSeverityNone (.editorconfig)
  • AnalyzerSeverityNone (.editorconfig)
  • AnalyzerSeverityNone (.editorconfig)
  • AnalyzerSeverityNone (.editorconfig)
  • AnalyzerSeverityNone (.editorconfig)
  • AnalyzerSeverityNone (.editorconfig)
  • AnalyzerSeverityNone (.editorconfig)
  • AnalyzerSeverityNone (.editorconfig)
  • AnalyzerSeverityNone (.editorconfig)
  • AnalyzerSeverityNone (.editorconfig)
  • AnalyzerSeverityNone (.editorconfig)
  • AnalyzerSeverityNone (.editorconfig)
  • AnalyzerSeverityNone (.editorconfig)
  • AnalyzerSeverityNone (.editorconfig)
  • …and 206 more

API surface

  • Unchanged — 4 HTTP endpoints

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

Survey your own repository

ehsomma/ddd-cqrs-microservices 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 c26b6cbdd69298db3b9ba0aa078e7b24b030f963 — 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.