# Experience Phase 11.10 — Analytics, AI Content & Enterprise Validation

| Field | Value |
| --- | --- |
| Identifier | `experience-11.10` |
| Status | Complete |
| Owner | Platform |
| Module(s) | Analytics Reports/Snapshots, AI Content Hook Registrations/Dispatches |
| Service(s) | `experience` (Torbat Pages) |
| Depends On | `experience-11.9` |
| ADR(s) | [ADR-016](architecture/adr/ADR-016.md) |
| Manifest | [phase-manifest.yaml](ai-framework/phase-manifest.yaml) |

## Enterprise Phase Discovery Record

| Input | Finding |
| --- | --- |
| Roadmap / manifest | Final Experience track phase = `experience-11.10` Analytics, AI Content & Enterprise Validation |
| Prior handover | [phase-11-9.md](phase-handover/phase-11-9.md) — connectors/widgets/notify complete; analytics and AI deferred |
| Boundaries | Analytics = local COUNT on `experience_db` only; AI via `AIProvider` contract — no model inference ownership |
| Existing codebase | Health advertised `analytics=False`, `ai_content=False`; permissions placeholders absent for analytics/ai_hooks |
| Missing vs DoD | No analytics report/snapshot aggregates, no AI hook registration/dispatch shells, no enterprise validation audit |

Derived capabilities: tenant-scoped analytics report definitions with validated local metric keys; snapshot refresh via COUNT queries; AI content hook registrations and dispatches with mock `generate_content`; forbidden ownership keys in config/metadata/payload; full quality-gate validation and Experience track closure.

## Objective

Close the Experience Platform track (11.0–11.10) with analytics shells, optional AI content hooks, and enterprise validation — core flows work when AI is off.

## Scope

### In Scope

- `ExperienceAnalyticsReportDefinition` + `ExperienceAnalyticsSnapshot` on `experience_db`
- `ExperienceAiContentHookRegistration` + `ExperienceAiContentDispatch` (registration_id UUID only, no ORM relationship)
- Local `METRIC_TABLE_MAP` COUNT metrics (workspaces, sites, pages, components, templates, forms, submissions, surveys, publish releases, widgets, connectors, notify, bundles)
- Permissions `experience.analytics.*`, `experience.ai_hooks.*`
- Events for create/update/delete + `analytics_snapshot.refreshed` + `ai_content_dispatch.generated`
- `MockAIProvider.generate_content` returning `ai:content:{uuid}`
- Alembic `0011_phase_1110_analytics_ai_hooks`; version `0.11.10.0`

### Out of Scope

- Cross-service analytics DB reads
- Model inference / LLM provider ownership
- New Experience phases beyond 11.10

### APIs

| Path | Permission |
| --- | --- |
| `/api/v1/analytics-report-definitions` | `experience.analytics.*` |
| `/api/v1/analytics-snapshots` (+ `POST /refresh`) | `experience.analytics.*` |
| `/api/v1/ai-content-hook-registrations` | `experience.ai_hooks.*` |
| `/api/v1/ai-content-dispatches` (+ `POST /{id}/generate`) | `experience.ai_hooks.*` |

## Completion Criteria

- [x] Analytics/AI shells documented and tested
- [x] Core flows work when AI is off (analytics independent of AI)
- [x] Quality gates + phase handover per AI framework
- [x] Experience track 11.0–11.10 complete
