# @repo/core-analytics Optional core package providing a vendor-neutral product analytics interface. Scaffold via `pnpm turbo gen core-package analytics`. ## Structure ``` src/ analytics.interface.ts # IAnalytics — track, identify, pageView, flush noop-analytics.ts # NoopAnalytics (default no-op implementation) index.ts # Barrel export ``` ## Design `IAnalytics` exposes four methods: - `track(event, attributes?)` — record a named event with optional attributes - `identify(user)` — associate subsequent events with a user - `pageView(path, attributes?)` — record a page-view event - `flush()` — drain any in-flight queued events (returns `Promise`) The interface is vendor-neutral: no third-party analytics SDK is bundled. Feature packages depend on `IAnalytics` only; concrete implementations (e.g. a PostHog or Segment adapter) are wired at DI bind time in `bind-production`. `NoopAnalytics` is the default implementation — all methods are no-ops and `flush()` resolves immediately via `Promise.resolve()`. Use it in dev-seed bindings and unit tests. See `docs/architecture/agent-first-workflow-and-conformance.md` for the dependency-injection conventions.