# Changelog

## Score

- CAI 54 → 54 (+0.0)
- Rubric changed (rubric-2026.09.15 → rubric-2026.10.1) — scores are not directly comparable.

## Lenses

- Code Health 70 → 70 (+0.0)
- Architecture 96 → 96 (+0.0)
- Maturity 78 → 78 (+0.0)
- Readiness 48 → 48 (+0.0)
- Security 74 → 74 (+0.0)
- Accessibility 56 → 56 (+0.0)
- Performance 54 → 54 (+0.0)

## Resolved (12)

- Documentation: no installation or build instructions (README.md)
- Documentation: no usage examples (README.md)
- Documentation: written for insiders (docs/design/fsharp-frontend-document-tree.md)
- Helper methods within `ConfigResolverTests` use inconsistent naming patterns for their purpose. `IsSome` is a verb phrase describing a boolean check (likely on an F# option), while `CreateResolver` is a verb phrase describing object construction. While both are verbs, `IsSome` is a generic functional pattern name that doesn't describe *what* is being checked (e.g., `IsConfigResolved` or `HasValue`), whereas `CreateResolver` is descriptive. More critically, `IsSome` is a helper for testing F# options, but its name is too generic and doesn't reflect the specific context of the config resolution being tested, unlike `CreateResolver` which is clear.
- Hotspot: src/Morphir.IR.Pipeline.Plugins/Optimizer.fs (src/Morphir.IR.Pipeline.Plugins/Optimizer.fs)
- Hotspot: src/Morphir.IR.Pipeline.Plugins/PrettyPrinter.fs (src/Morphir.IR.Pipeline.Plugins/PrettyPrinter.fs)
- Hotspot: src/Morphir.IR.Pipeline.Plugins/TypeValidator.fs (src/Morphir.IR.Pipeline.Plugins/TypeValidator.fs)
- Off-boarding risk: anonymized user #1
- The concept of retrieving the current Runtime Identifier (RID) is named inconsistently. `RuntimeIdentifier.GetArchComponent` uses 'ArchComponent' (likely Architecture Component) while `RuntimeIdentifier.GetCurrentRid` and the test helper `NativeAOTCompilationSteps.GetCurrentRid` use 'GetCurrentRid'. 'Rid' is the standard .NET term, making 'ArchComponent' ambiguous and inconsistent with the rest of the codebase.
- redundant comment (src/Morphir.Core/Classic/IR/Codecs/ClassicTypeJsonConverterFactory.cs)
- redundant comment (src/Morphir.Core/Classic/IR/Codecs/ClassicTypeJsonConverterFactory.cs)
- redundant comment (tests/Morphir.Tooling.Tests/Integration/CLI/CliTestHelper.cs)

## New (4)

- Off-boarding risk: anonymized user #1
- Repeated repair: src/Morphir.Tooling/Program.cs (src/Morphir.Tooling/Program.cs)
- The method `GetArchComponent` appears to be a helper or internal accessor for the architecture component of a Runtime Identifier, while `GetCurrentRid` returns the full Runtime Identifier string. While they serve different roles (one returns a component, the other the full ID), the naming convention for the 'current' context is inconsistent. `GetCurrentRid` implies a getter for the current state, whereas `GetArchComponent` is a generic getter. If `GetArchComponent` is intended to get the architecture part of the *current* RID, it should likely follow the `GetCurrent...` pattern or be named `GetArch` to match the brevity of `GetCurrentRid`. However, given `GetCurrentRid` is the primary accessor, `GetArchComponent` is likely a distinct helper. A more significant inconsistency is found in the test helpers vs production code naming for 'RID'.
- The method `GetCurrentRid` is implemented in both the production infrastructure class `Morphir.Tooling.Infrastructure.RuntimeIdentifier` and the test step class `Morphir.E2E.Tests.Features.AOT.NativeAOTCompilationSteps`. While the test method is likely a helper to get the current RID for assertions, having the same name in a test class as a production method can be confusing if the test helper is not clearly marked as such (e.g., `GetExpectedRid` or `GetActualRid`). However, since one is a test helper and the other is production code, this is a minor style issue rather than a semantic inconsistency. A stronger inconsistency is the duplication of logic/naming where the test helper duplicates the production method's name exactly, potentially implying they are the same thing, whereas the test helper might be wrapping or asserting against it.

## Architecture

- Containers 0 added · 1 removed · contexts 0 added · 2 removed · edges 0 added · 0 removed

## Removed containers (1)

- cli:Morphir.Tooling

## Removed bounded contexts (2)

- Morphir.Configuration
- build
