chore(work): decompose product-analytics-channel epic

Generated 1 epic + 9 stories under docs/work/epics/ from the approved
PRD docs/work/prds/product-analytics-channel.prd.md. Stories follow the
sequencing hints from the PRD (brand+wrapper → manifest+wireUseCase →
assertFeatureConformance → BindContext+ESLint → React provider → docs).
Ready for `pnpm work dispatch --execute` to begin implementation.
This commit is contained in:
2026-05-18 12:46:25 +02:00
parent 1595c9198e
commit b8d4cfe907
11 changed files with 618 additions and 3 deletions

View File

@@ -1,5 +1,5 @@
{
"updated_at": "2026-05-18T10:35:02.002Z",
"updated_at": "2026-05-18T10:46:27.408Z",
"epics": {
"binder-wrap-helper": {
"status": "done",
@@ -240,9 +240,180 @@
"blocks": []
}
}
},
"product-analytics-channel": {
"status": "in-progress",
"title": "Product analytics as a fourth capture channel (ADR-024 implementation)",
"prd": "docs/work/prds/product-analytics-channel.prd.md",
"stories": {
"01-scaffold-core-analytics-package": {
"status": "in-progress",
"title": "Scaffold @repo/core-analytics package with IAnalytics and NoopAnalytics",
"ac_total": 2,
"ac_completed": 0,
"depends_on": [],
"blocks": []
},
"02-recording-analytics": {
"status": "todo",
"title": "Add RecordingAnalytics to @repo/core-testing",
"ac_total": 1,
"ac_completed": 0,
"depends_on": [
"01-scaffold-core-analytics-package"
],
"blocks": [
"08-react-provider"
]
},
"03-analyzed-brand-and-with-analytics-wrapper": {
"status": "todo",
"title": "Add Analyzed brand and withAnalytics wrapper",
"ac_total": 2,
"ac_completed": 0,
"depends_on": [
"01-scaffold-core-analytics-package"
],
"blocks": [
"04-manifest-schema-and-wire-use-case"
]
},
"04-manifest-schema-and-wire-use-case": {
"status": "todo",
"title": "Extend manifest schema and wireUseCase with analyticsEvents",
"ac_total": 2,
"ac_completed": 0,
"depends_on": [
"03-analyzed-brand-and-with-analytics-wrapper"
],
"blocks": []
},
"05-assert-feature-conformance-analyzed": {
"status": "todo",
"title": "Extend assertFeatureConformance to check Analyzed brand",
"ac_total": 1,
"ac_completed": 0,
"depends_on": [
"04-manifest-schema-and-wire-use-case"
],
"blocks": []
},
"06-analytics-protocol-bind-context": {
"status": "todo",
"title": "Add AnalyticsProtocol and BindContext.analytics",
"ac_total": 1,
"ac_completed": 0,
"depends_on": [
"05-assert-feature-conformance-analyzed"
],
"blocks": [
"09-documentation"
]
},
"07-eslint-rule-no-undeclared-analytics-event": {
"status": "todo",
"title": "Add no-undeclared-analytics-event ESLint rule to @repo/core-eslint",
"ac_total": 1,
"ac_completed": 0,
"depends_on": [
"05-assert-feature-conformance-analyzed"
],
"blocks": [
"09-documentation"
]
},
"08-react-provider": {
"status": "todo",
"title": "Add React provider to @repo/core-analytics",
"ac_total": 1,
"ac_completed": 0,
"depends_on": [
"02-recording-analytics"
],
"blocks": [
"09-documentation"
]
},
"09-documentation": {
"status": "todo",
"title": "Documentation — analytics.md, conformance-quickref, CLAUDE.md, template-tiers",
"ac_total": 2,
"ac_completed": 0,
"depends_on": [],
"blocks": []
}
}
}
},
"ready": [],
"blocked": [],
"ready": [
{
"epic": "product-analytics-channel",
"story": "01-scaffold-core-analytics-package",
"title": "Scaffold @repo/core-analytics package with IAnalytics and NoopAnalytics"
},
{
"epic": "product-analytics-channel",
"story": "09-documentation",
"title": "Documentation — analytics.md, conformance-quickref, CLAUDE.md, template-tiers"
}
],
"blocked": [
{
"epic": "product-analytics-channel",
"story": "02-recording-analytics",
"title": "Add RecordingAnalytics to @repo/core-testing",
"waiting_on": [
"product-analytics-channel/01-scaffold-core-analytics-package"
]
},
{
"epic": "product-analytics-channel",
"story": "03-analyzed-brand-and-with-analytics-wrapper",
"title": "Add Analyzed brand and withAnalytics wrapper",
"waiting_on": [
"product-analytics-channel/01-scaffold-core-analytics-package"
]
},
{
"epic": "product-analytics-channel",
"story": "04-manifest-schema-and-wire-use-case",
"title": "Extend manifest schema and wireUseCase with analyticsEvents",
"waiting_on": [
"product-analytics-channel/03-analyzed-brand-and-with-analytics-wrapper"
]
},
{
"epic": "product-analytics-channel",
"story": "05-assert-feature-conformance-analyzed",
"title": "Extend assertFeatureConformance to check Analyzed brand",
"waiting_on": [
"product-analytics-channel/04-manifest-schema-and-wire-use-case"
]
},
{
"epic": "product-analytics-channel",
"story": "06-analytics-protocol-bind-context",
"title": "Add AnalyticsProtocol and BindContext.analytics",
"waiting_on": [
"product-analytics-channel/05-assert-feature-conformance-analyzed"
]
},
{
"epic": "product-analytics-channel",
"story": "07-eslint-rule-no-undeclared-analytics-event",
"title": "Add no-undeclared-analytics-event ESLint rule to @repo/core-eslint",
"waiting_on": [
"product-analytics-channel/05-assert-feature-conformance-analyzed"
]
},
{
"epic": "product-analytics-channel",
"story": "08-react-provider",
"title": "Add React provider to @repo/core-analytics",
"waiting_on": [
"product-analytics-channel/02-recording-analytics"
]
}
],
"needs_prd_ship": []
}