Skene
Product
Pricing
Docs
Blog
About
Log In
ProductPricingDocsBlogAbout
Log In
Resources / Playbooks

Audit your current event taxonomy

Before you can stop instrumentation from drifting, you need to know what you have. A one-time audit produces a manifest that every later decision can sit on top of.

Job-to-be-done: Get a written, accurate snapshot of every analytics call your repo emits today. · Updated 2026-05-22

Problem context

You have analytics events firing across the codebase but no canonical list of what they are.

Different teams disagree about what specific events mean or where they fire.

Dashboards reference event names nobody is sure exist in the current code.

What breaks if this is not solved

  • New PRs silently change events because nobody knows which events the PR touches.
  • Onboarding new engineers takes too long because the instrumentation is implicit.
  • Decisions get made against dashboards that are partly drawn from events that no longer fire.

When this playbook applies

  • Your codebase has more than a few analytics calls and you cannot list them from memory.
  • You have at least one analytics library actually wired up (PostHog, Mixpanel, Segment, Amplitude, Heap, or Snowplow).
  • You have not run a structured audit in the last six months.

System approach

Treat the audit output as data, not a document. The manifest should be machine-readable so future PRs can diff against it.

Audit once locally before turning anything on in CI. The first run will surface real questions about which events are obsolete.

Resolve ambiguity at audit time, not later: every event in the manifest should have an owner and a use.

Execution steps

  1. Install the Skene CLI: `npm install -g @skene/cli`.
  2. Run `npx @skene/cli audit` at the repo root. It writes a `skene-manifest.json` with every analytics call.
  3. Open the manifest. Group events by file or by library to see the shape of what exists.
  4. For each event, mark: still in use, deprecated, or unclear. Resolve the unclear ones with whoever wrote them.
  5. Drop the obsolete calls in a single PR. Commit the cleaned manifest.
  6. Decide whether to keep auditing locally, or wire up the GitHub Action so every future PR validates against the manifest.

Metrics to watch

  • Events in the manifest

    Whatever the audit returns - this is your baseline.

    A useful baseline. Not a target. Repeat the audit quarterly to track whether the surface is growing in a controlled way.

  • Deprecated events

    Trend down to zero after the cleanup PR.

    If deprecated events keep coming back, somebody is reintroducing them by copy-paste.

Failure modes

  • Treating the manifest as a write-once document. It needs to live in code and update on every merge.
  • Cleaning up obsolete events without checking the dashboards that depend on them.
  • Auditing once, never again, and waiting six months for the surface to drift again.

Related concepts

Glossary

instrumentation-surfacebaseline-manifestevent-taxonomy

Adjacent playbooks

  • Set up Skene for a PostHog codebase
  • Validate analytics in CI as part of code review
Skene

Product

How it worksFeaturesArchitectureIntegrationsSecurityPricing

Resources

DocumentationGlossaryPlaybooksBlog

Company

AboutOpen sourceContactPrivacyTerms
© 2026 Skene. All rights reserved.
Privacy PolicyTerms of Service
Skene