Unclassified

Workbench Master Plan

The trilogy: Projection Doctrine + Builder Doctrine + Tool Absorption Doctrine, executed in sequence.


The Three Doctrines

DoctrineFileGoverns
Workbench & Projectiondocs/tech/workbench-projection-doctrine.mdHow relevance is computed and rendered
Workbench Builderdocs/tech/workbench-builder-doctrine.mdHow the surface must be built
Tool Absorptiondocs/tech/tool-absorption-doctrine.mdHow external capabilities are internalized

Workbench Surface Boundary Decision

WorkbenchCanonical SurfaceOpen WebUI RoleBoundary Rule
User WorkbenchProjection-native customer/product shellNo shell roleThe customer-facing workbench remains the IntegrateWise product shell. It may launch or hand off context into Twin, but is not replaced by Open WebUI.
Twin WorkbenchOpen WebUI primary Twin surfaceDirect runtimeOpen WebUI is the primary cognition surface for Twin: chat, models, prompts, knowledge, tools, automations, and memory.
GovernanceEmbedded at every layer — approval queue and HITL review surface inline in the Operational WorkbenchGovernance-adjacentApproval panels appear inline, not in a separate shell.

Canonical styling rule:

  • Twin / Open WebUI runtime surfaces use Forest + Paper.
  • Midnight Executive remains investor-deck language only.

Execution Sequence

Phase 1: Stabilize Projection Architecture

Goal: The Projection Engine is the foundation. It must be solid before any surface work continues.

TaskFile / LocationStatus
useProjection() hook reads all spine config tableslib/projection/use-projection.ts✅ Built
Module resolver computes work/org/personal viewslib/projection/module-resolver.ts✅ Built
Field policy enforcementlib/projection/field-policy.ts✅ Built
Module guard in ContentRouterlib/projection/module-guard.ts + content-router.tsx✅ Wired
Role passthrough AppShell → WorkspaceShell → ContentRouterAppShell.tsx → workspace-shell-new.tsx → animated-content-router.tsx✅ Wired
RBAC role name fix — DB enum practitioner/readonly → FE member/viewerMigration or mapping layer🔄 Needed
ProjectedModules passthrough — useProjection() → sidebar navigation filterworkspace-shell-new.tsx nav generation🔄 Needed

Tool Absorption (Phase 1):

  • PostgreSQL — truth layer fully utilized via direct Spine DB RPC reads
  • Infisical — secrets governance remains backend-only; no surface change yet

Phase 2: Make Navigation Projection-Native

Goal: The sidebar and navigation must be driven by projection, not hardcoded maps.

TaskFile / LocationStatus
Dynamic module resolver replaces static DOMAIN_CONTENT_MAPcontent-router.tsx✅ Guard + module-resolver.ts dynamic resolution active
Sidebar nav filters by tenant_products × role × departmentworkspace-shell-new.tsx via nav-builder.ts✅ buildNavFromProjection() drives sidebar
Navigation respects depth_matrixnav-builder.ts✅ Cross-dept modules grouped with depth badges
Product entitlement gates navigation itemsmodule-guard.ts + nav-builder.ts✅ canAccessModule() gates every sidebar item
Three doors enforced: My Department / My Organization / My SelfTabs in workbench + nav sections✅ Built

Tool Absorption (Phase 2):

  • BookStack — doctrine browser link in Org View (integrated reference stage) ✅

Phase 3: Build SDAI-Native Operational Surfaces

Goal: The Workbench must make the Schema-Driven AI Integration pipeline visible and operable.

TaskPrimitiveBackend Need
Ingestion Panel — real-time source connector statusHealth Ring + Timeline Streamsync_jobs polling endpoint
Source Connector Tiles — per-tool status (Salesforce, HubSpot, Gmail, Slack, ChatGPT, Claude, Kimi)Entity Card variantConnector status API
Schema Extraction Badge — shows which template/schema was fetchedMetric Tilespine_schema_registry per-entity
Normalization Progress — 8-stage pipeline visualizationProgress bars + Timeline StreamPer-entity pipeline state
Curation Queue — AI-proposed entities awaiting human judgmentGovernance Panelcontinuity_objects with proposed state
Schema Mapping Preview — tool field → spine field mappingOperational CanvasSchema mapping API

New Components to Build:

  • components/workbench/panels/ingestion-panel.tsx
  • components/workbench/panels/connector-tile.tsx
  • components/workbench/panels/curation-card.tsx

Tool Absorption (Phase 3):

  • Spine DB conversational_memory — continuity timelines visible in Timeline Stream
  • Agent Zero — execution cards in Action Tiles (native-assisted stage)

Phase 4: Surface Ingestion + Curation + Write-Back Visibly

Goal: Close the loop. User sees raw input → AI curation → approval → write-back → confirmation.

TaskPrimitiveBackend Need
Raw Input Preview — show scrambled source data (email thread, doc, AI convo)Operational CanvasSource content fetch API
AI Curation Card — curated entity proposal with confidenceInsight Block + Entity Cardcontinuity_objects content
Schema Mapping Approval — approve field mappings before entity creationGovernance PanelSchema mapping + approval API
Write-Back Proposal — "Update Salesforce stage? [Confirm]"Action Tileconnector.execute with preview
Write-Back Confirmation — timeline showing write-back success/failureTimeline Streamworkflow_executions + audit_log
Sync Conflict Detection — alert when source tool has divergedInsight Blockpipeline_quarantine + diff API
Empty Dashboard Killer — ingestion always produces candidatesAll primitivesContinuous ingestion cron

New Components to Build:

  • components/workbench/panels/curation-card.tsx
  • components/workbench/panels/writeback-monitor.tsx
  • components/workbench/panels/sync-conflict-alert.tsx

Tool Absorption (Phase 4):

  • n8n — workflow trace in Timeline Stream, execution in Action Tiles (native-assisted stage)
  • Open WebUI — contextual Twin handoff panels linked to entities (Twin-primary, not customer shell)

Phase 5: Absorb High-Value Tool Affordances

Goal: Progressive absorption of the strongest capabilities from the external stack.

ToolAffordance to AbsorbWorkbench PrimitiveStage
AffineBlock-based operational canvases, freeform draftingOperational Canvas (enhanced)Native-assisted
BookStackHierarchical doctrine navigation, canon browsingOrg View canon panelsIntegrated reference
Open WebUITwin entrypoint, entity-linked chat, contextual handoff into Open WebUITwin launch surfaces, Insight BlocksTwin-primary / product-non-shell
n8nWorkflow trace visibility, execution provenanceTimeline Stream, Action TilesNative-assisted
BeszelRuntime health cards, system anomaliesHealth Ring, Health CanvasIntegrated reference
LiteLLMModel provenance, routing transparencyGovernance Panel metadataIntegrated reference
OllamaLocal-vs-cloud reasoning visibilityTwin provenance badgesIntegrated reference
Agent ZeroVisible execution cards, bounded task runsAction Tiles, execution summariesNative-assisted
Spine DB memory.*Continuity timelines, memory-linked entitiesTimeline Stream, memory attachmentsNative-primary

New Components to Build:

  • components/workbench/panels/twin-chat-panel.tsx (Open WebUI handoff, not shell replacement)
  • components/workbench/panels/doctrine-browser.tsx (BookStack absorption)
  • components/workbench/panels/workflow-trace-panel.tsx (n8n absorption)
  • components/workbench/panels/execution-summary-card.tsx (Agent Zero absorption)

Phase 6: Use v0 for Final Experiential Coherence

Goal: v0 is the polish benchmark. Apply its interaction patterns to the rebuilt surface.

v0 Patternv1 LocationAction
Working memory tiles — context + sources + next step_deprecated/os-home-view-wired.tsxExtract pattern, apply to EntityCard
Unified surface — one place, no tab switchingworkspace-shell-new.tsxEnsure Personal/Work/Org are fluid, not jarring
Contextual action buttons — canAct flag_deprecated/os-home-view-wired.tsxApply to ActionTile
AI memory — "You discussed pricing on Jan 28"_deprecated/os-home-view-wired.tsxApply to TimelineStream
Low cognitive switchingAll viewsAudit: can user complete task without leaving workbench?
Visible next stepsEntityCard + InsightBlockEvery card must have "What next?"

Builder Acceptance Test (apply to every view):

  • Can a user understand what matters in under 10 seconds?
  • Can a user act without opening 4 more tabs?
  • Can a user see evidence before approving?
  • Can a user remain inside one contextual surface for a full task cycle?

Phase 7: Expand Departments Through Configuration Only

Goal: No bespoke UI for new departments. Only configuration.

DepartmentConfig (entityTypes + metrics)Workbench
Business Ops✅ Built✅ BizOpsWorkbench
Customer Success✅ Configured✅ CSWorkbench
Salesopportunity, lead, quote, sequenceDepartmentWorkbench wrapper
Marketingcampaign, lead, email, social_postDepartmentWorkbench wrapper
RevOpspipeline, forecast, quota, cohortDepartmentWorkbench wrapper
Financeinvoice, budget, expense, reportDepartmentWorkbench wrapper
Serviceticket, sla, knowledge_article, satisfactionDepartmentWorkbench wrapper
Procurementvendor, purchase_order, contract, renewalDepartmentWorkbench wrapper
IT Adminsystem, incident, vulnerability, certificateDepartmentWorkbench wrapper
Product/Engfeature, bug, sprint, releaseDepartmentWorkbench wrapper
Student/Teacherstudent, course, assignment, gradeDepartmentWorkbench wrapper

Each new department requires only:

  1. Entity type list
  2. Metric definitions
  3. Thin wrapper component (20 lines)
  4. Module registry entry

No custom pages. No custom CSS. No custom data fetching.


Capability Adoption Tracker

ToolCurrent StageTarget StagePhase
PostgreSQLNative-primaryNative-primary1 (complete)
Spine DB memory.*Integrated referenceNative-primary3-4
Open WebUIExternal Twin surfaceTwin-primary / product-non-shell4-5
n8nExternal onlyNative-assisted4-5
AffineExternal onlyNative-assisted5
BookStackExternal onlyIntegrated reference2-5
BeszelExternal onlyIntegrated reference5
LiteLLMExternal onlyIntegrated reference5
OllamaExternal onlyIntegrated reference5
Agent ZeroExternal onlyNative-assisted4-5
InfisicalExternal onlyExternal onlyRetained as specialist

Decision Log

DateDecision
2026-05-17Three doctrines formalized: Projection, Builder, Tool Absorption
2026-05-177-phase execution sequence established
2026-05-17SDAI (Schema-Driven AI Integration) defined as core product pattern
2026-05-17v0 remains polish benchmark, v1 remains substrate
2026-05-17Tool absorption is staged, not immediate replacement
2026-05-17Department expansion is configuration-only after Phase 7
2026-05-21Open WebUI reaffirmed as the primary Twin surface, not the customer-facing product shell

This plan is a living document. Update it when phases complete or architecture shifts.