# Changelog

## Score

- CAI 45 → 45 (+0.1)

## Lenses

- Code Health 73 → 73 (-0.0)
- Architecture 79 → 79 (+0.0)
- Maturity 56 → 57 (+1.4)
- Readiness 36 → 36 (+0.0)
- Security 37 → 37 (+0.0)
- Domain Modelling 66 → 65 (-1.1)
- Event-Driven 100 → 100 (+0.0)
- Performance 83 → 83 (+0.0)

## Resolved (5)

- Domain events for 'Portfolio' use a 'Created' suffix, while 'Contract' uses 'Registered'. This is an inconsistency in event naming conventions across aggregates.
- Inconsistent event naming: 'PortfolioCreated' vs 'ContractRegisteredV2'. The verb 'Created' is used for Portfolio, while 'Registered' is used for Contract.
- LLM evaluation failed
- The 'CreateFrom' method is used to create domain events from commands. This is consistent, but the underlying events have inconsistent naming ('Registered' vs 'Created').
- The term 'Contract' is used for both a Domain Aggregate and an Application Read Model. While they are distinct concepts, the shared name 'Contract' without a suffix (like 'Model' or 'Dto') can be confusing. The Read Model is in the Application layer, but the naming doesn't clearly distinguish it from the Domain entity.

## New (3)

- Ambiguous naming: 'Contract' is used for both a Domain Aggregate (Contract) and a Read Model (Contract). While technically different namespaces, the identical short name can cause confusion regarding which 'Contract' is being referenced in code.
- Inconsistent method name due to typo: 'CeateFrom' is used in one place while 'CreateFrom' is used in another for the same pattern.
- redundant comment (src/Common/Infrastructure.Common/Persistence/EFCore/WriteModel/EventSourced/EFEventSourcedAggregateRepository.cs)

## API surface

- Unchanged — 8 HTTP endpoints

## Architecture

- Unchanged — 6 containers · 3 contexts · 1 edges
