Unclassified
ADR-002: SharedWorkbench is the Sole Composed Output
Status: Accepted
Date: 2026-07-21
Deciders: Nirmal (Founder)
Context
Multiple downstream consumers (web app, twin runtime, capability fabric) need a unified view of workspace state. Without a single output type, each consumer would define its own shape, leading to type drift and inconsistent data.
Decision
SharedWorkbench (defined in contracts/shared-workbench/v1.ts) is the sole output type of the Projection Engine. Every downstream consumer imports this contract. No consumer may define its own workbench shape.
Consequences
- Positive: Type-safe contracts across the entire stack. Consumers know exactly what data is available.
- Negative: Adding fields to SharedWorkbench requires version bump. Consumers may receive fields they don't use.
- Mitigation: Optional fields (
user?,metadata?). Versioned contract with changelog.
Evidence
contracts/shared-workbench/v1.ts— frozen contractcontracts/shared-workbench/schema.json— JSON Schema validationcontracts/shared-workbench/CHANGELOG.md— version history