$ account sbt
sbt is a build tool for Scala, Java, and other JVM languages. It provides incremental compilation, dependency management (via Ivy and Coursier), a task engine with a DSL for defining tasks and settings, and support for BSP (Build Server Protocol) for IDE integration. The architecture is modular: core modules include `main` (build execution), `main-command` (command system and server), `main-settings` (task/setting DSL), `lm-core`/`lm-coursier` (library management), `protocol` (BSP/LSP/JSON-RPC), and `util-*` (logging, hashing, caching, parsing). Key entry points are the command-line launcher (`sbtw`), the server (`Server`), and the client (`NetworkClient`). Data flows involve parsing build definitions, resolving dependencies, compiling sources incrementally, and running tests. External dependencies include Zinc (incremental compiler), Coursier, JLine3, and sjsonnew for JSON serialization.
sbt-github-actions is an sbt AutoPlugin that generates and maintains GitHub Actions workflow files (ci.yml and clean.yml) for sbt builds. It derives the CI matrix from crossScalaVersions, adds checkout/setup/caching steps, and can publish from the exact binaries tested in the build. It also generates a separate clean.yml workflow that deletes old workflow runs and artifacts via the GitHub API, working around the limitation that workflow artifacts are not visible until the workflow finishes.