# Changelog

## Score

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

## Lenses

- Code Health 100 → 76 (-24.3)
- Architecture 69 → 69 (+0.0)
- Maturity 49 → 43 (-5.9)
- Readiness 74 → 74 (+0.0)
- Security 97 → 97 (+0.0)

## Resolved (4)

- Ambiguous naming for temporal direction. 'previous' typically implies moving backwards in time (roll_backward), while 'first' is ambiguous (could mean the start of the current week, or the next available day). Given the presence of explicit 'roll_forward' and 'roll_backward', 'previous_business_day' likely duplicates the intent of 'roll_backward' or is a confusing alias for it.
- Inconsistent receiver context for identical logic. One is a ClassMethod taking a `day` argument, the other is an InstanceMethod on Time taking no date argument (implying `self`). While technically distinct signatures, this forces users to remember which context to use for the same boolean check, violating the principle of least surprise.
- Inconsistent return types and naming for similar calculations. `Date` returns a count of days (Integer), while `Time` returns a duration of business hours (likely Integer or Float). The method names differ (`business_days_until` vs `business_time_until`) despite both calculating the gap between two points in time. This creates confusion about whether the caller expects a day count or an hour count.
- Workflow token permissions not restricted

## New (7)

- Ambiguous naming for similar temporal operations. 'previous_business_day' implies moving back one day, while 'first_business_day' is ambiguous (first of the week? first available after a date?). If 'first_business_day' means 'next business day', it conflicts with the semantic of 'previous'. If it means 'start of week', it is domain-specific but poorly named compared to standard 'beginning_of_week'.
- Generic 'roll' verbs are less descriptive than specific directional verbs like 'next' or 'previous'. While distinct, they are less intuitive than the explicit 'previous_business_day' and 'next_business_day' pattern used elsewhere.
- Orphaned file (lib/business_time/business_hours.rb)
- Orphaned file (lib/business_time/config.rb)
- Orphaned file (lib/business_time/time_extensions.rb)
- Redundant methods with nearly identical signatures. 'business_days_until' likely returns an integer count, while 'business_dates_until' likely returns an array of dates. However, the naming is confusing because 'days' is often used colloquially for the count, but 'dates' is plural. The distinction is return type, not intent, but the names are too similar.
- Workflow token permissions not restricted (.github/workflows/ci.yml)
