Skip to content

Commit e2a4e48

Browse files
authored
docs(docs): mark S0.4 + S0.5 shipped across FTUX doc set (#1586)
1 parent 127e5c9 commit e2a4e48

3 files changed

Lines changed: 65 additions & 36 deletions

File tree

docs/audits/2026-05-03-ftux-onboarding-roast.md

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,17 @@
1616
>
1717
> Початкова проджарка стверджувала, що «PostHog не підключений (analytics — stub з localStorage)». **Це неточно.** Перевірив код у `main` після спроби взяти S0.1 і виявив, що web-частину analytics уже зроблено: PostHog SDK lazy-mounted з [`apps/web/src/core/observability/posthog.ts`](../../apps/web/src/core/observability/posthog.ts), `initPostHog()` викликається з `main.tsx`, `identify`/`reset` з `AuthContext`, `<PageviewTracker />` змонтований у `App.tsx`, `posthog-js@^1.372.3` в deps. `.env.example` (root) уже має `VITE_POSTHOG_KEY` / `VITE_POSTHOG_HOST` коментовані; setup задокументований у [`docs/observability/frontend.md`](../observability/frontend.md). Реальні гепи лишаються: (а) mobile parity (apps/mobile = console-only stub без `posthog-js`), (б) ~9 канонічних подій з `ANALYTICS_EVENTS` визначені, але не fired у `trackEvent` call-sites — серед них `CELEBRATION_SHOWN`, `FIRST_REAL_ENTRY`, `FTUX_TIME_TO_VALUE`, `MODULE_CHECKLIST_*`, `ONBOARDING_STEP_VIEWED/COMPLETED/SKIPPED`, `BUDGET_SET`, `HINT_DISMISSED/COMPLETED`, `STREAK_MILESTONE_REACHED`, (в) PostHog FTUX dashboards docs не існує. Деталі — у [`ftux-sprint-plan.md` §2 «Status check»](../launch/ftux-sprint-plan.md#status-check-verified-2026-05-03). Висновки самої прожарки (P0–P3 рекомендації) лишаються в силі — вони про emotional design, не про transport.
1818
19+
> ### Errata v2 (2026-05-03 23:35 UTC) — Sprint 0 закрито
20+
>
21+
> Гепи (б) та (в) з попередньої errata **закрито**. Стан S0 на момент запису:
22+
>
23+
> - **S0.5 — dashboards runbook ✅** _shipped_ у [PR #1570](https://github.com/Skords-01/Sergeant/pull/1570)[`docs/observability/posthog-ftux-dashboards.md`](../observability/posthog-ftux-dashboards.md) визначає 5 saved insights (activation funnel, TTV histogram, vibe→first-entry per module, D1/D7 retention by signup-cohort, celebration drop-off), alert thresholds для PostHog Alerts, runbook як додавати нові insights. Скріншоти live-tile-ів — окремий founder-task (placeholder лінки в §3 з поміткою «TBD»).
24+
> - **S0.4 — 9 канонічних подій ✅** _shipped_ у [PR #1582](https://github.com/Skords-01/Sergeant/pull/1582). Wired call-sites: `celebration_shown` ([`CelebrationModal.tsx`](../../apps/web/src/core/onboarding/CelebrationModal.tsx)), `module_checklist_shown/_step_done/_dismissed` ([`ModuleChecklist.tsx`](../../apps/web/src/core/onboarding/ModuleChecklist.tsx)), `onboarding_step_viewed/_step_completed` ([`OnboardingWizard.tsx`](../../apps/web/src/core/onboarding/OnboardingWizard.tsx)), `hint_completed/_dismissed` ([`HintsOrchestrator.tsx`](../../apps/web/src/core/hints/HintsOrchestrator.tsx)), `streak_milestone_reached` ([`dashboardCards.tsx`](../../apps/web/src/core/hub/dashboard/dashboardCards.tsx) — `<StreakIndicator/>` у hub, бо `<StreakCelebration>`-модалка ще не змонтована в дашборд). `first_real_entry` + `ftux_time_to_value` уже стріляли до S0.4 з `firstRealEntry.ts`; `budget_set` — з [`Budgets.tsx`](../../apps/web/src/modules/finyk/pages/budgets/Budgets.tsx). Funnel `started → step_viewed → step_completed → vibe_picked → first_action_picked → ftux_preset_picked → first_real_entry → celebration_shown` без gap-ів.
25+
> - **S0.3 — mobile parity ❌** лишається TODO ([`apps/mobile/src/lib/analytics.ts`](../../apps/mobile/src/lib/analytics.ts) = console-only stub, нема `posthog-react-native`). Web FTUX-funnel працює; mobile користувачі поки не входять у дашборди (`platform` super-property вже зареєстровано на web — як тільки mobile транспорт прийде, segmentation увімкнеться без правок dashboard-ів).
26+
> - **`onboarding_skipped`** окремо: у поточному one-screen wizard-і (v3) skip-шляху немає, тож emiter не доданий. Якщо у S1 з'явиться явна «Skip» affordance — повертаємось до події; контракт `{ step: string }` уже зафіксовано у [`posthog-ftux-dashboards.md` §2](../observability/posthog-ftux-dashboards.md#2-canonical-events-consumed).
27+
>
28+
> Висновки прожарки (P0–P3 рекомендації) лишаються в силі — вони про emotional design, а тепер ще й мають реальні метрики, на які можна спертися при A/B.
29+
1930
---
2031

2132
## Bottom line
@@ -283,7 +294,7 @@
283294
4. **Замінити CTA «Відкрити Sergeant» / «Заповни мій хаб» на outcome-CTA.** «Зробити перший запис», «Налаштувати мій тиждень», «Подивитись як це виглядає» — щось, що обіцяє результат.
284295
5. **Goals → primary action.** Якщо користувач у GoalSheet вказав фінансовий бюджет → primary FirstAction = `finyk`, а не `routine`. Жорсткий PRIORITY-array проти goal-aware-вибору — це anti-personalization.
285296
6. **PresetSheet для nutrition/fizruk:** або прибрати sheet (відкривати add-sheet напряму з FirstActionHero), або додати реальні prefill-канали і тримати плитки. Поточний пустий sheet — best-of-both-worlds, but worst.
286-
7. **PostHog (або еквівалент).** Без funnel-метрик усе вищезазначене — це гіпотези. Це **передумова** до будь-якого A/B.
297+
7. **PostHog (або еквівалент).** Без funnel-метрик усе вищезазначене — це гіпотези. Це **передумова** до будь-якого A/B. _Web-частина закрита станом на 2026-05-03 — див. errata v2 угорі та [`ftux-sprint-plan.md` §2](../launch/ftux-sprint-plan.md#2-sprint-0--analytics-live-1-тиждень) (S0.4 + S0.5 shipped). Mobile parity (S0.3) лишається._
287298

288299
### P1 (другий спринт)
289300

0 commit comments

Comments
 (0)