Skip to content
CAI
Software that uses CAICheck a score

scapegoat-scala/sbt-scapegoat

54.9

Adequate · 20 September 2026

165

lines of production code

Scala

primary language

1

measurement over time

CAI band scale
CAI lens gauges

What this system is

This system is an sbt plugin that integrates the Scapegoat static analysis tool into Scala build projects. It automates the configuration and dependency management of Scapegoat, ensuring reports are generated correctly without leaking plugin artifacts into consumer POMs. The plugin supports multiple Scala versions and recent SBT versions, including SBT 2.x, while providing integration tests to verify its behavior across various project setups.

Behavioural changes

Adopts scalafmt 3.9.8 and updates project configuration

The project now uses scalafmt version 3.9.8 for code formatting, configured via a new \.scalafmt.conf\ file that sets the Scala 2.12 source 3 dialect, a 120-column max width, and specific rewrite rules for trailing commas and Scala 3 syntax. Additionally, the \.gitignore\ has been updated to exclude IDE-specific files (IntelliJ \.iml\, \.idea\, and \.bsp/\) and \credentials.sbt\, while a \.git-blame-ignore-revs\ file was added to ignore the initial scalafmt reformatting commit.

(repo-wide) · high confidence

Scapegoat SBT plugin now uses a dedicated configuration for dependency management

The Scapegoat SBT plugin has been refactored to use a dedicated \ScapegoatDeps\ configuration (hiding it from the standard compile classpath) to manage the \scalac-scapegoat-plugin\ dependency. This change ensures that the plugin artifact is correctly scoped and prevents it from leaking into consumer POMs or interfering with the main compile classpath. The plugin also introduces a \SbtCompat\ abstraction to handle SBT version differences (specifically providing an \uncached\ wrapper for Scala 2 to ensure settings are evaluated correctly), and updates the default version mapping to support newer Scala versions (2.12.20, 2.13.17, 3.7.3) out of the box.

src/main · high confidence

Test coverage

Add sbt integration test for Scapegoat report and POM inclusion; Added scripted tests for SBT plugin auto-configuration.

Dependencies

Scapegoat plugin now supports SBT 2.x and auto-selects Scapegoat versions by Scala version

The sbt-scapegoat plugin has been updated to support cross-compilation for SBT 2.x (specifically 2.0.0-RC6) alongside SBT 1.x, allowing users to adopt newer SBT versions. Additionally, the plugin now automatically selects the appropriate Scapegoat compiler plugin version based on the project's Scala version (e.g., defaulting to 3.2.0 for Scala 2.13.17, 2.1.4 for Scala 2.12.17, and 1.4.9 for Scala 2.11.12), reducing manual configuration requirements.

(dependencies) · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Baseline

  • First survey — no prior run to compare against. CAI 55.

Lenses

  • Code Health 88
  • Architecture 100
  • Maturity 39
  • Readiness 56
  • Security 75

Changes since last survey

  • 300 commits — 280 feature/other, 20 fixes

By area

  • (root) — 126 commits
  • (repo) — 61 commits
  • src/main — 38 commits
  • project/build.properties — 31 commits
  • project/plugins.sbt — 23 commits
  • .github/workflows — 9 commits
  • src/sbt-test — 9 commits
  • .gitlab/ci — 3 commits

Notable commits

  • fix: Bug fix release
  • fix: Fix compile errors
  • fix: Fix default minimal warn level
  • fix: Fix the configured compiler setting for Minimal Warn Level
  • fix: Merge pull request #103 from ches/min-warn-level-fix
  • fix: Merge pull request #14 from randomcoder/Fix-Running-Under-Scala-2.11.4
  • fix: Merge pull request #151 from Johnnei/fix-minimal-level
  • fix: Merge pull request #37 from JoshRosen/fix-34
  • fix: Merge pull request #49 from kmudrick/bugfix/build-settings
  • fix: Merge pull request #58 from pomadchin/fix/libraryDependencies
  • fix: Revert "chore(docs): Update group id"
  • fix: Revert "feat: Support Scala 2.13.17 and 3.7.3 out of the box"
  • fix: fix publish failure
  • fix: fix(ci): Correct syntax to publish from tags
  • fix: fix(ci): Fix snapshot publishing
  • fix: fix(ci): Include tag checkout for sbt-dynver
  • fix: fix(ci): Publishing to Sonatype works again (#183)
  • fix: fix(ci): Update GitHub Actions for sbt 2.x support
  • fix: fix: Use hidden project configuration for dependency management (#194)
  • fix: fix: do not remove 3.1.8 version mappings
  • …and 280 more

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

scapegoat-scala/sbt-scapegoat was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 20 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit f4ed396021cb9a46c2da4ef9af18a151cd3f0e81 — the exact code this score is about.
  • Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-b51f968c9b10.