# Changelog

## Score

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

## Lenses

- Code Health 100 → 75 (-24.5)
- Architecture 69 → 69 (+0.0)
- Maturity 49 → 43 (-5.9)
- Readiness 75 → 75 (+0.0)
- Security 95 → 95 (+0.0)

## Resolved (3)

- Inconsistent naming convention for border style setters. `border_x`, `border_y`, and `border_i` use single-letter suffixes that are not self-explanatory (unlike `border_top`, `border_bottom`, etc.). This contrasts with the explicit `border_top=`, `border_left=`, etc., and the property `border`. It is unclear what 'x', 'y', and 'i' represent without external documentation.
- Redundant getter signatures. The presence of both `alignment?()` (likely returning nil if not set) and `alignment()` (likely returning the default or current value) creates ambiguity about which method to call for reading the property. In Ruby, `alignment()` is the standard getter; `alignment?()` is typically a predicate returning boolean. Using both for the same attribute is confusing.
- Workflow token permissions not restricted

## New (9)

- Conflicting naming for setting alignment. `alignment=` is a standard Ruby setter for a property. `align` is a method that takes multiple arguments (`val, position, length`), suggesting it might perform rendering or complex alignment logic rather than just setting a state. However, the name `align` is often used as a synonym for 'set alignment' in other libraries, causing confusion about whether it is a setter or a rendering helper.
- Duplicated block (29 lines × 2) (examples/examples.rb)
- Duplicated block (50 lines × 2) (examples/examples.rb)
- Inconsistent and unclear naming for border style setters. `border_x`, `border_y`, and `border_i` are cryptic abbreviations. `border_x` and `border_y` likely refer to horizontal and vertical lines, but `border_i` is unclear (possibly 'inner' or 'index'?). This contrasts with the explicit `border_top=`, `border_bottom=`, etc., which are clear.
- Orphaned file (lib/terminal-table/cell.rb)
- Orphaned file (lib/terminal-table/style.rb)
- Orphaned file (lib/terminal-table/table.rb)
- Redundant getter signatures. The presence of both `alignment?()` (likely returning nil if not set) and `alignment()` (likely returning a default or the value) creates ambiguity. In Ruby, `alignment()` is the standard getter. If `alignment?` is intended to be a predicate (boolean), it conflicts with the name `alignment`. If it is an optional getter, it duplicates the intent of `alignment` with a different return contract.
- Workflow token permissions not restricted (.github/workflows/ci.yml)
