@amplitude/wizard 1.0.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +25 -1
- package/dist/bin.js +47 -11
- package/dist/src/frameworks/javascript-node/javascript-node-wizard-agent.js +11 -1
- package/dist/src/frameworks/react-router/react-router-wizard-agent.js +65 -8
- package/dist/src/frameworks/vue/vue-wizard-agent.js +6 -1
- package/dist/src/lib/agent-interface.js +46 -0
- package/dist/src/lib/agent-runner.js +112 -51
- package/dist/src/lib/api.d.ts +35 -0
- package/dist/src/lib/api.js +118 -0
- package/dist/src/lib/commandments.js +1 -0
- package/dist/src/lib/constants.d.ts +1 -1
- package/dist/src/lib/constants.js +3 -3
- package/dist/src/lib/credential-resolution.js +7 -0
- package/dist/src/lib/framework-config.d.ts +9 -0
- package/dist/src/lib/mcp-with-fallback.d.ts +43 -0
- package/dist/src/lib/mcp-with-fallback.js +220 -0
- package/dist/src/lib/version-check.d.ts +17 -0
- package/dist/src/lib/version-check.js +72 -0
- package/dist/src/lib/wizard-session.d.ts +22 -7
- package/dist/src/lib/wizard-session.js +5 -3
- package/dist/src/run.d.ts +18 -1
- package/dist/src/run.js +104 -15
- package/dist/src/ui/agent-ui.d.ts +2 -0
- package/dist/src/ui/agent-ui.js +10 -0
- package/dist/src/ui/logging-ui.d.ts +2 -0
- package/dist/src/ui/logging-ui.js +6 -0
- package/dist/src/ui/tui/components/ConsoleView.js +14 -1
- package/dist/src/ui/tui/components/JourneyStepper.js +1 -3
- package/dist/src/ui/tui/flows.d.ts +0 -1
- package/dist/src/ui/tui/flows.js +1 -9
- package/dist/src/ui/tui/ink-ui.d.ts +2 -0
- package/dist/src/ui/tui/ink-ui.js +6 -0
- package/dist/src/ui/tui/screen-registry.js +0 -2
- package/dist/src/ui/tui/screens/DataIngestionCheckScreen.d.ts +5 -3
- package/dist/src/ui/tui/screens/DataIngestionCheckScreen.js +124 -4
- package/dist/src/ui/tui/screens/OutroScreen.js +12 -3
- package/dist/src/ui/tui/store.d.ts +22 -3
- package/dist/src/ui/tui/store.js +52 -18
- package/dist/src/ui/tui/utils/diagnostics.js +1 -3
- package/dist/src/ui/wizard-ui.d.ts +8 -0
- package/dist/src/utils/analytics.d.ts +15 -0
- package/dist/src/utils/analytics.js +37 -0
- package/dist/src/utils/setup-utils.js +6 -1
- package/package.json +2 -2
- package/skills/integration/integration-android/SKILL.md +7 -10
- package/skills/integration/integration-android/references/amplitude-quickstart.md +1 -1
- package/skills/integration/integration-android/references/android.md +1468 -0
- package/skills/integration/integration-android/references/basic-integration-1.0-begin.md +3 -1
- package/skills/integration/integration-android/references/basic-integration-1.1-edit.md +183 -0
- package/skills/integration/integration-android/references/basic-integration-1.3-conclude.md +81 -11
- package/skills/integration/integration-angular/SKILL.md +6 -8
- package/skills/integration/integration-angular/references/amplitude-quickstart.md +1 -1
- package/skills/integration/integration-angular/references/basic-integration-1.0-begin.md +3 -1
- package/skills/integration/integration-angular/references/basic-integration-1.1-edit.md +183 -0
- package/skills/integration/integration-angular/references/basic-integration-1.3-conclude.md +81 -11
- package/skills/integration/integration-angular/references/browser-sdk-2.md +67 -20
- package/skills/integration/{integration-swift/references/analytics.md → integration-angular/references/browser-unified-sdk.md} +591 -157
- package/skills/integration/integration-astro-hybrid/SKILL.md +6 -13
- package/skills/integration/integration-astro-hybrid/references/amplitude-quickstart.md +1 -1
- package/skills/integration/integration-astro-hybrid/references/basic-integration-1.0-begin.md +3 -1
- package/skills/integration/integration-astro-hybrid/references/basic-integration-1.1-edit.md +183 -0
- package/skills/integration/integration-astro-hybrid/references/basic-integration-1.3-conclude.md +81 -11
- package/skills/integration/integration-astro-hybrid/references/browser-sdk-2.md +67 -20
- package/skills/integration/{integration-android/references/analytics.md → integration-astro-hybrid/references/browser-unified-sdk.md} +591 -157
- package/skills/integration/integration-astro-ssr/SKILL.md +6 -11
- package/skills/integration/integration-astro-ssr/references/amplitude-quickstart.md +1 -1
- package/skills/integration/integration-astro-ssr/references/basic-integration-1.0-begin.md +3 -1
- package/skills/integration/integration-astro-ssr/references/basic-integration-1.1-edit.md +183 -0
- package/skills/integration/integration-astro-ssr/references/basic-integration-1.3-conclude.md +81 -11
- package/skills/integration/integration-astro-ssr/references/browser-sdk-2.md +67 -20
- package/skills/integration/{integration-javascript_node/references/analytics.md → integration-astro-ssr/references/browser-unified-sdk.md} +591 -157
- package/skills/integration/integration-astro-static/SKILL.md +6 -8
- package/skills/integration/integration-astro-static/references/amplitude-quickstart.md +1 -1
- package/skills/integration/integration-astro-static/references/basic-integration-1.0-begin.md +3 -1
- package/skills/integration/integration-astro-static/references/basic-integration-1.1-edit.md +183 -0
- package/skills/integration/integration-astro-static/references/basic-integration-1.3-conclude.md +81 -11
- package/skills/integration/integration-astro-static/references/browser-sdk-2.md +67 -20
- package/skills/integration/integration-astro-static/references/browser-unified-sdk.md +2212 -0
- package/skills/integration/integration-astro-view-transitions/SKILL.md +6 -10
- package/skills/integration/integration-astro-view-transitions/references/amplitude-quickstart.md +1 -1
- package/skills/integration/integration-astro-view-transitions/references/basic-integration-1.0-begin.md +3 -1
- package/skills/integration/integration-astro-view-transitions/references/basic-integration-1.1-edit.md +183 -0
- package/skills/integration/integration-astro-view-transitions/references/basic-integration-1.3-conclude.md +81 -11
- package/skills/integration/integration-astro-view-transitions/references/browser-sdk-2.md +67 -20
- package/skills/integration/integration-astro-view-transitions/references/browser-unified-sdk.md +2212 -0
- package/skills/integration/integration-django/SKILL.md +5 -16
- package/skills/integration/integration-django/references/amplitude-quickstart.md +1 -1
- package/skills/integration/integration-django/references/basic-integration-1.0-begin.md +3 -1
- package/skills/integration/integration-django/references/basic-integration-1.1-edit.md +183 -0
- package/skills/integration/integration-django/references/basic-integration-1.3-conclude.md +81 -11
- package/skills/integration/integration-django/references/python.md +1 -1
- package/skills/integration/integration-expo/SKILL.md +8 -13
- package/skills/integration/integration-expo/references/amplitude-quickstart.md +1 -1
- package/skills/integration/integration-expo/references/basic-integration-1.0-begin.md +3 -1
- package/skills/integration/integration-expo/references/basic-integration-1.1-edit.md +183 -0
- package/skills/integration/integration-expo/references/basic-integration-1.3-conclude.md +81 -11
- package/skills/integration/integration-expo/references/react-native-sdk.md +11 -10
- package/skills/integration/integration-fastapi/SKILL.md +5 -16
- package/skills/integration/integration-fastapi/references/amplitude-quickstart.md +1 -1
- package/skills/integration/integration-fastapi/references/basic-integration-1.0-begin.md +3 -1
- package/skills/integration/integration-fastapi/references/basic-integration-1.1-edit.md +183 -0
- package/skills/integration/integration-fastapi/references/basic-integration-1.3-conclude.md +81 -11
- package/skills/integration/integration-fastapi/references/python.md +1 -1
- package/skills/integration/integration-flask/SKILL.md +5 -15
- package/skills/integration/integration-flask/references/amplitude-quickstart.md +1 -1
- package/skills/integration/integration-flask/references/basic-integration-1.0-begin.md +3 -1
- package/skills/integration/integration-flask/references/basic-integration-1.1-edit.md +183 -0
- package/skills/integration/integration-flask/references/basic-integration-1.3-conclude.md +81 -11
- package/skills/integration/integration-flask/references/python.md +1 -1
- package/skills/integration/integration-javascript_node/SKILL.md +6 -12
- package/skills/integration/integration-javascript_node/references/amplitude-quickstart.md +1 -1
- package/skills/integration/integration-javascript_node/references/basic-integration-1.0-begin.md +3 -1
- package/skills/integration/integration-javascript_node/references/basic-integration-1.1-edit.md +183 -0
- package/skills/integration/integration-javascript_node/references/basic-integration-1.3-conclude.md +81 -11
- package/skills/integration/integration-javascript_node/references/node.md +1457 -0
- package/skills/integration/integration-javascript_web/SKILL.md +7 -16
- package/skills/integration/integration-javascript_web/references/amplitude-quickstart.md +1 -1
- package/skills/integration/integration-javascript_web/references/basic-integration-1.0-begin.md +3 -1
- package/skills/integration/integration-javascript_web/references/basic-integration-1.1-edit.md +183 -0
- package/skills/integration/integration-javascript_web/references/basic-integration-1.3-conclude.md +81 -11
- package/skills/integration/integration-javascript_web/references/browser-sdk-2.md +67 -20
- package/skills/integration/integration-javascript_web/references/browser-unified-sdk.md +2212 -0
- package/skills/integration/integration-laravel/SKILL.md +5 -11
- package/skills/integration/integration-laravel/references/amplitude-quickstart.md +1 -1
- package/skills/integration/integration-laravel/references/analytics.md +1 -1
- package/skills/integration/integration-laravel/references/basic-integration-1.0-begin.md +3 -1
- package/skills/integration/integration-laravel/references/basic-integration-1.1-edit.md +183 -0
- package/skills/integration/integration-laravel/references/basic-integration-1.3-conclude.md +81 -11
- package/skills/integration/integration-nextjs-app-router/SKILL.md +6 -13
- package/skills/integration/integration-nextjs-app-router/references/amplitude-quickstart.md +1 -1
- package/skills/integration/integration-nextjs-app-router/references/basic-integration-1.0-begin.md +3 -1
- package/skills/integration/integration-nextjs-app-router/references/basic-integration-1.1-edit.md +183 -0
- package/skills/integration/integration-nextjs-app-router/references/basic-integration-1.3-conclude.md +81 -11
- package/skills/integration/integration-nextjs-app-router/references/browser-sdk-2.md +67 -20
- package/skills/integration/integration-nextjs-app-router/references/browser-unified-sdk.md +2212 -0
- package/skills/integration/integration-nextjs-pages-router/SKILL.md +6 -13
- package/skills/integration/integration-nextjs-pages-router/references/amplitude-quickstart.md +1 -1
- package/skills/integration/integration-nextjs-pages-router/references/basic-integration-1.0-begin.md +3 -1
- package/skills/integration/integration-nextjs-pages-router/references/basic-integration-1.1-edit.md +183 -0
- package/skills/integration/integration-nextjs-pages-router/references/basic-integration-1.3-conclude.md +81 -11
- package/skills/integration/integration-nextjs-pages-router/references/browser-sdk-2.md +67 -20
- package/skills/integration/integration-nextjs-pages-router/references/browser-unified-sdk.md +2212 -0
- package/skills/integration/integration-nuxt-3.6/SKILL.md +6 -5
- package/skills/integration/integration-nuxt-3.6/references/EXAMPLE.md +1 -1
- package/skills/integration/integration-nuxt-3.6/references/amplitude-quickstart.md +1 -1
- package/skills/integration/integration-nuxt-3.6/references/basic-integration-1.0-begin.md +3 -1
- package/skills/integration/integration-nuxt-3.6/references/basic-integration-1.1-edit.md +183 -0
- package/skills/integration/integration-nuxt-3.6/references/basic-integration-1.3-conclude.md +81 -11
- package/skills/integration/integration-nuxt-3.6/references/browser-sdk-2.md +67 -20
- package/skills/integration/integration-nuxt-3.6/references/browser-unified-sdk.md +2212 -0
- package/skills/integration/integration-nuxt-4/SKILL.md +6 -5
- package/skills/integration/integration-nuxt-4/references/amplitude-quickstart.md +1 -1
- package/skills/integration/integration-nuxt-4/references/basic-integration-1.0-begin.md +3 -1
- package/skills/integration/integration-nuxt-4/references/basic-integration-1.1-edit.md +183 -0
- package/skills/integration/integration-nuxt-4/references/basic-integration-1.3-conclude.md +81 -11
- package/skills/integration/integration-nuxt-4/references/browser-sdk-2.md +67 -20
- package/skills/integration/integration-nuxt-4/references/browser-unified-sdk.md +2212 -0
- package/skills/integration/integration-python/SKILL.md +8 -13
- package/skills/integration/integration-python/references/amplitude-quickstart.md +1 -1
- package/skills/integration/integration-python/references/basic-integration-1.0-begin.md +3 -1
- package/skills/integration/integration-python/references/basic-integration-1.1-edit.md +183 -0
- package/skills/integration/integration-python/references/basic-integration-1.3-conclude.md +81 -11
- package/skills/integration/integration-python/references/python.md +1 -1
- package/skills/integration/integration-react-native/SKILL.md +8 -9
- package/skills/integration/integration-react-native/references/amplitude-quickstart.md +1 -1
- package/skills/integration/integration-react-native/references/basic-integration-1.0-begin.md +3 -1
- package/skills/integration/integration-react-native/references/basic-integration-1.1-edit.md +183 -0
- package/skills/integration/integration-react-native/references/basic-integration-1.3-conclude.md +81 -11
- package/skills/integration/integration-react-native/references/react-native-sdk.md +11 -10
- package/skills/integration/integration-react-react-router-6/SKILL.md +6 -12
- package/skills/integration/integration-react-react-router-6/references/amplitude-quickstart.md +1 -1
- package/skills/integration/integration-react-react-router-6/references/basic-integration-1.0-begin.md +3 -1
- package/skills/integration/integration-react-react-router-6/references/basic-integration-1.1-edit.md +183 -0
- package/skills/integration/integration-react-react-router-6/references/basic-integration-1.3-conclude.md +81 -11
- package/skills/integration/integration-react-react-router-6/references/browser-sdk-2.md +67 -20
- package/skills/integration/integration-react-react-router-6/references/browser-unified-sdk.md +2212 -0
- package/skills/integration/integration-react-react-router-7-data/SKILL.md +6 -12
- package/skills/integration/integration-react-react-router-7-data/references/amplitude-quickstart.md +1 -1
- package/skills/integration/integration-react-react-router-7-data/references/basic-integration-1.0-begin.md +3 -1
- package/skills/integration/integration-react-react-router-7-data/references/basic-integration-1.1-edit.md +183 -0
- package/skills/integration/integration-react-react-router-7-data/references/basic-integration-1.3-conclude.md +81 -11
- package/skills/integration/integration-react-react-router-7-data/references/browser-sdk-2.md +67 -20
- package/skills/integration/integration-react-react-router-7-data/references/browser-unified-sdk.md +2212 -0
- package/skills/integration/integration-react-react-router-7-declarative/SKILL.md +6 -12
- package/skills/integration/integration-react-react-router-7-declarative/references/amplitude-quickstart.md +1 -1
- package/skills/integration/integration-react-react-router-7-declarative/references/basic-integration-1.0-begin.md +3 -1
- package/skills/integration/integration-react-react-router-7-declarative/references/basic-integration-1.1-edit.md +183 -0
- package/skills/integration/integration-react-react-router-7-declarative/references/basic-integration-1.3-conclude.md +81 -11
- package/skills/integration/integration-react-react-router-7-declarative/references/browser-sdk-2.md +67 -20
- package/skills/integration/integration-react-react-router-7-declarative/references/browser-unified-sdk.md +2212 -0
- package/skills/integration/integration-react-react-router-7-framework/SKILL.md +6 -12
- package/skills/integration/integration-react-react-router-7-framework/references/amplitude-quickstart.md +1 -1
- package/skills/integration/integration-react-react-router-7-framework/references/basic-integration-1.0-begin.md +3 -1
- package/skills/integration/integration-react-react-router-7-framework/references/basic-integration-1.1-edit.md +183 -0
- package/skills/integration/integration-react-react-router-7-framework/references/basic-integration-1.3-conclude.md +81 -11
- package/skills/integration/integration-react-react-router-7-framework/references/browser-sdk-2.md +67 -20
- package/skills/integration/integration-react-react-router-7-framework/references/browser-unified-sdk.md +2212 -0
- package/skills/integration/integration-react-tanstack-router-code-based/SKILL.md +6 -14
- package/skills/integration/integration-react-tanstack-router-code-based/references/amplitude-quickstart.md +1 -1
- package/skills/integration/integration-react-tanstack-router-code-based/references/basic-integration-1.0-begin.md +3 -1
- package/skills/integration/integration-react-tanstack-router-code-based/references/basic-integration-1.1-edit.md +183 -0
- package/skills/integration/integration-react-tanstack-router-code-based/references/basic-integration-1.3-conclude.md +81 -11
- package/skills/integration/integration-react-tanstack-router-code-based/references/browser-sdk-2.md +67 -20
- package/skills/integration/integration-react-tanstack-router-code-based/references/browser-unified-sdk.md +2212 -0
- package/skills/integration/integration-react-tanstack-router-file-based/SKILL.md +6 -14
- package/skills/integration/integration-react-tanstack-router-file-based/references/amplitude-quickstart.md +1 -1
- package/skills/integration/integration-react-tanstack-router-file-based/references/basic-integration-1.0-begin.md +3 -1
- package/skills/integration/integration-react-tanstack-router-file-based/references/basic-integration-1.1-edit.md +183 -0
- package/skills/integration/integration-react-tanstack-router-file-based/references/basic-integration-1.3-conclude.md +81 -11
- package/skills/integration/integration-react-tanstack-router-file-based/references/browser-sdk-2.md +67 -20
- package/skills/integration/integration-react-tanstack-router-file-based/references/browser-unified-sdk.md +2212 -0
- package/skills/integration/integration-react-vite/SKILL.md +6 -12
- package/skills/integration/integration-react-vite/references/amplitude-quickstart.md +1 -1
- package/skills/integration/integration-react-vite/references/basic-integration-1.0-begin.md +3 -1
- package/skills/integration/integration-react-vite/references/basic-integration-1.1-edit.md +183 -0
- package/skills/integration/integration-react-vite/references/basic-integration-1.3-conclude.md +81 -11
- package/skills/integration/integration-react-vite/references/browser-sdk-2.md +67 -20
- package/skills/integration/integration-react-vite/references/browser-unified-sdk.md +2212 -0
- package/skills/integration/integration-ruby/SKILL.md +6 -10
- package/skills/integration/integration-ruby/references/amplitude-quickstart.md +1 -1
- package/skills/integration/integration-ruby/references/analytics.md +1 -1
- package/skills/integration/integration-ruby/references/basic-integration-1.0-begin.md +3 -1
- package/skills/integration/integration-ruby/references/basic-integration-1.1-edit.md +183 -0
- package/skills/integration/integration-ruby/references/basic-integration-1.3-conclude.md +81 -11
- package/skills/integration/integration-ruby-on-rails/SKILL.md +5 -14
- package/skills/integration/integration-ruby-on-rails/references/amplitude-quickstart.md +1 -1
- package/skills/integration/integration-ruby-on-rails/references/analytics.md +1 -1
- package/skills/integration/integration-ruby-on-rails/references/basic-integration-1.0-begin.md +3 -1
- package/skills/integration/integration-ruby-on-rails/references/basic-integration-1.1-edit.md +183 -0
- package/skills/integration/integration-ruby-on-rails/references/basic-integration-1.3-conclude.md +81 -11
- package/skills/integration/integration-sveltekit/SKILL.md +6 -6
- package/skills/integration/integration-sveltekit/references/amplitude-quickstart.md +1 -1
- package/skills/integration/integration-sveltekit/references/basic-integration-1.0-begin.md +3 -1
- package/skills/integration/integration-sveltekit/references/basic-integration-1.1-edit.md +183 -0
- package/skills/integration/integration-sveltekit/references/basic-integration-1.3-conclude.md +81 -11
- package/skills/integration/integration-sveltekit/references/browser-sdk-2.md +67 -20
- package/skills/integration/integration-sveltekit/references/browser-unified-sdk.md +2212 -0
- package/skills/integration/integration-swift/SKILL.md +9 -10
- package/skills/integration/integration-swift/references/amplitude-quickstart.md +1 -1
- package/skills/integration/integration-swift/references/basic-integration-1.0-begin.md +3 -1
- package/skills/integration/integration-swift/references/basic-integration-1.1-edit.md +183 -0
- package/skills/integration/integration-swift/references/basic-integration-1.3-conclude.md +81 -11
- package/skills/integration/integration-swift/references/ios.md +1480 -0
- package/skills/integration/integration-tanstack-start/SKILL.md +6 -17
- package/skills/integration/integration-tanstack-start/references/amplitude-quickstart.md +1 -1
- package/skills/integration/integration-tanstack-start/references/basic-integration-1.0-begin.md +3 -1
- package/skills/integration/integration-tanstack-start/references/basic-integration-1.1-edit.md +183 -0
- package/skills/integration/integration-tanstack-start/references/basic-integration-1.3-conclude.md +81 -11
- package/skills/integration/integration-tanstack-start/references/browser-sdk-2.md +67 -20
- package/skills/integration/integration-tanstack-start/references/browser-unified-sdk.md +2212 -0
- package/skills/integration/integration-vue-3/SKILL.md +6 -5
- package/skills/integration/integration-vue-3/references/amplitude-quickstart.md +1 -1
- package/skills/integration/integration-vue-3/references/basic-integration-1.0-begin.md +3 -1
- package/skills/integration/integration-vue-3/references/basic-integration-1.1-edit.md +183 -0
- package/skills/integration/integration-vue-3/references/basic-integration-1.3-conclude.md +81 -11
- package/skills/integration/integration-vue-3/references/browser-sdk-2.md +67 -20
- package/skills/integration/integration-vue-3/references/browser-unified-sdk.md +2212 -0
- package/skills/taxonomy/amplitude-chart-dashboard-plan/SKILL.md +183 -0
- package/dist/src/ui/tui/screens/ChecklistScreen.d.ts +0 -12
- package/dist/src/ui/tui/screens/ChecklistScreen.js +0 -111
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: amplitude-chart-dashboard-plan
|
|
3
|
+
description: >
|
|
4
|
+
Amplitude Chart & Dashboard Planning Skill — expert implementation
|
|
5
|
+
strategist for translating an instrumented event taxonomy into a focused
|
|
6
|
+
set of Amplitude charts and a single well-organized product dashboard.
|
|
7
|
+
Use after event instrumentation is complete (SDK installed, events
|
|
8
|
+
implemented, .amplitude-events.json written). Produces a concrete chart
|
|
9
|
+
plan and drives chart + dashboard creation via the Amplitude MCP.
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Amplitude Chart & Dashboard Planning Skill
|
|
13
|
+
|
|
14
|
+
You are an expert Amplitude implementation strategist. Your job is to translate
|
|
15
|
+
a set of instrumented events into **a dashboard that gives the product team
|
|
16
|
+
immediate, actionable signal** — the kind an experienced analytics engineer
|
|
17
|
+
would build on day one of a new integration.
|
|
18
|
+
|
|
19
|
+
This skill runs **after** instrumentation is complete. Do not re-plan events.
|
|
20
|
+
Work with exactly the events that were instrumented.
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## Inputs
|
|
25
|
+
|
|
26
|
+
1. **`.amplitude-events.json`** — read this file first. It lists every event
|
|
27
|
+
name (and optionally description) that was instrumented in this run.
|
|
28
|
+
|
|
29
|
+
2. **Taxonomy funnels** — from the `amplitude-quickstart-taxonomy-agent` skill
|
|
30
|
+
output or your own knowledge of the instrumented events. Identify 2–5
|
|
31
|
+
product funnels (e.g. Onboarding, Core Feature Loop, Conversion).
|
|
32
|
+
|
|
33
|
+
3. **Autocapture** — assume Amplitude Autocapture is enabled. It automatically
|
|
34
|
+
tracks `[Amplitude] Page Viewed`, `[Amplitude] Element Clicked`, and
|
|
35
|
+
`[Amplitude] Form Started/Submitted`. These are available for charts even
|
|
36
|
+
before any custom instrumentation fires.
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## Chart planning process
|
|
41
|
+
|
|
42
|
+
### Step 1 — Group events by funnel
|
|
43
|
+
|
|
44
|
+
Map every instrumented event to one of the funnels you identified. An event
|
|
45
|
+
can belong to more than one funnel.
|
|
46
|
+
|
|
47
|
+
### Step 2 — Select chart types per funnel
|
|
48
|
+
|
|
49
|
+
For **each funnel** (up to 5 total funnels):
|
|
50
|
+
|
|
51
|
+
| Insight need | Chart type | Notes |
|
|
52
|
+
| ------------------------- | ------------------- | --------------------------------------- |
|
|
53
|
+
| Conversion rate | Funnel | All steps in order; measure drop-off |
|
|
54
|
+
| Volume trend | Line (event totals) | Daily uniques for the funnel's key event|
|
|
55
|
+
|
|
56
|
+
Priority rule: **conversion funnel first**, then volume. If you only have
|
|
57
|
+
budget for one chart per funnel, pick the funnel chart.
|
|
58
|
+
|
|
59
|
+
### Step 3 — Add Autocapture charts
|
|
60
|
+
|
|
61
|
+
Always include at least **one Autocapture chart** regardless of custom events:
|
|
62
|
+
|
|
63
|
+
| Chart | Event(s) used | Why |
|
|
64
|
+
| ---------------------------- | -------------------------------------------------------------- | -------------------------------------------- |
|
|
65
|
+
| Top pages by volume | `[Amplitude] Page Viewed` — group by `[Amplitude] Page URL` | Immediate traffic insight without waiting for custom events |
|
|
66
|
+
| Click heatmap (if web) | `[Amplitude] Element Clicked` — group by element text/class | Engagement signal before custom events fire |
|
|
67
|
+
|
|
68
|
+
### Step 4 — Add one retention chart
|
|
69
|
+
|
|
70
|
+
Pick the single most important **activation event** (the moment a user gets
|
|
71
|
+
value — e.g. `Order Completed`, `Feature Used`, `Content Consumed`) as the
|
|
72
|
+
return-on event for a **Retention** chart. Use the N-day retention template.
|
|
73
|
+
|
|
74
|
+
### Step 5 — Finalize the chart list
|
|
75
|
+
|
|
76
|
+
Cap at **8 charts total** (enough to fill one dashboard without overwhelming):
|
|
77
|
+
|
|
78
|
+
```
|
|
79
|
+
Funnels: 1 per funnel (2–5 charts)
|
|
80
|
+
Volume trend: 1–2 charts for key events
|
|
81
|
+
Autocapture: 1–2 charts
|
|
82
|
+
Retention: 1 chart
|
|
83
|
+
─────────────────────────────────
|
|
84
|
+
Total: 5–8 charts
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
## Dashboard structure
|
|
90
|
+
|
|
91
|
+
Name the dashboard: **"[Product/Framework] Analytics — [YYYY]"** — e.g.
|
|
92
|
+
`"Next.js App Analytics — 2025"`. If the product name is available from the
|
|
93
|
+
package.json `name` field or the app's title, use it.
|
|
94
|
+
|
|
95
|
+
Organize the dashboard sections (layouts) in this order:
|
|
96
|
+
|
|
97
|
+
1. **Acquisition** — Autocapture page views, top landing pages
|
|
98
|
+
2. **Activation** — first-run funnel, onboarding steps
|
|
99
|
+
3. **Core Loop** — the product's primary value action, frequency
|
|
100
|
+
4. **Conversion** — checkout / upgrade / subscription funnel (if present)
|
|
101
|
+
5. **Retention** — N-day retention anchored on activation event
|
|
102
|
+
|
|
103
|
+
Only include sections for which you have at least one chart.
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## Dashboard description
|
|
108
|
+
|
|
109
|
+
Set the dashboard description to:
|
|
110
|
+
|
|
111
|
+
> "Auto-generated by the Amplitude Wizard. Charts are tied to the events
|
|
112
|
+
> instrumented in [date]. Autocapture charts will populate immediately;
|
|
113
|
+
> custom event charts populate once users trigger those flows."
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
## Autocapture + future events
|
|
118
|
+
|
|
119
|
+
Some charts may show zero data today because:
|
|
120
|
+
1. The app hasn't been used since instrumentation.
|
|
121
|
+
2. The instrumented events require specific user actions.
|
|
122
|
+
|
|
123
|
+
This is expected. Add a comment in the setup report explaining which charts
|
|
124
|
+
rely on custom events vs Autocapture, and note that Autocapture charts
|
|
125
|
+
(Page Viewed, Element Clicked) will populate as soon as any user visits
|
|
126
|
+
the app — no deployment required.
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
## MCP call sequence
|
|
131
|
+
|
|
132
|
+
Use the Amplitude MCP to create charts and dashboard. Suggested order:
|
|
133
|
+
|
|
134
|
+
1. Call `create_chart` (or equivalent MCP tool) for each chart in the plan.
|
|
135
|
+
Collect the returned chart IDs.
|
|
136
|
+
2. Call `create_dashboard` with all chart IDs and the dashboard metadata.
|
|
137
|
+
3. Record the returned dashboard URL.
|
|
138
|
+
|
|
139
|
+
**Use exact event names** from `.amplitude-events.json` — do not
|
|
140
|
+
normalize, lowercase, or rename them when constructing chart definitions.
|
|
141
|
+
The event names must match exactly what was instrumented.
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
## Output: what to write to `.amplitude-dashboard.json`
|
|
146
|
+
|
|
147
|
+
After dashboard creation, write a file named `.amplitude-dashboard.json` in
|
|
148
|
+
the project root with this shape (replace with real values):
|
|
149
|
+
|
|
150
|
+
```json
|
|
151
|
+
{
|
|
152
|
+
"dashboardUrl": "https://app.amplitude.com/123456/dashboard/abc",
|
|
153
|
+
"dashboardId": "abc",
|
|
154
|
+
"charts": [
|
|
155
|
+
{
|
|
156
|
+
"id": "chart-id-1",
|
|
157
|
+
"title": "Onboarding Funnel",
|
|
158
|
+
"type": "funnel",
|
|
159
|
+
"funnel": "Onboarding"
|
|
160
|
+
}
|
|
161
|
+
],
|
|
162
|
+
"createdAt": "2025-01-15T12:00:00Z"
|
|
163
|
+
}
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
This file is read by the wizard to surface the dashboard URL in the checklist.
|
|
167
|
+
It is also listed in the setup report. Remove it after the setup report is
|
|
168
|
+
written (same as `.amplitude-events.json`).
|
|
169
|
+
|
|
170
|
+
---
|
|
171
|
+
|
|
172
|
+
## Quality bar
|
|
173
|
+
|
|
174
|
+
An expert implementation strategist would ask:
|
|
175
|
+
|
|
176
|
+
- Does every funnel have a conversion chart? ✓
|
|
177
|
+
- Is the dashboard named after the product, not a generic placeholder? ✓
|
|
178
|
+
- Does at least one chart use Autocapture so it populates on day one? ✓
|
|
179
|
+
- Is there a retention chart anchored on a meaningful activation event? ✓
|
|
180
|
+
- Are event names exactly as implemented in code? ✓
|
|
181
|
+
- Is the dashboard description set to explain what was auto-generated? ✓
|
|
182
|
+
|
|
183
|
+
If any of these are missing, add them before finalizing.
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ChecklistScreen — Post-setup checklist for first chart and dashboard.
|
|
3
|
-
*
|
|
4
|
-
* Shown after DataIngestionCheckScreen confirms events are flowing.
|
|
5
|
-
* Celebration header: "Your events are flowing!" in success green.
|
|
6
|
-
*/
|
|
7
|
-
import type { WizardStore } from '../store.js';
|
|
8
|
-
interface ChecklistScreenProps {
|
|
9
|
-
store: WizardStore;
|
|
10
|
-
}
|
|
11
|
-
export declare const ChecklistScreen: ({ store }: ChecklistScreenProps) => import("react/jsx-runtime").JSX.Element;
|
|
12
|
-
export {};
|
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
/**
|
|
3
|
-
* ChecklistScreen — Post-setup checklist for first chart and dashboard.
|
|
4
|
-
*
|
|
5
|
-
* Shown after DataIngestionCheckScreen confirms events are flowing.
|
|
6
|
-
* Celebration header: "Your events are flowing!" in success green.
|
|
7
|
-
*/
|
|
8
|
-
import { Box, Text } from 'ink';
|
|
9
|
-
import { useEffect, useState } from 'react';
|
|
10
|
-
import { useWizardStore } from '../hooks/useWizardStore.js';
|
|
11
|
-
import { Colors, Icons } from '../styles.js';
|
|
12
|
-
import { PickerMenu } from '../primitives/index.js';
|
|
13
|
-
import { OUTBOUND_URLS } from '../../../lib/constants.js';
|
|
14
|
-
import opn from 'opn';
|
|
15
|
-
import { analytics } from '../../../utils/analytics.js';
|
|
16
|
-
import { fetchOwnedDashboards } from '../../../lib/api.js';
|
|
17
|
-
export const ChecklistScreen = ({ store }) => {
|
|
18
|
-
useWizardStore(store);
|
|
19
|
-
const { session } = store;
|
|
20
|
-
const { checklistChartComplete, checklistDashboardComplete, region, selectedOrgId, } = session;
|
|
21
|
-
const [opening, setOpening] = useState(null);
|
|
22
|
-
const zone = (region ?? 'us');
|
|
23
|
-
// On mount, detect charts/dashboards the user already owns so returning
|
|
24
|
-
// users see the correct state without re-doing completed steps.
|
|
25
|
-
useEffect(() => {
|
|
26
|
-
const { credentials, selectedOrgId, checklistChartComplete, checklistDashboardComplete, } = store.session;
|
|
27
|
-
if (!credentials || !selectedOrgId)
|
|
28
|
-
return;
|
|
29
|
-
if (checklistChartComplete && checklistDashboardComplete)
|
|
30
|
-
return;
|
|
31
|
-
const accessToken = credentials.accessToken;
|
|
32
|
-
const sessionZone = (store.session.region ?? 'us');
|
|
33
|
-
fetchOwnedDashboards(accessToken, sessionZone, selectedOrgId)
|
|
34
|
-
.then(({ hasCharts, hasDashboards }) => {
|
|
35
|
-
if (hasCharts)
|
|
36
|
-
store.setChecklistChartComplete();
|
|
37
|
-
if (hasDashboards)
|
|
38
|
-
store.setChecklistDashboardComplete();
|
|
39
|
-
})
|
|
40
|
-
.catch(() => {
|
|
41
|
-
// fetchOwnedDashboards never rejects — handled defensively
|
|
42
|
-
});
|
|
43
|
-
}, []);
|
|
44
|
-
const chartUrl = OUTBOUND_URLS.newChart(zone, selectedOrgId);
|
|
45
|
-
const dashboardUrl = OUTBOUND_URLS.newDashboard(zone, selectedOrgId);
|
|
46
|
-
function openInBrowser(url, item) {
|
|
47
|
-
setOpening(item);
|
|
48
|
-
analytics.wizardCapture('Checklist Step Opened', { item });
|
|
49
|
-
opn(url, { wait: false })
|
|
50
|
-
.catch(() => {
|
|
51
|
-
/* fire-and-forget */
|
|
52
|
-
})
|
|
53
|
-
.finally(() => {
|
|
54
|
-
setOpening(null);
|
|
55
|
-
if (item === 'chart')
|
|
56
|
-
store.setChecklistChartComplete();
|
|
57
|
-
if (item === 'dashboard')
|
|
58
|
-
store.setChecklistDashboardComplete();
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
|
-
function handleSelect(value) {
|
|
62
|
-
switch (value) {
|
|
63
|
-
case 'chart':
|
|
64
|
-
openInBrowser(chartUrl, 'chart');
|
|
65
|
-
break;
|
|
66
|
-
case 'dashboard':
|
|
67
|
-
openInBrowser(dashboardUrl, 'dashboard');
|
|
68
|
-
break;
|
|
69
|
-
case 'continue':
|
|
70
|
-
store.setChecklistComplete();
|
|
71
|
-
break;
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
const allDone = checklistChartComplete && checklistDashboardComplete;
|
|
75
|
-
const options = [
|
|
76
|
-
{
|
|
77
|
-
value: 'chart',
|
|
78
|
-
label: checklistChartComplete
|
|
79
|
-
? `${Icons.checkmark} Build a chart — done`
|
|
80
|
-
: `${Icons.bulletOpen} Build your first chart`,
|
|
81
|
-
hint: checklistChartComplete ? undefined : 'opens in browser',
|
|
82
|
-
disabled: checklistChartComplete,
|
|
83
|
-
},
|
|
84
|
-
{
|
|
85
|
-
value: 'dashboard',
|
|
86
|
-
label: checklistDashboardComplete
|
|
87
|
-
? `${Icons.checkmark} Create a dashboard — done`
|
|
88
|
-
: `${Icons.bulletOpen} Create your first dashboard`,
|
|
89
|
-
hint: checklistDashboardComplete
|
|
90
|
-
? undefined
|
|
91
|
-
: checklistChartComplete
|
|
92
|
-
? 'opens in browser'
|
|
93
|
-
: 'build a chart first',
|
|
94
|
-
disabled: checklistDashboardComplete || !checklistChartComplete,
|
|
95
|
-
},
|
|
96
|
-
{
|
|
97
|
-
value: 'taxonomy',
|
|
98
|
-
label: `${Icons.bulletOpen} Set up taxonomy`,
|
|
99
|
-
hint: 'coming soon',
|
|
100
|
-
disabled: true,
|
|
101
|
-
},
|
|
102
|
-
{
|
|
103
|
-
value: 'continue',
|
|
104
|
-
label: allDone
|
|
105
|
-
? `${Icons.arrowRight} Done — continue`
|
|
106
|
-
: `${Icons.arrowRight} Skip and continue`,
|
|
107
|
-
hint: allDone ? undefined : 'you can always do these later',
|
|
108
|
-
},
|
|
109
|
-
];
|
|
110
|
-
return (_jsxs(Box, { flexDirection: "column", flexGrow: 1, paddingX: 2, paddingY: 1, children: [_jsxs(Box, { marginBottom: 1, flexDirection: "column", children: [_jsxs(Text, { bold: true, color: Colors.success, children: [Icons.checkmark, " Your events are flowing!"] }), _jsx(Text, { color: Colors.body, children: "Here's what to explore next:" })] }), opening && (_jsx(Box, { marginBottom: 1, children: _jsxs(Text, { color: Colors.muted, children: ["Opening Amplitude in your browser", Icons.ellipsis] }) })), _jsx(PickerMenu, { options: options, onSelect: (v) => handleSelect(v) })] }));
|
|
111
|
-
};
|