# Core Concepts

SeaLights SBT Plugin uses shared Java Build Tools concepts:

* **Build Scanner:** collects project info and prepares instrumentation
* **Test Listener:** streams test execution to SeaLights
* **Build Session ID:** unique identifier per build
* **Test Stages:** logical grouping of tests (Unit, Integration)
* [**Execution Modes**](#execution-modes)**:** control what runs (full run, scan only, tests only, disabled)

{% hint style="info" %}
See [Java Build Tools Plugins](https://docs.sealights.io/knowledgebase/setup-and-configuration/sealights-agents-and-plugins/java-build-tools-plugins) for details on Core Concepts.
{% endhint %}

#### Execution Modes

<table><thead><tr><th width="118.2265625">Mode</th><th>Configuration</th><th>Description</th></tr></thead><tbody><tr><td>Full Run</td><td>default</td><td>Build scan + instrumented tests</td></tr><tr><td>Scan Only</td><td><code>sealightsRunScanOnly := Some(true)</code></td><td>Only run Build Scanner, skip tests</td></tr><tr><td>Tests Only</td><td><code>sealightsRunTestOnly := Some(true)</code></td><td>Reuse previous scan, run tests only</td></tr><tr><td>Disabled</td><td><code>sealightsDisabled := Some(true)</code></td><td>Skip SeaLights integration</td></tr></tbody></table>

{% hint style="info" %}
**Note:** Modes can also be configured in JSON via `executionType` (`scanonly` / `testsonly` / `disabled`).
{% endhint %}
