Release: Public Experience Platform v4.2
Tag: v4.2-public-experience-platform
Commit: 777ba99
Previous baseline: v4.1-platform-ux-design-system → v3.12-tracking-platform → v3.11-marketing-platform → v3.10-compliance-platform → v3.9-growth-platform → v3.8-production-platform → v3.7-observability-platform → v3.6-deployment-platform → v3.5-mission-runtime → v3.4-agent-platform → v3.3-assistant-platform → v3.2-autonomous-operations → v3.1-operational-intelligence → v3.0-advanced-analytics → v2.9-analytics-platform → v2.8-workflow-designer → v2.7-workflow-platform → v2.6-realtime-platform → v2.5-search-collaboration → v2.4-notification-platform → v2.3-workspace → v2.2-ai-applications → v2.1-ai-runtime → v2.0-ai-platform → v1.9-connector-marketplace → v1.8-integrations-platform → v1.7.1-platform-hardening → v1.7-public-api → v1.6-entitlements → v1.5-customer-experience → v1.4-product-layer → v1.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:
- 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 - 9C-2 Type Hardening — load-time registry validation, integration allowlist guards, journey acyclicity, resolver ownership tests
- 9C-3 Hardening Pass —
PublicExperiencePreviewSemanticsfull adoption, publish-state semantics, recommendation determinism, optional draft persistence, DTO serialization, architecture expansion - 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
- 9C-5 Freeze Preparation — release documentation and
MODULE_BOUNDARIES.mdpromotion (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:
EntitlementContract—public_experience_platform, white-label, hero AI, builder capability readsPlatformUXPlatformContract— theme resolution, component render plans, structured response shell for heroDesignSystemContract— lightweight token/theme reads for theme bridgeClinicQueryServiceContract— clinic context readsClinicTemplateViewService— branding, hero, doctors, testimonials, services content — read-onlyMarketingPlatformContract— campaign context, channel signals — read-onlyTrackingPlatformContract— event taxonomy, attribution context — read-onlyGrowthPlatformContract— demand signals — read-onlyCompliancePlatformContract— content publish gates — read-onlyLeadQueryServiceContract— pipeline context — no writesAnalyticsAdvancedReadQueryContract— optional dashboard analytics summariesProductionPlatformContract— platform availability check onlyObservabilityPlatformContract— diagnostics read onlyFinancialQueryContract— graceful degradation for booking shell metadata
Public APIs:
PublicExperiencePlatformContract→PublicExperiencePlatformService(full experience composition)PublicSurfaceContract→PublicSurfaceService(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)
| Responsibility | Owner |
|---|---|
| Website orchestration (multi-page site trees) | WebsiteRegistry, WebsiteCompositionEngine |
| Landing page composition | PageRegistry, LandingCompositionEngine |
| Website Builder section taxonomy and composition plans | SectionRegistry, LayoutRegistry, WebsiteCompositionEngine |
| Hero AI host surface and smart hero composition | HeroRegistry, HeroExperienceEngine |
| Public booking experience shells | BookingRegistry, BookingExperienceEngine |
| Public navigation trees and menus | PageRegistry, NavigationViewResolver, WebsiteCompositionEngine |
| SEO metadata and structured data composition | SeoRegistry, SeoCompositionEngine |
| Content page orchestration | ContentRegistry, ContentCompositionEngine |
| QR entry resolution and landing composition | QrRegistry, QrExperienceEngine |
| Campaign page binding and attribution context | CampaignRegistry, LandingCompositionEngine |
| White-label public surface resolution | ThemeBridgeRegistry, signal layer + Platform UX delegation |
| Visitor personalization (deterministic) | ExperienceRegistry, PublicExperienceRecommendationEngine |
| Public analytics presentation hooks (event plan DTOs) | IntegrationRegistry, JourneyCompositionEngine |
| Platform UX composition plans | All composition engines → PlatformUXPlatformContract |
| Journey stage taxonomy and context assembly | JourneyRegistry, JourneyCompositionEngine |
| Experience template catalog | ExperienceRegistry |
| Cross-platform integration bindings | IntegrationRegistry |
| Locale presentation rules for public surfaces | LocalizationRegistry, signal layer |
| Platform UX theme bridge metadata | ThemeBridgeRegistry |
| Entitlement-aware evaluation context | PublicExperienceSignalService |
| Preview semantics | PublicExperiencePreviewEngine |
| Deterministic experience recommendations | PublicExperienceRecommendationEngine |
| Engine coordination | PublicExperienceOrchestrator |
| Read-only Public Experience Filament dashboard | PublicExperienceDashboardPage |
| Contract-driven Filament builder shell | PublicExperienceBuilderPage |
| Optional draft/publish persistence | Write Actions + PublicExperiencePageWriteRepository |
| Public Blade presentation hosts | PublicExperienceViewPresenter → PlatformUXPresentationContract |
| Architecture boundary enforcement | Public Experience test suites |
Out of scope (unchanged)
| Responsibility | Reason |
|---|---|
| Clinic branding content models | ClinicTemplateSystem — consumed read-only |
| Design tokens and component rendering | Platform UX v4.1 |
| Static Blade public templates (default path) | Parallel until feature-flag migration |
| LLM execution / Hero AI conversation logic | Sales AI Platform (future) |
| SEO content generation (copywriting) | ClinicTemplateSystem / builder CMS |
| Appointment scheduling business logic | CRM domain |
| Lead persistence logic | Leads domain — preview action payloads only |
| Tracking event persistence runtime | Tracking Platform legacy runtime |
| Marketing campaign execution | Marketing Platform legacy runtime |
| Full WYSIWYG / drag-and-drop builder | Deferred post-freeze |
| Modifications to any v4.1 or prior frozen platform | Freeze policy |
Public contracts
Primary contract
Interface: App\Modules\PublicExperience\Application\Contracts\PublicExperiencePlatformContract
Implementation: App\Modules\PublicExperience\Application\Services\PublicExperiencePlatformService
| Method | Responsibility |
|---|---|
getDashboard | Read-only management dashboard assembly |
composeWebsite | Multi-page website composition |
previewWebsite | Website preview wrapper |
composePage | Single page composition |
previewPage | Page preview wrapper |
resolvePageRoute | Page route resolution |
composeLanding | Landing page composition |
previewLanding | Landing preview wrapper |
composeSections | Section composition array |
composeHero | Hero section composition |
previewHero | Hero preview wrapper |
composeHeroAiSurface | Hero AI host surface metadata |
composeNavigation | Public navigation tree |
previewNavigation | Navigation preview wrapper |
composeBookingExperience | Booking UX shell composition |
previewBookingExperience | Booking preview wrapper |
composeSeoMetadata | SEO metadata composition |
previewSeoMetadata | SEO preview wrapper |
composeStructuredData | Structured data (JSON-LD) composition |
composeSitemapPreview | Sitemap composition preview |
composeContentPage | Content page composition |
previewContentPage | Content page preview wrapper |
composeCampaignPage | Campaign page composition |
previewCampaignPage | Campaign page preview wrapper |
resolveQrEntry | QR entry resolution |
previewQrEntry | QR preview wrapper |
composeJourneyContext | Journey context assembly |
previewJourneyContext | Journey preview wrapper |
applyVisitorPersonalization | Deterministic visitor personalization |
composeAnalyticsHooks | Analytics hook plan DTOs |
composePublicExperience | Full public experience composition |
previewPublicExperience | Full experience preview wrapper |
listWebsiteTemplates | Read-only website template catalog |
listPageTypes | Read-only page type catalog |
listSectionTemplates | Read-only section template catalog |
listHeroTemplates | Read-only hero template catalog |
listBookingFlowTemplates | Read-only booking flow catalog |
listJourneyStages | Read-only journey stage catalog |
validatePublicExperience | Registry and composition validation |
recommendExperienceLayout | Deterministic 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
| Method | Responsibility |
|---|---|
resolveSurfaceContext | Lightweight surface context resolution |
resolveClinicFromRequest | Clinic resolution from request context |
getThemeBridge | Theme bridge metadata |
listPageTypes | Read-only page type catalog |
getPageDefinition | Single page type definition |
listSectionTemplates | Read-only section catalog |
listHeroTemplates | Read-only hero catalog |
previewSurface | Surface preview wrapper |
validateSurface | Surface validation |
getNavigationOutline | Navigation outline |
getSeoDefaults | SEO defaults |
getPublicLocalePresentation | Locale/RTL presentation metadata |
getBuilderShellConfig | Builder shell configuration |
listQrRouteTypes | QR 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.
| Registry | Config key | Validates |
|---|---|---|
WebsiteRegistry | platform.website_templates | Unique keys; valid page refs |
PageRegistry | platform.page_types | Valid route patterns; section refs |
SectionRegistry | platform.section_templates | Valid layout keys; component refs |
LayoutRegistry | platform.layout_templates | Valid region keys |
HeroRegistry | platform.hero_templates | Valid layout keys; AI surface metadata |
BookingRegistry | platform.booking_flows | Valid step keys; integration refs |
SeoRegistry | platform.seo_schemas | Valid schema types |
ContentRegistry | platform.content_types | Valid page type refs |
CampaignRegistry | platform.campaign_bindings | Valid marketing refs |
QrRegistry | platform.qr_routes | Valid route types |
JourneyRegistry | platform.journey_stages | Acyclic stage graph |
ExperienceRegistry | platform.experience_templates | Valid section/hero refs |
IntegrationRegistry | platform.integrations | Contract allowlist refs |
ThemeBridgeRegistry | platform.theme_bridges | Valid Platform UX surface refs |
LocalizationRegistry | platform.locales | Supported locale keys |
All registries expose lookup-only public API: exists, get, all.
View resolver summary
| Resolver | Enriches |
|---|---|
WebsiteViewResolver | WebsiteCompositionView, WebsitePreviewView |
PageViewResolver | PageCompositionView, PagePreviewView, PageRouteResolutionView |
SectionViewResolver | SectionCompositionView, SectionTemplateView |
HeroViewResolver | HeroCompositionView, HeroPreviewView, HeroAiSurfaceView |
BookingViewResolver | BookingExperienceView, BookingPreviewView |
SeoViewResolver | SeoMetadataView, SeoPreviewView, StructuredDataView |
ContentViewResolver | ContentPageCompositionView, ContentPreviewView |
CampaignViewResolver | CampaignPageCompositionView, CampaignPreviewView |
QrViewResolver | QrEntryResolutionView, QrPreviewView |
JourneyViewResolver | JourneyContextView, JourneyPreviewView |
NavigationViewResolver | PublicNavigationView, NavigationPreviewView |
ExperienceViewResolver | ExperienceRecommendationView, ExperienceTemplateView |
View resolvers are registry consumers only — no config reads, no DB, no business logic.
Engine summary
| Engine | Type | Responsibility |
|---|---|---|
WebsiteCompositionEngine | Primary | Website and navigation composition |
LandingCompositionEngine | Primary | Landing and campaign page composition |
ContentCompositionEngine | Primary | Content page composition |
HeroExperienceEngine | Primary | Hero and hero AI surface composition |
BookingExperienceEngine | Primary | Booking UX shell composition |
SeoCompositionEngine | Primary | SEO metadata and structured data |
QrExperienceEngine | Primary | QR entry resolution |
JourneyCompositionEngine | Primary | Journey context and analytics hooks |
PublicExperiencePreviewEngine | Preview | Preview wrapper semantics |
PublicExperienceRecommendationEngine | Recommendation | Deterministic layout recommendations |
PublicExperienceOrchestrator | Orchestrator | Engine 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
PublicExperiencePlatformContractpreview methods - Delegates presentation to
PublicExperienceViewPresenter→PlatformUXPresentationContract - 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.
| Concern | Owner |
|---|---|
| Hero shell layout | HeroExperienceEngine + Platform UX delegation |
| Prompt starters registry | HeroRegistry metadata |
| Sales AI entry key | HeroAiSurfaceView.salesAiEntryKey — bound for future Sales AI consumer |
| Structured response host | Platform UX composeStructuredResponse() — payload from future Sales AI caller |
| Public AI interaction tracking | AnalyticsHookPlanView 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:
| State | Semantics |
|---|---|
draft | indexed: false, robots: noindex,nofollow |
preview | indexed: false, preview mode preserved |
published | indexed: true, sitemap inclusion when entitled |
archived | indexed: false, excluded from sitemap |
Actions:
| Action | Responsibility |
|---|---|
SavePublicExperiencePageDraftAction | Persist draft composition payload |
MarkPublicExperiencePagePreviewAction | Transition to preview state |
PublishPublicExperiencePageAction | Transition to published state |
UnpublishPublicExperiencePageAction | Transition 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.
| Property | Value |
|---|---|
| Slug | platform/public-experience/dashboard |
| Navigation group | AdminNavGroup::Platform |
| Navigation sort | 23 (after Platform UX at 22) |
| Permission | platform.public_experience.view |
| Contract dependencies | PublicExperiencePlatformContract only |
| Write operations | None — 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
| Suite | Tests | Assertions | Status |
|---|---|---|---|
PublicExperiencePlatformTest | 24 | 60 | Pass |
PublicExperienceTypeHardeningTest | 33 | 96 | Pass |
PublicExperienceHardeningTest | 20 | 351 | Pass |
PublicExperienceUiIntegrationTest | 9 | 29 | Pass |
PublicExperienceBoundaryTest | 6 | 34 | Pass |
PublicExperienceArchitectureTest | 39 | 470 | Pass |
| Total | 131 | 1040 | Pass |
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
| Platform | Tag | Status |
|---|---|---|
| Platform UX & Design System | v4.1-platform-ux-design-system | Frozen — consumed via PlatformUXPlatformContract, DesignSystemContract, PlatformUXPresentationContract only |
| Tracking Platform | v3.12-tracking-platform | Frozen — consumed via TrackingPlatformContract only |
| Marketing Platform | v3.11-marketing-platform | Frozen — consumed via MarketingPlatformContract only |
| Compliance Platform | v3.10-compliance-platform | Frozen — consumed via CompliancePlatformContract only |
| Growth Platform | v3.9-growth-platform | Frozen — 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/PlatformUX → 0 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
# 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/PlatformUXRelated documentation
| Document | Role |
|---|---|
core/constitution/PLATFORM_BOUNDARIES.md | Public Experience boundary (updated at freeze preparation) |
docs/architecture/phase-9c-public-experience-platform-specification.md | Phase 9C design authority |
docs/planning/RELEASE_PLAN.md | Release and freeze workflow |
core/methodology/GIT_FREEZE_PROCEDURE.md | Git freeze execution procedure |
docs/releases/v4.1-platform-ux-design-system.md | Prior baseline (Platform UX Phase 9B) |
docs/FINANCE-V1-FROZEN.md | Finance 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.