Knowledge Portal · engineering documentation

Skip to content

Release: Public Experience Platform v4.2

Tag: v4.2-public-experience-platform
Commit: 777ba99
Previous baseline: v4.1-platform-ux-design-systemv3.12-tracking-platformv3.11-marketing-platformv3.10-compliance-platformv3.9-growth-platformv3.8-production-platformv3.7-observability-platformv3.6-deployment-platformv3.5-mission-runtimev3.4-agent-platformv3.3-assistant-platformv3.2-autonomous-operationsv3.1-operational-intelligencev3.0-advanced-analyticsv2.9-analytics-platformv2.8-workflow-designerv2.7-workflow-platformv2.6-realtime-platformv2.5-search-collaborationv2.4-notification-platformv2.3-workspacev2.2-ai-applicationsv2.1-ai-runtimev2.0-ai-platformv1.9-connector-marketplacev1.8-integrations-platformv1.7.1-platform-hardeningv1.7-public-apiv1.6-entitlementsv1.5-customer-experiencev1.4-product-layerv1.3-billing-platform
Baseline date: 2026-06-27
Finance freeze: unchanged — finance-v1.0 / docs/FINANCE-V1-FROZEN.md
Billing platform freeze: unchanged — v1.3-billing-platform
Product layer freeze: unchanged — v1.4-product-layer
Customer experience freeze: unchanged — v1.5-customer-experience
Entitlements freeze: unchanged — v1.6-entitlements
Public API freeze: unchanged — v1.7-public-api / v1.7.1-platform-hardening
Integrations platform freeze: unchanged — v1.8-integrations-platform / v1.9-connector-marketplace
AI platform freeze: unchanged — v2.0-ai-platform / v2.1-ai-runtime / v2.2-ai-applications
Workspace foundation freeze: v2.3-workspace (Phase 5A preserved)
Notification platform freeze: v2.4-notification-platform (Phase 5B preserved)
Search & collaboration freeze: v2.5-search-collaboration (Phase 5C preserved)
Realtime platform freeze: v2.6-realtime-platform (Phase 5D preserved)
Workflow platform freeze: v2.7-workflow-platform (Phase 5E preserved)
Workflow designer freeze: v2.8-workflow-designer (Phase 5F preserved)
Analytics platform freeze: v2.9-analytics-platform (Phase 6A preserved)
Advanced analytics freeze: v3.0-advanced-analytics (Phase 6B preserved)
Operational intelligence freeze: v3.1-operational-intelligence (Phase 6C preserved)
Autonomous operations freeze: v3.2-autonomous-operations (Phase 6D preserved)
Assistant platform freeze: v3.3-assistant-platform (Phase 7A preserved)
Agent platform freeze: v3.4-agent-platform (Phase 7B preserved)
Mission runtime freeze: v3.5-mission-runtime (Phase 7C preserved)
Deployment platform freeze: v3.6-deployment-platform (Phase 7D preserved)
Observability platform freeze: v3.7-observability-platform (Phase 7E preserved)
Production platform freeze: v3.8-production-platform (Phase 8A preserved)
Growth platform freeze: v3.9-growth-platform (Phase 8C preserved)
Compliance platform freeze: v3.10-compliance-platform (Phase 8D preserved)
Marketing platform freeze: v3.11-marketing-platform (Phase 8E preserved)
Tracking platform freeze: v3.12-tracking-platform (Phase 8F preserved)
Platform UX freeze: v4.1-platform-ux-design-system (Phase 9B preserved)


Release summary

Public Experience Platform v4.2 is the freeze-ready baseline for Phase 9C — Public Experience Platform — following the governance pattern established by v4.1-platform-ux-design-system.

Phase 9C introduces an additive Public Experience module with config-driven website, page, section, layout, hero, booking, SEO, content, campaign, QR, journey, experience, integration, theme bridge, and localization registries; twelve view resolvers; composition-only engines; contract-only platform signal integration; shared preview semantics (mode: compose); a read-only Public Experience Filament dashboard; a contract-driven Filament builder shell; optional draft/publish persistence; public Blade hosts delegating to Platform UX presentation; hero AI host surface placeholder; sitemap composition endpoint; and architecture guards — without modifying Finance, Billing, Product, Customer Experience, Entitlements, Public API, Integrations, AI Platform, Workspace, Notification Platform, Search & Collaboration, Realtime Platform, Workflow Platform, Workflow Designer, Analytics Platform, Advanced Analytics, Operational Intelligence, Autonomous Operations, Assistant Platform, Agent Platform, Mission Platform, Deployment Platform, Production Platform, Growth Platform, Compliance Platform, Marketing Platform, Tracking Platform, or Platform UX.

Phase 9C delivery:

  1. 9C-1 Foundation — dual contracts (40 + 14 methods), fifteen registries, twelve view resolvers, ten engines + orchestrator, signal service, dashboard, permissions, config/public_experience.php, base tests
  2. 9C-2 Type Hardening — load-time registry validation, integration allowlist guards, journey acyclicity, resolver ownership tests
  3. 9C-3 Hardening PassPublicExperiencePreviewSemantics full adoption, publish-state semantics, recommendation determinism, optional draft persistence, DTO serialization, architecture expansion
  4. 9C-4 UI Integration — Filament builder shell, draft/preview/publish actions, public Blade hosts, Platform UX presentation delegation, hero AI placeholder surface, sitemap endpoint, dashboard enhancements
  5. 9C-5 Freeze Preparation — release documentation and MODULE_BOUNDARIES.md promotion (this document)

Legacy ClinicTemplateSystem content models, static Blade templates, and HomeController template injection remain unchanged and parallel unless explicitly enabled via feature flags. The platform layer is additive.

Tag name: v4.2-public-experience-platform

Git freeze (9C-6): Tag v4.2-public-experience-platform created — freeze executed.

Next phase: Sales AI Platform — not started.


Architecture summary

Phase 9C delivers additive Public Experience under app/Modules/PublicExperience/. Cross-module access uses frozen platform contracts only via PublicExperienceSignalService:

  • EntitlementContractpublic_experience_platform, white-label, hero AI, builder capability reads
  • PlatformUXPlatformContract — theme resolution, component render plans, structured response shell for hero
  • DesignSystemContract — lightweight token/theme reads for theme bridge
  • ClinicQueryServiceContract — clinic context reads
  • ClinicTemplateViewService — branding, hero, doctors, testimonials, services content — read-only
  • MarketingPlatformContract — campaign context, channel signals — read-only
  • TrackingPlatformContract — event taxonomy, attribution context — read-only
  • GrowthPlatformContract — demand signals — read-only
  • CompliancePlatformContract — content publish gates — read-only
  • LeadQueryServiceContract — pipeline context — no writes
  • AnalyticsAdvancedReadQueryContract — optional dashboard analytics summaries
  • ProductionPlatformContract — platform availability check only
  • ObservabilityPlatformContract — diagnostics read only
  • FinancialQueryContract — graceful degradation for booking shell metadata

Public APIs:

  • PublicExperiencePlatformContractPublicExperiencePlatformService (full experience composition)
  • PublicSurfaceContractPublicSurfaceService (lightweight surface resolution for future Sales AI, Support AI, QR, mobile)

Public Experience metadata is registry-owned. All platform composition output is orchestration-only (mode: compose, persisted: false, dispatch: false, enforce: false, mutated: false, side_effects: false for composition; publish actions gated by public_experience.persistence.enabled). Platform UX renders; Public Experience composes.

Filament Public Experience Dashboard (PublicExperienceDashboardPage) is read-only, under Platform navigation, and depends on PublicExperiencePlatformContract only.

Filament Public Experience Builder (PublicExperienceBuilderPage) delegates all composition to contracts and all writes to Actions — no business logic in Filament page.

Dual runtime: Legacy ClinicTemplateSystem content, static Blade templates, and HomeController template injection operate in parallel. Public composition is opt-in via public_experience.ui.use_composition and public_experience.ui.use_composition_sitemap.


Platform responsibilities

In scope (Public Experience owns)

ResponsibilityOwner
Website orchestration (multi-page site trees)WebsiteRegistry, WebsiteCompositionEngine
Landing page compositionPageRegistry, LandingCompositionEngine
Website Builder section taxonomy and composition plansSectionRegistry, LayoutRegistry, WebsiteCompositionEngine
Hero AI host surface and smart hero compositionHeroRegistry, HeroExperienceEngine
Public booking experience shellsBookingRegistry, BookingExperienceEngine
Public navigation trees and menusPageRegistry, NavigationViewResolver, WebsiteCompositionEngine
SEO metadata and structured data compositionSeoRegistry, SeoCompositionEngine
Content page orchestrationContentRegistry, ContentCompositionEngine
QR entry resolution and landing compositionQrRegistry, QrExperienceEngine
Campaign page binding and attribution contextCampaignRegistry, LandingCompositionEngine
White-label public surface resolutionThemeBridgeRegistry, signal layer + Platform UX delegation
Visitor personalization (deterministic)ExperienceRegistry, PublicExperienceRecommendationEngine
Public analytics presentation hooks (event plan DTOs)IntegrationRegistry, JourneyCompositionEngine
Platform UX composition plansAll composition engines → PlatformUXPlatformContract
Journey stage taxonomy and context assemblyJourneyRegistry, JourneyCompositionEngine
Experience template catalogExperienceRegistry
Cross-platform integration bindingsIntegrationRegistry
Locale presentation rules for public surfacesLocalizationRegistry, signal layer
Platform UX theme bridge metadataThemeBridgeRegistry
Entitlement-aware evaluation contextPublicExperienceSignalService
Preview semanticsPublicExperiencePreviewEngine
Deterministic experience recommendationsPublicExperienceRecommendationEngine
Engine coordinationPublicExperienceOrchestrator
Read-only Public Experience Filament dashboardPublicExperienceDashboardPage
Contract-driven Filament builder shellPublicExperienceBuilderPage
Optional draft/publish persistenceWrite Actions + PublicExperiencePageWriteRepository
Public Blade presentation hostsPublicExperienceViewPresenterPlatformUXPresentationContract
Architecture boundary enforcementPublic Experience test suites

Out of scope (unchanged)

ResponsibilityReason
Clinic branding content modelsClinicTemplateSystem — consumed read-only
Design tokens and component renderingPlatform UX v4.1
Static Blade public templates (default path)Parallel until feature-flag migration
LLM execution / Hero AI conversation logicSales AI Platform (future)
SEO content generation (copywriting)ClinicTemplateSystem / builder CMS
Appointment scheduling business logicCRM domain
Lead persistence logicLeads domain — preview action payloads only
Tracking event persistence runtimeTracking Platform legacy runtime
Marketing campaign executionMarketing Platform legacy runtime
Full WYSIWYG / drag-and-drop builderDeferred post-freeze
Modifications to any v4.1 or prior frozen platformFreeze policy

Public contracts

Primary contract

Interface: App\Modules\PublicExperience\Application\Contracts\PublicExperiencePlatformContract
Implementation: App\Modules\PublicExperience\Application\Services\PublicExperiencePlatformService

MethodResponsibility
getDashboardRead-only management dashboard assembly
composeWebsiteMulti-page website composition
previewWebsiteWebsite preview wrapper
composePageSingle page composition
previewPagePage preview wrapper
resolvePageRoutePage route resolution
composeLandingLanding page composition
previewLandingLanding preview wrapper
composeSectionsSection composition array
composeHeroHero section composition
previewHeroHero preview wrapper
composeHeroAiSurfaceHero AI host surface metadata
composeNavigationPublic navigation tree
previewNavigationNavigation preview wrapper
composeBookingExperienceBooking UX shell composition
previewBookingExperienceBooking preview wrapper
composeSeoMetadataSEO metadata composition
previewSeoMetadataSEO preview wrapper
composeStructuredDataStructured data (JSON-LD) composition
composeSitemapPreviewSitemap composition preview
composeContentPageContent page composition
previewContentPageContent page preview wrapper
composeCampaignPageCampaign page composition
previewCampaignPageCampaign page preview wrapper
resolveQrEntryQR entry resolution
previewQrEntryQR preview wrapper
composeJourneyContextJourney context assembly
previewJourneyContextJourney preview wrapper
applyVisitorPersonalizationDeterministic visitor personalization
composeAnalyticsHooksAnalytics hook plan DTOs
composePublicExperienceFull public experience composition
previewPublicExperienceFull experience preview wrapper
listWebsiteTemplatesRead-only website template catalog
listPageTypesRead-only page type catalog
listSectionTemplatesRead-only section template catalog
listHeroTemplatesRead-only hero template catalog
listBookingFlowTemplatesRead-only booking flow catalog
listJourneyStagesRead-only journey stage catalog
validatePublicExperienceRegistry and composition validation
recommendExperienceLayoutDeterministic layout recommendation

Public DTOs: App\Modules\PublicExperience\Application\DTOs\*.

Forbidden public imports: registries, engines, orchestrator, resolvers, signal service, evaluation context, preview semantics, domain definition entities, write repositories from consumer modules.

Secondary contract

Interface: App\Modules\PublicExperience\Application\Contracts\PublicSurfaceContract
Implementation: App\Modules\PublicExperience\Application\Services\PublicSurfaceService

MethodResponsibility
resolveSurfaceContextLightweight surface context resolution
resolveClinicFromRequestClinic resolution from request context
getThemeBridgeTheme bridge metadata
listPageTypesRead-only page type catalog
getPageDefinitionSingle page type definition
listSectionTemplatesRead-only section catalog
listHeroTemplatesRead-only hero catalog
previewSurfaceSurface preview wrapper
validateSurfaceSurface validation
getNavigationOutlineNavigation outline
getSeoDefaultsSEO defaults
getPublicLocalePresentationLocale/RTL presentation metadata
getBuilderShellConfigBuilder shell configuration
listQrRouteTypesQR route type catalog

Future consumers: Sales AI, Support AI, QR middleware, mobile — contract-only, read-only subset.


Registries

All registries live under app/Modules/PublicExperience/Application/Services/. Taxonomy is config-driven in config/public_experience.php under the platform section.

RegistryConfig keyValidates
WebsiteRegistryplatform.website_templatesUnique keys; valid page refs
PageRegistryplatform.page_typesValid route patterns; section refs
SectionRegistryplatform.section_templatesValid layout keys; component refs
LayoutRegistryplatform.layout_templatesValid region keys
HeroRegistryplatform.hero_templatesValid layout keys; AI surface metadata
BookingRegistryplatform.booking_flowsValid step keys; integration refs
SeoRegistryplatform.seo_schemasValid schema types
ContentRegistryplatform.content_typesValid page type refs
CampaignRegistryplatform.campaign_bindingsValid marketing refs
QrRegistryplatform.qr_routesValid route types
JourneyRegistryplatform.journey_stagesAcyclic stage graph
ExperienceRegistryplatform.experience_templatesValid section/hero refs
IntegrationRegistryplatform.integrationsContract allowlist refs
ThemeBridgeRegistryplatform.theme_bridgesValid Platform UX surface refs
LocalizationRegistryplatform.localesSupported locale keys

All registries expose lookup-only public API: exists, get, all.


View resolver summary

ResolverEnriches
WebsiteViewResolverWebsiteCompositionView, WebsitePreviewView
PageViewResolverPageCompositionView, PagePreviewView, PageRouteResolutionView
SectionViewResolverSectionCompositionView, SectionTemplateView
HeroViewResolverHeroCompositionView, HeroPreviewView, HeroAiSurfaceView
BookingViewResolverBookingExperienceView, BookingPreviewView
SeoViewResolverSeoMetadataView, SeoPreviewView, StructuredDataView
ContentViewResolverContentPageCompositionView, ContentPreviewView
CampaignViewResolverCampaignPageCompositionView, CampaignPreviewView
QrViewResolverQrEntryResolutionView, QrPreviewView
JourneyViewResolverJourneyContextView, JourneyPreviewView
NavigationViewResolverPublicNavigationView, NavigationPreviewView
ExperienceViewResolverExperienceRecommendationView, ExperienceTemplateView

View resolvers are registry consumers only — no config reads, no DB, no business logic.


Engine summary

EngineTypeResponsibility
WebsiteCompositionEnginePrimaryWebsite and navigation composition
LandingCompositionEnginePrimaryLanding and campaign page composition
ContentCompositionEnginePrimaryContent page composition
HeroExperienceEnginePrimaryHero and hero AI surface composition
BookingExperienceEnginePrimaryBooking UX shell composition
SeoCompositionEnginePrimarySEO metadata and structured data
QrExperienceEnginePrimaryQR entry resolution
JourneyCompositionEnginePrimaryJourney context and analytics hooks
PublicExperiencePreviewEnginePreviewPreview wrapper semantics
PublicExperienceRecommendationEngineRecommendationDeterministic layout recommendations
PublicExperienceOrchestratorOrchestratorEngine coordination, dashboard assembly, listings

All engines assemble output exclusively through PublicExperiencePreviewSemantics::renderView(), composeView(), previewView(), or recommendationView() — no inline mode, rendered_at, persisted, or confidence_band literals.


Signal layer

Class: PublicExperienceSignalService
Output: PublicExperienceEvaluationContext

Signal service reads operational config keys and frozen platform contracts only. It must not call write methods on any contract. All signal fields degrade gracefully when contracts are unavailable — never throws from signal service.

Allowed contract dependencies: EntitlementContract, PlatformUXPlatformContract, DesignSystemContract, ClinicQueryServiceContract, ClinicTemplateViewService, MarketingPlatformContract, TrackingPlatformContract, GrowthPlatformContract, CompliancePlatformContract, LeadQueryServiceContract, AnalyticsAdvancedReadQueryContract, ProductionPlatformContract, ObservabilityPlatformContract, FinancialQueryContract.

Forbidden: CRM/Leads Infrastructure; ClinicTemplateSystem Infrastructure models; Platform UX internal registries/engines; Marketing/Tracking legacy runtime Actions; AI Runtime SDKs; frozen platform internal services.


Builder

Page: PublicExperienceBuilderPage
Slug: platform/public-experience/builder
Navigation group: AdminNavGroup::Platform
Permissions: platform.public_experience.view (access), platform.public_experience.manage (write actions)

The builder is a contract-driven shell — not a WYSIWYG or drag-and-drop editor:

  • Reads builder configuration via PublicSurfaceContract::getBuilderShellConfig()
  • Composes previews via PublicExperiencePlatformContract preview methods
  • Delegates presentation to PublicExperienceViewPresenterPlatformUXPresentationContract
  • All writes delegate to Actions (SavePublicExperiencePageDraftAction, MarkPublicExperiencePagePreviewAction, PublishPublicExperiencePageAction, UnpublishPublicExperiencePageAction)
  • Persistence gated by public_experience.persistence.enabled (default: false)

Hero AI placeholder

Public Experience owns the hero shell, host surface metadata, and composition plan only. Sales AI Platform (future) owns conversation logic.

ConcernOwner
Hero shell layoutHeroExperienceEngine + Platform UX delegation
Prompt starters registryHeroRegistry metadata
Sales AI entry keyHeroAiSurfaceView.salesAiEntryKey — bound for future Sales AI consumer
Structured response hostPlatform UX composeStructuredResponse() — payload from future Sales AI caller
Public AI interaction trackingAnalyticsHookPlanView with event_type: ai_interaction

HTTP surface: PublicExperienceHeroAiController — placeholder Blade host at /public-experience/hero-ai/{surfaceKey}.

Entitlement gate: {capability}.hero_ai via EntitlementContract.

No LLM execution. No Sales AI runtime integration in Phase 9C.


Publish workflow

Optional persistence layer (9C-3/9C-4) — disabled by default:

StateSemantics
draftindexed: false, robots: noindex,nofollow
previewindexed: false, preview mode preserved
publishedindexed: true, sitemap inclusion when entitled
archivedindexed: false, excluded from sitemap

Actions:

ActionResponsibility
SavePublicExperiencePageDraftActionPersist draft composition payload
MarkPublicExperiencePagePreviewActionTransition to preview state
PublishPublicExperiencePageActionTransition to published state
UnpublishPublicExperiencePageActionTransition to archived/unpublished

Repository: PublicExperiencePageWriteRepository / PublicExperiencePageReadRepository — gated by public_experience.persistence.enabled.

Publish-state semantics enforced via PublicExperiencePreviewSemantics::indexedForPublishState() and robotsForPublishState().


Dashboard

The Public Experience Dashboard (PublicExperienceDashboardPage) is a read-only Filament page under Platform navigation.

PropertyValue
Slugplatform/public-experience/dashboard
Navigation groupAdminNavGroup::Platform
Navigation sort23 (after Platform UX at 22)
Permissionplatform.public_experience.view
Contract dependenciesPublicExperiencePlatformContract only
Write operationsNone — read-only mount + refresh

Sections: platform overview, website templates, page types, section catalog, hero templates, booking flows, journey stages, demo landing preview, demo hero preview, QR route types, validation summary, publish workflow status, builder entitlement signals.

PublicExperienceDashboardView::toArray() uses PublicExperiencePreviewSemantics::renderedAt() — never now().


Testing summary

SuiteTestsAssertionsStatus
PublicExperiencePlatformTest2460Pass
PublicExperienceTypeHardeningTest3396Pass
PublicExperienceHardeningTest20351Pass
PublicExperienceUiIntegrationTest929Pass
PublicExperienceBoundaryTest634Pass
PublicExperienceArchitectureTest39470Pass
Total1311040Pass

Coverage includes dual contract binding (40 + 14 methods), fifteen registries, twelve view resolvers, ten engines + orchestrator, preview semantics helpers, publish-state semantics, recommendation determinism, DTO serialization, immutable readonly DTOs, entitlement degradation, registry load-time validation, optional persistence gating, Filament builder/dashboard contract isolation, public HTTP route integration, Platform UX presentation delegation, hero AI placeholder surface, sitemap composition, and module boundary guards.


Frozen platform verification

PlatformTagStatus
Platform UX & Design Systemv4.1-platform-ux-design-systemFrozen — consumed via PlatformUXPlatformContract, DesignSystemContract, PlatformUXPresentationContract only
Tracking Platformv3.12-tracking-platformFrozen — consumed via TrackingPlatformContract only
Marketing Platformv3.11-marketing-platformFrozen — consumed via MarketingPlatformContract only
Compliance Platformv3.10-compliance-platformFrozen — consumed via CompliancePlatformContract only
Growth Platformv3.9-growth-platformFrozen — consumed via GrowthPlatformContract only

No files under frozen platform modules were modified in Phase 9C.

Verified: git diff v4.1-platform-ux-design-system -- app/Modules/Growth app/Modules/Compliance app/Modules/Marketing app/Modules/Tracking app/Modules/PlatformUX0 bytes changed.


Known limitations

Home page composition only: public_experience.ui.use_composition wires home page only; other public pages remain ClinicTemplateSystem parallel path.

Hero AI placeholder: Host surface metadata and Blade shell only — no Sales AI conversation logic, no LLM execution.

Builder shell: Contract-driven Filament page — not WYSIWYG, not drag-and-drop, not visual editor.

Platform UX component allowlist gaps: Config references ux.component.hero and ux.component.section_grid which are not registered in Platform UX v4.1 — presenter skips gracefully.

Persistence disabled by default: Draft/publish workflow requires PUBLIC_EXPERIENCE_PERSISTENCE_ENABLED=true.

Sitemap composition opt-in: Requires PUBLIC_EXPERIENCE_UI_USE_COMPOSITION_SITEMAP=true.

Static Blade templates: Default public site path unchanged — composition migration is feature-flag gated.

Sales AI / Support AI / Clinic AI: Not started — Public Experience exposes contracts and hero host metadata only.

Git freeze (9C-6): Tag v4.2-public-experience-platform created — freeze executed.

ModuleBoundaryTest legacy violations: Pre-existing cross-module import debt outside Phase 9C scope.


Verification commands

bash
# Confirm tag
git rev-parse v4.2-public-experience-platform^{commit}

# Public Experience regression
php artisan test app/Modules/PublicExperience/Tests/PublicExperiencePlatformTest.php
php artisan test app/Modules/PublicExperience/Tests/PublicExperienceTypeHardeningTest.php
php artisan test app/Modules/PublicExperience/Tests/PublicExperienceHardeningTest.php
php artisan test app/Modules/PublicExperience/Tests/PublicExperienceUiIntegrationTest.php
php artisan test app/Modules/PublicExperience/Tests/PublicExperienceBoundaryTest.php
php artisan test tests/Architecture/PublicExperienceArchitectureTest.php

# Combined Phase 9C regression
php artisan test app/Modules/PublicExperience/Tests/PublicExperiencePlatformTest.php app/Modules/PublicExperience/Tests/PublicExperienceTypeHardeningTest.php app/Modules/PublicExperience/Tests/PublicExperienceHardeningTest.php app/Modules/PublicExperience/Tests/PublicExperienceUiIntegrationTest.php app/Modules/PublicExperience/Tests/PublicExperienceBoundaryTest.php tests/Architecture/PublicExperienceArchitectureTest.php

# Governance documentation integrity
php artisan test tests/Architecture/GovernanceDocumentationTest.php

# Frozen layer spot check (unchanged since v4.1)
git diff v4.1-platform-ux-design-system -- app/Modules/Growth app/Modules/Compliance app/Modules/Marketing app/Modules/Tracking app/Modules/PlatformUX

DocumentRole
core/constitution/PLATFORM_BOUNDARIES.mdPublic Experience boundary (updated at freeze preparation)
docs/architecture/phase-9c-public-experience-platform-specification.mdPhase 9C design authority
docs/planning/RELEASE_PLAN.mdRelease and freeze workflow
core/methodology/GIT_FREEZE_PROCEDURE.mdGit freeze execution procedure
docs/releases/v4.1-platform-ux-design-system.mdPrior baseline (Platform UX Phase 9B)
docs/FINANCE-V1-FROZEN.mdFinance non-touch boundary

Canonical Git release record for Public Experience Platform v4.2. Phase 9C complete. Git freeze executed at v4.2-public-experience-platform. Next phase: Sales AI Platform — not started.

ZAIXOS Knowledge Portal — public engineering docs at /docs · Staff operations at /admin