Plugin development
A plugin owns its algorithm and declares ports, settings and supported execution contracts. Spectrum owns runtime services, packets, contexts and synchronization. Prisma Studio owns the authoring experience. Keep those responsibilities separate.
Use the selected SDK tools
Start with an existing plugin workspace or inspect the installed scaffold options:
"$SPECTRUM_ENV/tools/bin/pluginlab_cli" scaffold --help
"$SPECTRUM_ENV/tools/bin/pluginlab_cli" validate --workspace /absolute/plugin
"$SPECTRUM_ENV/tools/bin/pluginlab_cli" build --workspace /absolute/plugin \
--sdk-dir "$SPECTRUM_ENV/sdk"
"$SPECTRUM_ENV/tools/bin/pluginlab_cli" test --workspace /absolute/plugin \
--backend host --runtime-smoke-cli "$SPECTRUM_ENV/tools/bin/pluginlab_runtime_smoke_cli"
Use Host tests only for a plugin that declares Host support. Camera, GPU and model-dependent checks need their actual inputs/devices. A lifecycle pass does not prove photographic quality. PluginLab records source, SDK and artifact identities; rebuilding alone does not replace a revision adopted by a graph/project.
Use generated build files and callbacks from the selected SDK. CMake consumers use the exported Spectrum::PluginAPI
contract and optional Spectrum::PluginSupport helpers. Halide/MNN plugins consume
the SDK's declared compiler/runtime packages. Do not include private runtime headers,
embed a second packet/camera runtime, or override private backend contexts.
Share deliberately
A plugin package may contain binaries, metadata, required licensed assets and notices without source. Editable source can be shared separately through a local folder or repository. Small unit fixtures belong in source; personal photographs, credentials, build caches and machine paths do not. Local package publication is not a marketplace upload. Public reference examples remain subject to promotion and rights review.
See SDK integration boundaries. Complete compiled host examples and a versioned generated API reference remain documentation work.