# Changelog

## Score

- CAI 72 → 62 (-9.7)
- Rubric changed (rubric-2026.10.1 → rubric-2026.10.5) — scores are not directly comparable.

## Lenses

- Code Health 95 → 73 (-21.8)
- Architecture 85 → 88 (+2.2)
- Maturity 70 → 51 (-18.7)
- Readiness 67 → 67 (+0.0)
- Security 77 → 76 (-0.3)

## Resolved (8)

- Ambiguous naming for configuration access. 'configure' typically implies setting/modifying state, while 'configuration' implies reading state. However, without seeing the implementation, it is unclear if 'configure' is a setter or a builder pattern that returns the config object. If 'configure' is a setter, the lack of a clear 'set_configuration' or 'update_configuration' name is fine, but if it returns the config, it conflicts with 'configuration'.
- Inconsistent class naming for similar functionality. 'Array.LcsCallbacks' and 'Hash.LCSCallbacks' (note the casing difference: 'Lcs' vs 'LCSCallbacks') perform the same role (handling LCS algorithm callbacks for diffing). The casing inconsistency is a minor style issue, but the existence of two separate classes for the same logical purpose in different namespaces might be redundant if the logic is identical.
- Off-boarding risk: anonymized user #1
- Potentially confusing overlap between 'collection' and 'array' matchers. While 'Array' is a specific type of 'Collection', having both 'a_collection_including_something?' and 'array_including_something?' suggests they might handle different cases or be aliases. If they are aliases, the naming is inconsistent (one uses 'a_', the other doesn't). If they are distinct, the distinction between 'collection' and 'array' in this context needs to be clear, as 'Array' is a 'Collection'.
- Redundant aliasing with inconsistent naming convention. 'a_hash_including_something?' and 'hash_including_something?' appear to be aliases for the same functionality (likely RSpec matchers). The prefix 'a_' vs no prefix is inconsistent with other pairs like 'a_collection...' vs 'array_including...' (which are different) or 'a_kind_of...' vs 'kind_of...'. Specifically, 'hash_including' is the standard RSpec matcher name, so 'a_hash_including' is a redundant alias that adds verbosity without clear benefit.
- Redundant aliasing with inconsistent naming. 'a_kind_of_something?' and 'kind_of_something?' are likely aliases. The 'a_' prefix is inconsistent with 'kind_of_something?'. Standard RSpec uses 'kind_of', so 'a_kind_of' is redundant.
- Redundant aliasing with inconsistent naming. 'an_instance_of_something?' and 'instance_of_something?' are likely aliases. The 'an_' prefix is inconsistent with 'instance_of_something?'. Standard RSpec uses 'instance_of', so 'an_instance_of' is redundant.
- Workflow token permissions not restricted

## New (28)

- Duplicated block (45 lines × 2) (docs-support/after.rb)
- Inconsistent configuration API patterns between main library and RSpec integration. The main `SuperDiff` class uses a getter/setter pattern (or implicit setter via `configure`), while `RSpec` exposes explicit `configure` and `configuration` methods. While functionally similar, the naming convention differs between the two entry points.
- Inconsistent naming convention for RSpec matchers. Some methods use the 'a/an' prefix (e.g., `a_hash_including_something?`, `an_object_having_some_attributes?`) while others do not (e.g., `hash_including_something?`, `kind_of_something?`). This inconsistency is confusing for users trying to discover available matchers.
- Medium CVE: [GHSA redacted] (yarn.lock)
- Off-boarding risk: anonymized user #1
- Orphaned file (lib/super_diff.rb)
- Orphaned file (lib/super_diff/basic/diff_formatters/collection.rb)
- Orphaned file (lib/super_diff/basic/operation_tree_builders/array.rb)
- Orphaned file (lib/super_diff/basic/operation_tree_flatteners/collection.rb)
- Orphaned file (lib/super_diff/core/abstract_operation_tree_builder.rb)
- Orphaned file (lib/super_diff/core/configuration.rb)
- Orphaned file (lib/super_diff/core/inspection_tree.rb)
- Orphaned file (lib/super_diff/core/inspection_tree_nodes/base.rb)
- Orphaned file (lib/super_diff/csi/document.rb)
- Orphaned file (lib/super_diff/csi/eight_bit_color.rb)
- Orphaned file (lib/super_diff/csi/four_bit_color.rb)
- Orphaned file (lib/super_diff/csi/twenty_four_bit_color.rb)
- Orphaned file (lib/super_diff/object_inspection.rb)
- Orphaned file (lib/super_diff/rspec.rb)
- Orphaned file (lib/super_diff/rspec/augmented_matcher.rb)
- …and 8 more
