# Changelog

## Score

- CAI 45 → 45 (+0.2)

## Lenses

- Code Health 77 → 77 (+0.0)
- Architecture 93 → 93 (+0.0)
- Maturity 71 → 71 (+0.0)
- Readiness 45 → 45 (+0.0)
- Security 29 → 29 (+0.0)
- Domain Modelling 60 → 62 (+1.3)
- Event-Driven 100 → 100 (+0.0)

## Resolved (4)

- Inconsistency in command/request naming: `DamageProduct` is used for the damaging feature, while `SellProduct` is used for the selling feature. `DamageProduct` is a noun phrase, while `SellProduct` is a verb phrase. This is inconsistent with `CreateProduct` (verb phrase) and `RegisterNewOrder` (verb phrase).
- LLM evaluation failed
- The 'Selling' concept uses the gerund 'Selling' in the namespace and class names (`SellingProduct`), whereas the 'Creating' concept uses the noun/gerund 'Creating' (`CreatingProduct`, `CreatingCategory`). However, the 'Registering' concept uses 'Registering' (`RegisteringNewOrder`). The inconsistency lies in the use of 'Selling' vs 'Creating'/'Registering'. While all are gerunds, 'Selling' is often a state or a different phase than 'Creating' (creation) or 'Registering' (registration). A more consistent approach would be to use the base verb form for commands/requests (e.g., `SellProduct`) rather than the gerund `SellingProduct`, or ensure all feature folders use the gerund consistently (e.g., `Creating`, `Registering`, `Selling`). Currently, `SellingProduct` is used for the handler/validator, while `CreateProduct` is used for the endpoint/validator. This is a minor inconsistency in feature naming conventions.
- The class `DamageProduct` is used as both a request DTO and a domain event (`ProductDamagedDomainEvent`). The naming `DamageProduct` is ambiguous: it could refer to the action/command or the resulting state/event. In contrast, `SellingProduct` is used for the handler/validator, while `ProductSoldDomainEvent` is used for the event. This creates an inconsistency where the 'damaging' concept uses a verb-noun structure (`DamageProduct`) while the 'selling' concept uses a different structure (`SellingProduct` / `ProductSoldDomainEvent`).

## New (2)

- The two .md files (ECommerce.Data) only show setup commands ('dotnet ef migrations add Init ...') without describing what data model or database exists, leaving the reader unable to determine whether this is a domain layer or an infrastructure file. (ECommerce/Data/readme.md)
- redundant comment (src/BuildingBlocks/Logging/Extensions.cs)

## API surface

- Unchanged — 1 HTTP endpoints
