Now that your workspace is set up, let's run plesty check on a device module and understand what each gate does.

Running the check

Navigate to a device module and run the check:

cd repos/hub/devices/thorlabs
uv run plesty check

This runs all gates for the configured standard (default: quantum). The output shows each gate as it runs:

Gate 1  Metadata & Namespace       [SDK]       ✓
Gate 2  Code Hygiene & Tooling     [SDK]       ✓
Gate 3  API Interface Matching     [SDK]       ✓
Gate 4  Data Layer Compliance      [SDK]       ✓
Gate 5  Documentation Completeness [SDK]       ✓
Gate 6  Dependency Coexistence     [SDK]       ✓
Gate 7  Automated Test Coverage    [SDK+CI]    ✓
Gate 8  Semantic Versioning        [SDK+CI]    ✓
Gate 9  Licensing Compliance       [SDK+CI]    ✓
Gate 10 Vulnerability Audit        [SDK+CI]    ✓
Gate 11 Docs Build                 [SDK]       ✓
Gate d1 Device API Pipeline        [Device]    ✓
Gate d2 Device Status Contract     [Device]    ✓
Gate d3 Device Docs                [Device]    ✓

Understanding the output

Each gate shows:

Gate scopes

Scope Meaning
[SDK] Checked locally by the SDK
[SDK+CI] Checked both locally and in CI
[Device] Device-specific gates (mock pipeline)
[Experiment] Experiment-specific gates
[CI] Only runs in the GitLab CI pipeline

Running specific standards

You can run a subset of gates by specifying a standard:

# Fast pre-commit check
uv run plesty check --standard pixel

# Pre-push check
uv run plesty check --standard nebula

# Full local verification (default)
uv run plesty check --standard quantum

What if a gate fails?

Don't worry — failures are expected during development. Each gate produces a clear error message explaining what went wrong. See Fixing Failures for common solutions.

Next steps