Skene
Product
Pricing
Docs
Blog
About
Log In
ProductPricingDocsBlogAbout
Log In
Documentation

Configuration

Drop a skene.config.json at the repo root. Skene reads it on every run.

Minimal config

{
  "libraries": ["posthog", "mixpanel"],
  "include": ["src/**/*.ts", "src/**/*.tsx"],
  "ignore": ["**/*.test.ts", "**/*.spec.ts"]
}
  • libraries: which analytics libraries to track. Defaults to all supported.
  • include: glob patterns Skene scans. Defaults to common source globs.
  • ignore: glob patterns Skene skips. Defaults to test and build outputs.

Accept an intentional change

Sometimes you mean to rename an event. The next run still flags it. Acknowledge once and Skene updates the baseline on merge.

{
  "accepted_changes": [
    {
      "from": "checkout_completed",
      "to": "checkoutCompleted",
      "reason": "renamed to match the new naming convention (2026-05-22)"
    }
  ]
}

Once merged, the new event becomes the baseline. Future PRs only flag drift from there.

Environment-specific rules

Different rules per environment. Skene picks the block matching SKENE_ENV at run time.

{
  "environments": {
    "production": {
      "ignore": ["src/dev/**", "src/scripts/**"]
    },
    "staging": {
      "ignore": []
    }
  }
}

Ignoring a single call

When a specific call is intentionally excluded from validation (debug logging, internal tooling), inline-comment it.

// skene-ignore: internal debug logging
posthog.capture('dev_debug', { ... })

Skene skips the line and notes the reason on the run.

What is next

  • Install Skene: pick a surface
  • What Skene catches: the five failure modes
  • Supported libraries: call shapes by library
Skene

Product

How it worksFeaturesArchitectureIntegrationsSecurityPricing

Resources

DocumentationGlossaryPlaybooksBlog

Company

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