2.1 KiB
id, prd, title, type, status, features, created, updated
| id | prd | title | type | status | features | created | updated | ||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| product-analytics-channel | docs/work/prds/product-analytics-channel.prd.md | Product analytics as a fourth capture channel (ADR-024 implementation) | epic | done |
|
2026-05-18T12:00:00Z | 2026-05-18T16:05:30.519Z |
Goal
Ship @repo/core-analytics as an optional core package that codifies product analytics as the fourth capture channel alongside ITracer, ILogger, and IAuditLog. Adds IAnalytics interface, NoopAnalytics + RecordingAnalytics implementations, Analyzed brand, withAnalytics wrapper, analyticsEvents manifest field, assertFeatureConformance extension, AnalyticsProtocol in BindContext, no-undeclared-analytics-event ESLint rule, and a React provider scaffold — all mirroring the audit channel shape with ADR-024's three deliberate divergences.
Why
Consumers routinely bolt analytics SDKs on at the React component layer, bypassing manifests, brands, and the five-gate conformance system. Codifying analytics as a channel with the same structural shape as core-audit means the conformance gates extend to a fourth signal at zero new gate count.
Stories
- 01 — Scaffold @repo/core-analytics package
- 02 — Add RecordingAnalytics to @repo/core-testing
- 03 — Add Analyzed brand and withAnalytics wrapper
- 04 — Extend manifest schema and wireUseCase with analyticsEvents
- 05 — Extend assertFeatureConformance to check Analyzed brand
- 06 — Add AnalyticsProtocol and BindContext.analytics
- 07 — Add no-undeclared-analytics-event ESLint rule
- 08 — Add React provider to @repo/core-analytics
- 09 — Documentation