# Changelog

## Score

- CAI 69 → 57 (-12.1)
- Rubric changed (rubric-2026.10.1 → rubric-2026.10.5) — scores are not directly comparable.

## Lenses

- Code Health 100 → 75 (-24.2)
- Architecture 88 → 88 (+0.0)
- Maturity 59 → 39 (-19.7)
- Readiness 62 → 62 (+0.0)
- Security 100 → 100 (+0.0)

## Resolved (3)

- Internal vs Public API duplication: The double-underscore prefix convention typically denotes private or internal methods in Ruby. Having `__unload` alongside `unload` suggests that `unload` is a public wrapper for `__unload`, or that they are redundant. If `__unload` is exposed in the public surface, it creates confusion about which method should be called by users.
- Redundant constructor signatures: Both `__new` and `initialize` are exposed with identical signatures. In Ruby, `initialize` is the standard constructor hook. Exposing `__new` (which is typically used for overriding `new` behavior internally) as a public API alongside `initialize` is confusing and redundant.
- Workflow token permissions not restricted

## New (4)

- Presence of a private/internal method `__unload` alongside the public `unload` method suggests an implementation detail leak or a split responsibility that is not clearly documented. In a consistent API, internal state cleanup should be encapsulated within the public method or hidden behind a private prefix without being exposed in the public surface list.
- Workflow token permissions not restricted (.github/workflows/ci.yml)
- Workflow token permissions not restricted (.github/workflows/keep-an-eye-on-ruby-head.yml)
- Workflow token permissions not restricted (.github/workflows/keep-an-eye-on-truffleruby-head.yml)
