Skip to content
CAI
Software that uses CAICheck a score

esofar/dddify

50.4

Weak · 21 September 2026

4.5k

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 .NET library that enhances Entity Framework Core's DbContext configuration and soft-delete handling. It provides utilities for resolving service provider during registration, preserving owned entities during soft deletes, and improving API result wrappers and exception logging.

Behavioural changes

Enhanced DbContext configuration and soft-delete handling

The library now supports configuring DbContext options with access to the service provider, allowing resolution of configuration or hosting environment services during registration. For soft-deletable entities, the system now preserves owned entries during soft delete operations, ensuring related data is not inadvertently removed. Additionally, the API result wrapper now omits the 'data' field when it is the default value rather than just null, and exception logging now includes metadata from the API exception mapping.

src/Dddify · medium 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 52 → 50 (-1.9)
  • Rubric changed (rubric-2026.08.18 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 89 → 89 (-0.0)
  • Architecture 96 → 96 (+0.0)
  • Maturity 59 → 59 (+0.0)
  • Readiness 39 → 39 (+0.0)
  • Security 72 → 77 (+4.2)
  • Domain Modelling 90 → 56 (-34.0)
  • Event-Driven 100 → 100 (+0.0)
  • Performance 54 → 54 (+0.0)

Resolved (19)

  • Duplicated block (13 lines × 2) (samples/TodoApp.Application/Commands/Todos/CreateTodoCommand.cs)
  • 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)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • LLM evaluation failed
  • early-stage repository — too little history to judge knowledge freshness
  • git history depth insufficient
  • git history depth insufficient
  • misleading comment (samples/TodoApp.Web/Program.cs)
  • redundant comment (samples/TodoApp.Web/Program.cs)
  • single-maintainer — knowledge-concentration (bus factor) risk

New (37)

  • Confusing overload resolution: Two overloads for AddLocalization exist. One takes a config section path, the other takes only an action. It is unclear if the second overload uses a default config section or if the first is strictly for configuration-based setup. This forces users to guess which overload to use based on implicit defaults.
  • Documentation: contradicts the code (docs/src/modules/api-result-wrapping.md)
  • Documentation: no installation or build instructions (README.md)
  • Documentation: no installation or build instructions (docs/src/en/guide/getting-started.md)
  • Documentation: no usage examples (README.md)
  • Documentation: no usage examples (docs/src/en/guide/getting-started.md)
  • Duplicate intent: IUnitOfWork and UnitOfWork<TDbContext> expose identical persistence methods. IUnitOfWork is a generic-free interface that delegates to or mirrors the generic UnitOfWork<TDbContext>, creating unnecessary abstraction overhead and potential confusion about which to inject.
  • Duplicated block (14 lines × 2) (samples/TodoApp.Application/Commands/Todos/CreateTodoCommand.cs)
  • Duplicated block (37 lines × 2) (src/Dddify/SharedKernel/AuditableAggregateRoot.cs)
  • Duplicated block (8 lines × 2) (samples/TodoApp.Web/Pages/Todos/_Partials/_TodoDetailSummary.cshtml)
  • 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)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • …and 17 more

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

Survey your own repository

esofar/dddify 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 1e4c046022a43e458b69c2307abb248859551384 — 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.