Unclassified

Spine Domain — Platform-Level Three-Layer Model

Status: Canonical architecture doctrine (supersedes previous SPINE_DOMAIN.md for scope)
Date: July 6, 2026
Authority: Nirmal (Founder)
Companion docs: SPINE_INTELLIGENCE_AGENT.md (generation pipeline), SPINE_MODEL.md (physical storage), PROJECTION_MODEL.md (read views)
Platform specs: 35-document hierarchy (Notion Document Hub) — 02 Operational Spine, 21 Business Ontology, 12 Entity Framework
Supersedes: CRM-centric schema generation, domain-only models. When this doc contradicts a domain-specific approach, this doc wins.


0. The One-Line Truth

The Spine is the platform-level domain. Every business domain (Account Success, Sales, Finance, HR, Engineering) is a projection of the same Spine.
The agent builds the platform graph first. Domain artifacts are emissions from the platform graph, not separate schemas.

1. The Platform-Level Entity Model

The platform defines 16 root concepts (Business Ontology, Doc 21) + 7 operational primitives (Operational Spine, Doc 02). Every concrete entity in every business domain inherits from one of these roots.

1.1 The 16 Root Concepts (Business Ontology)

Root ConceptPrefixWhat it isConcrete types that inherit
Organizationorg_Legal entity owning the tenantTenant, Company, Division
Workspacewsp_Bounded context inside OrganizationDepartment, Team Workspace, Project Space
Personusr_First-class humanUser, Contact, Lead, Stakeholder, Employee, CSM, AE
Teamteam_Durable grouping of PersonsSales Team, CS Team, Engineering Squad
Processproc_Repeatable set of capabilitiesSales Motion, Renewal Cycle, Incident Response, Onboarding Flow
Projectprj_Temporary initiative with timelineSprint, Campaign, Launch, Migration, Implementation
Objectiveobj_Measurable goalKPI, OKR, North Star Metric, Strategic Objective
Outcomeout_Evidence-verified resultClosed Deal, Resolved Ticket, Published Article, Deployed Release, Renewal
Assetast_Durable resourceDocument, Code Repository, Design File, Data Source, Contract, Subscription
Knowledgeknw_Curated institutional memoryPlaybook, Runbook, SOP, Template, Approved Pattern, Business Context
Decisiondec_Governance-approved choiceApproval, Rejection, Override, Prioritization Choice, Governance Token
Policypol_Declarative ruleConfidence Policy, Data Scoping Policy, Approval Policy, Retention Policy
Capabilitycap_Declarable action on the fabricDraft Outreach, Sync Connector, Generate Report, Send Notification
Signalsig_Derived delta with scoreHealth Alert, Risk Trigger, Anomaly Detection, Usage Spike
Memorymem_Captured observation with lifecycleTwin Memory, Intake, Triage, Evolution, Queue, Approved Memory, Knowledge Article
Conversationconv_Twin ↔ User dialogChat Session, Brainstorming Session, QBR Meeting

1.2 The 7 Operational Primitives (Operational Spine)

These are the runtime entities that make the Spine operational. They exist in every tenant, regardless of business domain.

PrimitivePrefixWhat it isSource
Tenanttnt_The top-level isolation boundaryOperational Spine (02)
Entity (base)ent_Base type for all concrete entitiesOperational Spine (02)
Relationshiprel_Directed, typed edge between entitiesOperational Spine (02)
Timelinetl_Event-sourced append-only historyOperational Spine (02)
Activityact_Unit of work within a TimelineOperational Spine (02)
Evidenceevd_Citation for any claimOperational Spine (02)
Provenance—Metadata on every row (actor, source, timestamp)Operational Spine (02)

1.3 Domain-Specific Inheritance (Entity Framework)

Concrete business types inherit from root concepts:

Entity (base: id, version, lifecycle, provenance)
├── AggregateEntity (typed by purpose)
│     ├── CRMAccount     → inherits from Asset + Organization
│     ├── CRMLead        → inherits from Person + Outcome
│     ├── CRMOpportunity → inherits from Process + Outcome
│     ├── Ticket         → inherits from Process + Outcome
│     ├── Invoice        → inherits from Asset + Outcome
│     ├── Contract       → inherits from Asset + Decision
│     ├── Subscription   → inherits from Asset + Process
│     ├── Product        → inherits from Asset + Knowledge
│     ├── Deployment     → inherits from Asset + Project
│     ├── Integration    → inherits from Capability + Process
│     ├── Environment    → inherits from Asset + Workspace
│     ├── Meeting        → inherits from Conversation + Process
│     ├── Task           → inherits from Process + Outcome
│     ├── Initiative     → inherits from Project + Objective
│     ├── SuccessPlan    → inherits from Project + Knowledge
│     └── ... (domain-extensible)
└── ReferenceEntity
      ├── User           → inherits from Person
      ├── Product        → inherits from Asset + Knowledge
      └── ...

1.4 Canonical entity families for a person and an organization

The Spine uses the same roots for both individuals and companies. The
difference is the projection, not the truth. A person’s daily life is represented
by their identity, work, activities, relationships and memory graph. An
organization or startup is the same model at a larger scale: it adds structure
around teams, operations, product, revenue and governance.

These are the minimum entity families that should exist in the canonical
model.

Person / daily-life-work family

FamilyCommon concrete typesWhat it captures
Identity and accessPerson, User, Workspace, Membership, Role, Permissionwho the person is and what they can access
Daily workTask, Project, Objective, Outcome, Reminderwork the person is doing and what is due
CommunicationsConversation, Meeting, Message, Call, Emailinteraction history and context
Knowledge and contentDocument, Note, Knowledge, File, Attachmentdurable content and reference material
Calendar and schedulingCalendarEvent, Meeting, Availabilitytime-based commitments and planning
Network and contextContact, Relationship, Team, Organizationpeople and groups around the person
Activity and continuityActivity, Timeline, Signal, Memory, Evidencewhat happened, what mattered, and why
Personal operationsGoal, Favorite, Preference, Expenserecurring personal/work preferences and management state

Organization / startup family

FamilyCommon concrete typesWhat it captures
Core structureOrganization, Workspace, Department, Team, Membershipthe legal and operating structure
People and authorityPerson, Employee, Role, Permission, Policywho works here and what they may do
ExecutionProject, Process, Task, Objective, Outcomewhat the organization is trying to achieve
Decision and governanceDecision, Approval, Audit, Governance Tokenwho approved what and under which rule
Product and deliveryProduct, Release, Deployment, Incident, Roadmapwhat is shipped and how it behaves in production
Revenue and customer opsLead, Opportunity, Customer, Contract, Subscription, Invoice, Paymentcommercial lifecycle and commercial truth
ConnectivityConnector, Integration, Connection, Webhook, SyncJobhow the organization connects to external systems
Knowledge and continuityKnowledge, Memory, Signal, Evidence, Timelinelearned context, institutional memory and traceability
CommunicationsConversation, Meeting, Document, Note, Call, Emailoperating communication and artifacts

Activities and events

Not every event becomes a standalone truth object. In the Spine model:

  • Activity is the atomic unit of work or occurrence.
  • Timeline is the append-only history of those activities.
  • Event is usually the external or observed change that enters the Timeline.
  • Signal is the scored interpretation that emerges from the activity or event.
  • Outcome is the verified result after the activity is resolved.

Only durable business objects become canonical entities. Short-lived activity
should usually land as a Timeline entry, Evidence, Signal, or Memory unless the
domain needs a named durable object such as a Meeting, Task, Deployment or
Incident.


2. The Three-Layer Model (Platform-Level)

┌─────────────────────────────────────────────────────────────────────────────┐
│                          PROJECTIONS (Domain Views)                        │
│  ┌──────────┐  ┌──────────┐  ┌──────────┐  ┌──────────┐  ┌──────────┐     │
│  │ Account  │  │ Sales    │  │ Eng.     │  │ Finance  │  │ HR       │     │
│  │ Success  │  │          │  │          │  │          │  │          │     │
│  │          │  │ Pipeline │  │ Sprint   │  │ Revenue  │  │ Onboard  │     │
│  │ Health   │  │ Deals    │  │ Tasks    │  │ Forecast │  │ Reviews  │     │
│  │ Renewal  │  │ Forecast │  │ Blockers │  │ Budget   │  │ Teams    │     │
│  │ QBR      │  │ Meetings │  │ PRs      │  │ Invoices │  │ Org      │     │
│  │ Tasks    │  │ Contacts │  │ Standups │  │ Metrics  │  │ Payroll  │     │
│  └──────────┘  └──────────┘  └──────────┘  └──────────┘  └──────────┘     │
│                              No duplicated tables                            │
├─────────────────────────────────────────────────────────────────────────────┤
│                        DYNAMIC MEMORY (AI-Created)                         │
│  L1 Twin Memory  L2 Intake  L3 Triage  L4 Evolution  L5 Queue               │
│  L6 Approval  L7 Org Memory  L8 Knowledge  Health  Risk  Sentiment        │
│  Signals  Usage  Architecture  Tech Debt  Business Context  Engagement    │
│  Stakeholder Intel  Recommendations  Insights  Evidence  Timeline  Forecast│
│  These evolve continuously. They are derived from the Spine + external      │
│  signals. They are not source of truth. They are opinion.                │
├─────────────────────────────────────────────────────────────────────────────┤
│                      CANONICAL SPINE (Immutable Business Truth)            │
│  Organization  Person  Team  Process  Project  Objective  Outcome  Asset   │
│  Knowledge  Decision  Policy  Capability  Signal  Memory  Conversation   │
│  Tenant  Workspace  Entity  Relationship  Timeline  Activity  Evidence     │
│  These rarely change structurally. They are the business truth.              │
│  Every domain reads from the same Spine. The Projection Engine assembles     │
│  domain-specific views.                                                      │
└─────────────────────────────────────────────────────────────────────────────┘

3. Layer 1 — Canonical Spine (Platform-Level)

3.1 What belongs here

Only entities that represent real-world things the platform operates on. These are the 16 root concepts + 7 operational primitives. Every concrete business type (CRMAccount, Ticket, Contract, etc.) inherits from one of these roots.

3.2 Platform-level Spine rules

  1. One canonical record per real-world thing. A Salesforce Contact + a HubSpot Contact + a Jira Reporter = one Person.
  2. Root concepts are universal. Person in Account Success is the same Person in Sales and HR.
  3. Domain types inherit from roots. CRMAccount inherits from Asset + Organization. Ticket inherits from Process + Outcome.
  4. Spine relationships are typed edges. Not JSONB blobs. Person → belongs_to → Team. Team → part_of → Organization. Process → uses → Capability → produces → Outcome.
  5. Spine entities are versioned. Append-only. Every change is a new Timeline entry.
  6. Spine entities are tenant-scoped. Every table has tenant_id. Cross-tenant queries are impossible.
  7. Spine writes are deterministic. The Pipeline (services/pipeline) is the sole writer. No AI writes directly to the Spine.
  8. Provenance is required. Every row carries provenance[]: at least one of { actor, source_connector, evidence_ref, derived_signal }.

3.3 Canonical Spine Schema pattern

-- spine_persons (example; all Spine tables follow this pattern)
CREATE TABLE IF NOT EXISTS spine_persons (
    id              TEXT PRIMARY KEY,           -- UUID assigned by pipeline
    tenant_id       TEXT NOT NULL,
    canonical_id    TEXT NOT NULL,              -- stable identity; survives merges
    version         INTEGER NOT NULL DEFAULT 1,  -- append-only versioning

    -- Immutable business truth (typed columns, no JSONB)
    name            TEXT NOT NULL,
    email           TEXT,
    role            TEXT,
    department      TEXT,
    seniority       TEXT,
    is_primary_contact INTEGER DEFAULT 0,

    -- System
    provenance      JSON NOT NULL DEFAULT '{}', -- { source, record_id, actor }
    created_at      INTEGER,                    -- Unix timestamp
    updated_at      INTEGER                     -- Unix timestamp
);
CREATE INDEX IF NOT EXISTS idx_spine_persons_tenant_canonical
    ON spine_persons(tenant_id, canonical_id);
CREATE INDEX IF NOT EXISTS idx_spine_persons_tenant_version
    ON spine_persons(tenant_id, canonical_id, version);

3.4 The typed edge graph (spine_relationships)

CREATE TABLE IF NOT EXISTS spine_relationships (
    id              TEXT PRIMARY KEY,
    tenant_id       TEXT NOT NULL,
    from_canonical_id   TEXT NOT NULL,
    from_type       TEXT NOT NULL,
    relation_type   TEXT NOT NULL,          -- 'owns', 'belongs_to', 'depends_on', 'references', 'derived_from', 'supersedes', 'contested_by', 'uses', 'produces', 'has_state', 'part_of', 'measured_by', 'governs', 'constrained_by', 'informs', 'reinforces', 'generates', 'promotes_to'
    to_canonical_id     TEXT NOT NULL,
    to_type         TEXT NOT NULL,
    metadata        JSON NOT NULL DEFAULT '{}', -- { weight, confidence, start_date, end_date }
    valid_from      INTEGER,
    valid_until     INTEGER,                -- NULL = current
    created_at      INTEGER
);
CREATE INDEX IF NOT EXISTS idx_spine_rel_from
    ON spine_relationships(tenant_id, from_type, from_canonical_id)
    WHERE valid_until IS NULL;
CREATE INDEX IF NOT EXISTS idx_spine_rel_to
    ON spine_relationships(tenant_id, to_type, to_canonical_id)
    WHERE valid_until IS NULL;
CREATE INDEX IF NOT EXISTS idx_spine_rel_type
    ON spine_relationships(tenant_id, relation_type)
    WHERE valid_until IS NULL;

4. Layer 2 — Dynamic Memory (Platform-Level)

4.1 The 8-layer memory pipeline (Memory System, Doc 07)

LayerMemory TypeWhat it isTTLSource
L1twin_memoryConversational working memorySessionTwin Runtime
L2memory_intakeRaw observations, immutable24hTwin, Connector, Manual
L3memory_triageClassification (fact/decision/observation/relationship/noise)7dTriage Bot
L4memory_evolutionPattern detection, cluster, dedupe14dEvolution Engine
L5memory_promotion_queueStaging surface for human approval30dPromotion Queue
L6memory_approvalGovernance-approved or rejected memoryPersistentHuman Approval
L7memory_organizationalDurable, indexed, queryablePersistentL6 promotion
L8memory_knowledgeSOPs, playbooks, runbooksPersistentL7 + human authored

4.2 Domain-specific memory types (derived from platform signals)

MemoryWhat it isTTLDerived from
memory_healthAccount/entity health score7dUsage, support, engagement, NPS
memory_riskRisk score + reasoning14dContract, usage, stakeholder changes
memory_sentimentEmotional tone7dTranscripts, emails, support
memory_signalsDetected anomalies1dTelemetry, webhooks, deltas
memory_usageAggregated consumption30dTelemetry, API logs
memory_architectureArchitecture posture90dAPI inventory, topology
memory_technical_debtTechnical liabilities30dTickets, post-mortems
memory_business_contextSynthesized business understanding30dPublic data, earnings, news
memory_engagementRelationship history30dMeetings, emails, calls
memory_stakeholderStakeholder intelligence14dOrg chart, engagement
memory_recommendationsSuggested actions7dHealth + Risk + Engagement
memory_insightsGenerated findings7dCross-signal synthesis
memory_evidenceSupporting data for claimsPersistentLinks, metrics, quotes
memory_timelineProjected events90dContracts, renewals, initiatives
memory_forecastPredicted revenue/churn30dML models, historical patterns

4.3 Memory rules (platform-level)

  1. Memory is opinion, not truth. Every memory has confidence (0.0–1.0) and generated_by.
  2. Memory is ephemeral (except L6-L8). Most memories have a TTL. Continuity Layer manages lifecycle.
  3. Memory links to the Spine. Every memory references a canonical_id + entity_type in the Spine.
  4. Memory is graph-native. The same spine_relationships pattern works for Memory edges.
  5. Memory is event-sourced. Every memory has an episode_id linking to the OODA cycle.
  6. Memory is projection-friendly. Memory is designed to be sliced by team, role, and time horizon.

5. Layer 3 — Projections (Domain-Specific Views)

5.1 What a projection is

A projection is a declared view over the Spine + Dynamic Memory. It is not a table. It is a configuration that tells the Projection Engine which entities, which memories, and which relationships to assemble for a given domain, team, role, and context.

5.2 The projection principle

No domain has its own database. No domain has its own schema.
Every domain sees the same Spine. The Projection Engine assembles their view.
Account Success, Sales, Engineering, Finance, HR — all read from the same Spine.

5.3 Canonical projections for all business domains

ProjectionConsumerSpine rootsMemory typesKey relationships
account-successCSM, Account ManagerPerson, Asset (Contract, Subscription), Process (Task), Conversation (Meeting)Health, Risk, Engagement, Timeline, Insights, RecommendationsPerson↔Asset, Process↔Person, Conversation↔Person
salesAE, SDR, Sales ManagerPerson, Process (Opportunity), Outcome (Deal), Asset (Contract)Forecast, Pipeline, Engagement, InsightsPerson↔Process, Process↔Outcome, Asset↔Outcome
engineeringIC, Engineering ManagerPerson, Project (Sprint), Asset (Code), Process (Task), KnowledgeArchitecture, Usage, Technical Debt, SignalsPerson↔Project, Project↔Asset, Asset↔Process
executiveVP, CRO, CFOOrganization, Asset, Process, OutcomeHealth, Risk, Forecast, Revenue, Business ContextOrganization↔Asset↔Process↔Outcome
financeFinance Manager, CFOAsset (Invoice, Contract), Outcome (Revenue), Decision, PolicyForecast, Budget, Metrics, ComplianceAsset↔Outcome, Decision↔Policy, Asset↔Decision
hrHRBP, CHROPerson, Team, Process (Onboarding), Knowledge (SOP), DecisionEngagement, Metrics, Timeline, InsightsPerson↔Team, Team↔Process, Process↔Knowledge
supportSupport Engineer, ManagerPerson, Asset (Product, Deployment), Process (Ticket), Outcome (Resolution)Cases, Errors, Incidents, SLA, UsagePerson↔Asset, Asset↔Process, Process↔Outcome
implementationOnboarding ManagerPerson, Project, Process (Task), ObjectiveMilestones, Timeline, Signals, Business ContextProject↔Process, Process↔Person, Project↔Objective
marketingMarketing ManagerPerson, Project (Campaign), Asset (Content), Outcome (Lead)Engagement, Insights, Metrics, TimelineProject↔Asset, Asset↔Outcome, Project↔Person
operationsOps ManagerProcess, Policy, Decision, Knowledge, OutcomeMetrics, Compliance, Timeline, InsightsProcess↔Policy, Decision↔Policy, Knowledge↔Process

6. Cross-Layer Rules

6.1 Write path

Connector / Webhook / MCP / API / Manual
        ↓  (Loader → Normalizer → Entity Resolution)
Pipeline (Spine Writer)  ──writes──▶  Canonical Spine (append-only)
        ↓  (Signal loop: Think → HITL → Act → Pipeline)
Intelligence Agent  ──generates──▶  Dynamic Memory (ephemeral, opinionated)
        ↓  (read-only assembly at query time)
Projection Engine  ──assembles──▶  Projections (views, never stored)

6.2 Read path

User / Twin / API
        ↓
Projection Engine  ──reads──▶  Canonical Spine (stable truth)
                      ──reads──▶  Dynamic Memory (current opinion)
                      ──reads──▶  spine_relationships (typed graph)
        ↓
Assembly  ──returns──▶  TypedProjectionResult (JSON, never SQL directly to UI)

6.3 The No-Duplication Contract

  • No domain has its own table. If Account Success and Sales both need Person, they read from the same spine_persons table.
  • No memory is duplicated per domain. If CSM and Sales both need Health, they read the same memory_health record.
  • No projection is materialized. Projections are computed at query time.

7. From Domain-Specific to Platform-Level

Old Account Success model → New platform model

Old domain-specificNew platform-levelMapping
spine_accountsspine_organizations + spine_assets (Contract, Subscription)Account = Organization + Asset
spine_peoplespine_personsSame entity, now universal
spine_business_contextmemory_business_contextMemory layer, opinion
spine_strategic_objectivesspine_objectivesObjective root concept
spine_capabilitiesmemory_architectureMemory layer, assessed
spine_api_portfoliospine_integrations (Capability + Asset)Integration inherits from Capability + Asset
spine_platform_metricsmemory_usage + memory_signalsDerived metrics, not raw facts
spine_initiativesspine_projectsProject root concept
spine_technical_debtmemory_technical_debtMemory layer, opinionated
spine_stakeholder_outcomesmemory_stakeholderMemory layer, derived
spine_engagementsmemory_engagement + spine_conversationsConversation is real; engagement depth is derived
spine_success_plansProjection + spine_objectives + spine_projectsPlan = projection of objectives + projects + timeline
spine_insightsmemory_insightsMemory layer, ephemeral

8. Source-of-Truth Index

ConceptAuthoritative source
Three-layer model (this doc)docs/architecture/SPINE_DOMAIN.md
16 root conceptsdocs/platform-specs/21-business-ontology.md
Operational Spinedocs/platform-specs/02-operational-spine.md
Entity Frameworkdocs/platform-specs/12-entity-framework.md
Capability Fabricdocs/platform-specs/05-capability-fabric.md
Memory Systemdocs/platform-specs/07-memory-system.md
Twin Runtimedocs/platform-specs/06-twin-runtime.md
Connector Frameworkdocs/platform-specs/08-connector-framework.md
Governance Enginedocs/platform-specs/09-governance-engine.md
Signal Enginedocs/platform-specs/10-signal-engine.md
Workflow Enginedocs/platform-specs/11-workflow-engine.md
Agent pipelinedocs/architecture/SPINE_INTELLIGENCE_AGENT.md
Physical storagedocs/architecture/SPINE_MODEL.md
Projection enginedocs/architecture/PROJECTION_MODEL.md
35-document hierarchyNotion Document Hub

The Spine is the platform. Domains are views. The graph is the product. When in doubt — halt, ask Nirmal.