Skip to content
CAI
Software that uses CAICheck a score

xmolecules/nmolecules

62.1

Adequate · 21 September 2026

308

lines of production code

C#

primary language

4

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

nMolecules is a .NET library that provides a declarative, attribute-based approach to implementing Domain-Driven Design (DDD) and eventing patterns. It offers a set of C\# attributes to define architectural layers, domain model components, and domain events, enabling developers to express these abstractions directly in code. The system includes core packages for DDD, eventing, and architecture, along with compile-time verification to ensure correct usage of these annotations.

Features

Add domain eventing attributes for DDD patterns

The library introduces three new attributes to support Domain-Driven Design eventing patterns: DomainEventAttribute marks classes, structs, or events as domain events; DomainEventHandlerAttribute identifies handlers for processing them; and DomainEventPublisherAttribute identifies components responsible for publishing events. These attributes provide a declarative way to mark domain model components, facilitating integration with eventing infrastructure.

src/nMolecules.Events · high confidence

Initial release of nMolecules for .NET

The nMolecules library is introduced, providing .NET developers with a set of libraries to express architectural abstractions, specifically supporting Domain-Driven Design (DDD) and eventing concepts through annotations. The release includes the core nMolecules.DDD, nMolecules.Events, and nMolecules.Architecture packages, along with their corresponding test projects, all structured within a new solution file and configured with standard .editorconfig and .gitignore rules.

(repo-wide) · high confidence

Introduces DDD architectural and domain model attributes

Adds a new set of C\# attributes to support Domain-Driven Design patterns and layered architecture. This includes layer markers (Application, Domain, Infrastructure, UserInterface) and domain model markers (AggregateRoot, BoundedContext, Entity, Factory, Module, Repository, Service, ValueObject). The ValueObjectAttribute is explicitly configured to support enums and structs in addition to classes, and a new IdentityAttribute is introduced to mark fields or properties that constitute an entity's identity.

src/nMolecules.DDD · high confidence

Test coverage

Added compile-time checks for layer, DDD, and eventing attributes

Added new test files that verify the compilation and presence of architectural, DDD, and eventing attributes. These are compile-time checks rather than runtime assertions, ensuring that the relevant attributes are correctly applied to classes and members across the codebase.

tests · high confidence

Dependencies

Initial release of nMolecules packages and test projects

The nMolecules library family is introduced with three core packages—nMolecules.Architecture, nMolecules.DDD, and nMolecules.Events—each configured for .NET Standard 1.0 and set to generate NuGet packages on build. Corresponding test projects for each module are added, targeting .NET 7.0 and utilizing xUnit, Microsoft.NET.Test.Sdk, coverlet.collector, and NFluent as test dependencies.

(dependencies) · 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 61 → 62 (+0.7)
  • Rubric changed (rubric-2026.08.18 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 95 → 95 (+0.0)
  • Architecture 100 → 100 (+0.0)
  • Maturity 57 → 57 (+0.0)
  • Readiness 51 → 51 (+0.0)
  • Security 72 → 78 (+5.2)

Resolved (10)

  • 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)
  • No exposed public API
  • no production source files with tracked history to analyse
  • single-maintainer — knowledge-concentration (bus factor) risk

New (22)

  • Documentation: no architecture or design documentation (README.md)
  • End-of-life runtime: .NET net7.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)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • Medium: security finding (details withheld)
  • Medium: security finding (details withheld)
  • Medium: security finding (details withheld)
  • Medium: security finding (details withheld)
  • No dependency advisory monitoring
  • Test project verifies nothing: nMolecules.Architecture.Test (tests/nMolecules.Architecture.Test/Layered/LayerAttributesTest.cs)
  • Test project verifies nothing: nMolecules.DDD.Test (tests/nMolecules.DDD.Test/Attributes/DDDAttributesTest.cs)
  • …and 2 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

xmolecules/nmolecules 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 43674bdd2d384868e2929fef3ebed604797ccf6c — 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.