# Changelog

## Score

- CAI 64 → 59 (-4.7)
- Rubric changed (rubric-2026.10.1 → rubric-2026.10.5) — scores are not directly comparable.

## Lenses

- Code Health 100 → 76 (-24.2)
- Architecture 100 → 100 (+0.0)
- Maturity 43 → 37 (-6.6)
- Readiness 74 → 74 (+0.0)
- Security 81 → 81 (+0.0)
- Domain Modelling 100 → 100 (+0.0)
- Performance 85 → 85 (+0.0)

## Resolved (2)

- Overlapping error checking methods with unclear boundaries. `error?`, `schema_error?`, and `rule_error?` suggest a hierarchy or distinction between schema-level and rule-level errors, but the API surface exposes multiple boolean checks that may overlap in practice. Users may be confused about whether `error?` is a superset of the others or if they check disjoint sets.
- Redundant schema export methods with ambiguous intent. `params`, `json`, and `schema` likely produce similar or identical schema representations (e.g., JSON Schema) but are exposed as distinct methods. It is unclear if they differ by output format, validation context, or if they are aliases. This creates confusion for users regarding which method to use for a given serialization need.

## New (11)

- Inconsistent error querying granularity. `error?(key)` is ambiguous compared to the specific `schema_error?`, `rule_error?`, and `base_rule_error?`. It is unclear if `error?` is a superset or if it behaves differently than the specific variants. This creates confusion for API users on which method to use for general error checking.
- Orphaned file (lib/dry/validation/contract.rb)
- Orphaned file (lib/dry/validation/contract/class_interface.rb)
- Orphaned file (lib/dry/validation/evaluator.rb)
- Orphaned file (lib/dry/validation/macros.rb)
- Orphaned file (lib/dry/validation/message_set.rb)
- Orphaned file (lib/dry/validation/messages/resolver.rb)
- Orphaned file (lib/dry/validation/result.rb)
- Orphaned file (lib/dry/validation/rule.rb)
- Orphaned file (lib/dry/validation/values.rb)
- Redundant schema export methods with ambiguous intent. `params`, `json`, and `schema` likely produce similar outputs (schema definitions) but for different contexts (e.g., API params vs JSON schema vs internal schema). However, without clear documentation distinguishing the output format or use-case, these appear as duplicate operations for 'getting the schema'.
