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 number — the gate identifier
- Name — a short description of what's being checked
- Scope — which part of the system enforces it (
[SDK],[SDK+CI],[Device]) - Status — ✓ (pass) or ✗ (fail)
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
- Learn how to fix common gate failures
- Start building a device