TorbatYar/docs/experience-phase-11-2.md
Mortezakoohjani 203671a7bf feat(experience): ship Experience Platform phases 11.0-11.10
Add the experience service with sites through analytics/AI hooks, migrations through 0011, and phase docs/manifests marking the track complete.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-27 11:43:10 +03:30

4.0 KiB

Phase: Experience Component Library & Versioning (11.2)

Field Value
Identifier experience-11.2
Status Complete
Owner Platform
Module(s) Components, Component Versions, Page Component Placements
Service(s) experience (Torbat Pages)
Depends On experience-11.1
ADR(s) ADR-016
Manifest phase-manifest.yaml

Enterprise Phase Discovery Record

Input Finding
Roadmap / manifest Next unfinished Experience phase = experience-11.2 Component Library & Versioning
Prior handover phase-11-1.md — versioned components only; no theme/layout
Boundaries Experience owns components; no CRM/Hospitality/Marketplace/Storage ownership
Existing codebase Sites/pages complete; commands//policies//queries//specifications/ were empty shells
Missing vs DoD Immutable versions, composition shells, list filter/sort/search, policies, specs, commands/queries

Derived capabilities (this phase only): component catalog lifecycle, immutable published versions, page↔version placement pins, permissions/events/audit/tenant isolation. Not themes, layouts, templates, SEO, forms.

Objective

Deliver a production-ready versioned component library on experience_db with immutable published revisions and composition shells that pin versions onto pages — without theme/layout engines.

Scope

In Scope

  • ExperienceComponent catalog (kinds, status, category, tags)
  • ExperienceComponentVersion with draft → published (immutable) → retired
  • PageComponentPlacement composition shells (slot_key, sort_order, props_override)
  • Policies, specifications, commands, queries
  • Pagination, filtering, sorting, searching on list APIs
  • Permissions experience.components.*; events experience.component* / experience.page_component.*
  • Alembic 0003_phase_112_components; version 0.11.2.0
  • Seed catalog: component_kinds via /capabilities

Out of Scope

  • Theme / layout engines — Phase 11.3
  • Template catalog — Phase 11.4
  • Visual page builder UI / section trees
  • Forms, SEO, PWA, analytics, AI content

Models

Entity Soft delete Audit Tenant Optimistic lock
ExperienceComponent Yes Yes Yes Yes
ExperienceComponentVersion Yes Yes Yes Yes
PageComponentPlacement Yes Yes Yes Yes

Permissions

experience.components.view|create|update|delete|manage

Events

experience.component.created|updated|activated|deprecated|archived

experience.component_version.created|updated|published|retired

experience.page_component.placed|updated|removed

APIs

Method Path
* /api/v1/components (+ activate/deprecate/archive/delete)
* /api/v1/component-versions (+ publish/retire)
* /api/v1/page-component-placements (+ delete)

List endpoints support page/page_size, filters, q, sort_by/sort_dir.

Artifact coverage (DoD)

Artifact Status
Discovery This record
Policies / Specs / Commands / Queries Implemented
Soft delete / Optimistic lock / Audit / Tenant Yes
Pagination / Filter / Sort / Search Yes
Background jobs N/A — no async work in phase boundary
Themes/layouts Explicitly out of scope

Tests

  • Unit policies
  • API component/version/placement flow + immutability
  • Tenant isolation + optimistic lock
  • Architecture / permission / migration / docs

Completion Criteria

  • Component library with immutable versions; tenant isolation tests green
  • No theme/layout engine
  • Docs / manifests / handover updated