Managed
Best when the team wants the platform to own setup, routing, readiness, API defaults, and mobile-safe operator flows.
ContractSpec docs
Build on the OSS foundation first. Use Studio when you want the operating layer on top.
Primary docs
Route multimodal authoring work through governed builder contracts, provider policies, readiness gates, and mobile review flows.
Secondary reading
Philosophy, comparisons, and educational pages that support the main OSS path without replacing it.
OSS-first docs
These docs teach the open system first: contracts, generated surfaces, runtimes, governance, and incremental adoption. Studio shows up as the operating layer on top, not as the source of truth.
Spec pack
The implemented Builder stack sits across @contractspec/lib.builder-spec, @contractspec/lib.builder-runtime, @contractspec/lib.provider-spec, and the reusable workbench/mobile modules. It orchestrates inputs, provider routing, readiness, and export decisions on top of the OSS ContractSpec foundation and the Studio operating layer.
Builder delegates synthesis and coding to external execution providers. Its job is to keep those runs policy-aware, provenance-rich, and usable from both desktop and mobile operator surfaces.
You can use the type surfaces directly in code, or start from the already wired workbench and mobile review routes in the public app shell.
Packages
- @contractspec/lib.builder-spec
- @contractspec/lib.builder-runtime
- @contractspec/lib.provider-spec
- @contractspec/module.builder-workbench
- @contractspec/module.mobile-review
Web app routes
- /operate/builder/workspaces/:workspaceId
- /operate/builder/workspaces/:workspaceId/mobile-review/:cardId
Operate API proxy
- /api/operate/builder/queries/builder.workspace.snapshot
- /api/operate/builder/commands/builder.blueprint.patch
- /api/operate/builder/commands/builder.export.executeBest when the team wants the platform to own setup, routing, readiness, API defaults, and mobile-safe operator flows.
Best for power users who want local-daemon registration, tenant-local execution providers, and tighter data-locality control.
Best when some work should stay local while preview, review, export, or mobile operator flows still use managed coordination.
Builder setup is no longer just an app-shell concern. The shared workspace config now carries runtime mode, bootstrap preset, control plane API defaults, and local runtime registration metadata so the CLI, editors, and web shells resolve the same posture.
{
"builder": {
"enabled": true,
"runtimeMode": "local",
"bootstrapPreset": "local_daemon_mvp",
"api": {
"baseUrl": "https://api.contractspec.io",
"controlPlaneTokenEnvVar": "CONTROL_PLANE_API_TOKEN"
},
"localRuntime": {
"runtimeId": "rt_local_daemon",
"grantedTo": "local:operator",
"providerIds": ["provider.codex", "provider.local.model"]
}
}
}The reusable module already exposes the desktop workbench shell. Your host app keeps control of action wiring, runtime mode selection, and approval flows.
import { BuilderWorkbench, useBuilderWorkbenchState } from "@contractspec/module.builder-workbench";
const state = useBuilderWorkbenchState({
workspace: initialSnapshot.workspace,
initialSnapshot,
});
<BuilderWorkbench
snapshot={state.snapshot}
promptDraft={state.promptDraft}
onPromptDraftChange={state.setPromptDraft}
onCapturePrompt={capturePrompt}
onGenerateBlueprint={generateBlueprint}
onCompilePlan={compilePlan}
onCreatePreview={createPreview}
onRunReadiness={runReadiness}
onExecuteExport={executeExport}
selectedExportRuntimeMode="hybrid"
/>;Builder is where the OSS foundation meets the richer operating layer. Use the Studio overview when you want the higher-level product posture and team workflows on top of these contracts.
Guard coding-agent edits and shell actions with task-scoped context, plan packets, patch verdicts, and review packets.
Choose the right contract surface for the behavior you want to make explicit.
Why ContractSpec
Keep educational and comparison content reachable without letting it define the primary OSS learning path.