# Changelog

## Score

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

## Lenses

- Code Health 98 → 74 (-23.2)
- Architecture 100 → 100 (+0.0)
- Maturity 54 → 52 (-2.8)
- Readiness 60 → 62 (+2.1)
- Security 82 → 82 (+0.0)

## Resolved (2)

- Off-boarding risk: anonymized user #1
- Workflow token permissions not restricted

## New (8)

- Documentation: no architecture or design documentation (README.markdown)
- Inconsistent Return Type for Rendering: All renderers implement `renderKeys` returning `Seq[String]`. However, `BuildInfoRenderer` trait defines `renderKeys(infoKeysNameAndValues: Seq[BuildInfoResult]): Seq[String]`. While consistent in signature, the naming `renderKeys` vs the input `infoKeysNameAndValues`/`buildInfoResults` is slightly inconsistent in parameter naming across implementations, though this is minor. More importantly, `Scala3CaseObjectRenderer` has an additional `toStringLines` method not present in others, which might be internal helper but is exposed.
- Off-boarding risk: anonymized user #1
- Orphaned file (src/main/scala/sbtbuildinfo/Scala3CaseClassRenderer.scala)
- Orphaned file (src/main/scala/sbtbuildinfo/ScalaCaseClassRenderer.scala)
- Redundant/Confusing TaskKey handling: `BuildInfoKey.apply` accepts `TaskKey` directly, but there is also a specific `outOfGraphUnsafe` method for `TaskKey`. It is unclear why `apply` handles `TaskKey` safely while `outOfGraphUnsafe` exists, or if `outOfGraphUnsafe` is just an alias for a specific unsafe behavior of `apply`. This creates ambiguity about which method to use for TaskKeys.
- Workflow token permissions not restricted (.github/workflows/ci.yml)
- Workflow token permissions not restricted (.github/workflows/publish.yml)
