skills/amplitude/taxonomy/SKILL.md
Create, validate, audit, and govern Amplitude event taxonomy across a product. Uses mcp__Amplitude__get_event_properties, mcp__Amplitude__get_project_context, mcp__Amplitude__query_amplitude_data.
npx skillsauth add kienbui1995/magic-powers taxonomyInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Every product needs exactly one naming convention. Enforce it ruthlessly.
Standard convention: verb_noun in snake_case
page_viewed ✓
button_clicked ✓
form_submitted ✓
PageViewed ✗ → rename to page_viewed
buttonClick ✗ → rename to button_clicked
form-submit ✗ → rename to form_submitted
FormWasSubmitted ✗ → rename to form_submitted
Common verb vocabulary (use these, don't invent synonyms):
viewed, rendered, displayedclicked, tapped, submitted, applied, selected, toggledstarted, completed, abandoned, cancelled, failednavigated, redirected, scrolledRule: If two events describe the same action, they must use the same verb. button_clicked and cta_pressed are synonyms — eliminate one.
Define a set of shared properties that appear on every event. Call these "global context properties."
Required global properties:
| Property | Type | Source | Notes |
|----------|------|--------|-------|
| user_id | string | auth system | null for anonymous users |
| session_id | string | SDK | auto-populated by Amplitude |
| platform | string | app config | web, ios, android |
| app_version | string | build system | 1.4.2 |
| environment | string | env var | production, staging |
Prohibited property anti-patterns:
userId — use user_id (consistent snake_case)ts — use timestamp (readable)v — use app_version (no abbreviations)flag — too generic; name what the flag isUse mcp__Amplitude__get_event_properties to audit actual property names across events.
Identify events that track the same user action under different names:
Detection signals:
checkout_complete vs checkout_completed vs purchase_completedResolution process:
Every event has a lifecycle: proposed → active → deprecated → removed.
Lifecycle states:
| State | Description | Action Required |
|-------|-------------|-----------------|
| proposed | Defined but not yet implemented | Implement or discard |
| active | Currently firing in production | Monitor volume |
| stale | Volume declining but still active | Review if still needed |
| deprecated | Replaced by new event, still firing | Set end date, update code |
| removed | No longer firing | Archive in taxonomy doc |
Orphaned event detection (events potentially abandoned):
Use mcp__Amplitude__query_amplitude_data to check event volumes and last-seen dates.
Every active event must have:
Template:
event: checkout_confirmation_viewed
description: "Fires when a user successfully reaches the order confirmation screen after completing payment"
trigger: "Page component mounts after order API returns 200 with valid order_id"
owner: "growth-team"
funnel: ["purchase-funnel", "first-purchase-funnel"]
properties:
order_id: {type: string, required: true, example: "ord_abc123"}
order_total: {type: number, required: true, unit: "USD", example: 49.99}
status: active
created: "2024-01-15"
last_modified: "2024-11-03"
Define how new events get approved and who can add/change events:
Approval tiers:
Taxonomy changelog: Every change to the taxonomy is logged with date, change type, rationale, and owner.
mcp__Amplitude__get_event_propertiesmcp__Amplitude__query_amplitude_data to get volume per event for last 30 daysmcp__Amplitude__get_event_properties — pull the full event and property schema for the projectmcp__Amplitude__get_project_context — get project metadata and configurationmcp__Amplitude__query_amplitude_data — check event volumes, last-seen dates, and trend data to detect orphaned or duplicate eventsTaxonomy audit report:
## Taxonomy Health Score: <score>/100
### Issues by Severity
CRITICAL:
- 3 funnel events missing (cannot compute purchase conversion rate)
HIGH:
- 7 events violate naming convention (camelCase instead of snake_case)
- 2 duplicate event pairs: checkout_complete / checkout_completed
MEDIUM:
- 12 events have no owner assigned
- 5 events have no trigger documentation
LOW:
- 8 events with volume < 100/day (possible orphans)
### Remediation Plan (priority ordered)
1. Add missing funnel events (week 1) — unblocks conversion analysis
2. Rename 7 non-convention events (week 2) — coordinate with all clients
3. Merge duplicate pairs (week 3) — 90-day overlap period
4. Assign owners to undocumented events (ongoing)
### Migration Plan
<event rename mapping table with sunset dates>
content-media
Use when designing for XR (AR/VR/MR), choosing interaction modes, or adapting 2D UI patterns for spatial computing
testing
Use when creating new skills, editing existing skills, or verifying skills work before deployment
development
Use when you have a spec or requirements for a multi-step task, before touching code
development
Use when executing a structured workflow — select and run a feature, bugfix, refactor, research, or incident template with correct agent and model assignments per phase.