SkeneProductDevelopersUse casesMeasurePricingEventsAbout
Skene
Start free
For developers

The check that reads your pull request before your reviewer does.

Skene reviews every pull request on the repository you link it to, compares the diff against the instrumentation your team said should exist, and comments on the exact lines where a tracking call was removed or renamed.

If the PR is clean it passes and says so. That review is one line, and it is the one you should see most of the time.

Start free
SkeneTechnologies/skene-dashboard  #259changes requested
Sskene-aibotrequested changes
Skene Analytics Drift Review
Status:❌ This PR has 1 tracking issue (1 missing). See inline comments.
Issues
Medium — company_profile_saved missing at components/onboarding/CompanyProfileStep.tsx:89
How to fix
Inline comments include a Prompt to fix this block you can paste into a coding agent. /skene fix only restores tracking calls this PR removed; it cannot add new events.
components/onboarding/CompanyProfileStep.tsx1 comment
SkeneTechnologies/skene-dashboard  #259passed
Sskene-aibotcommented
✅ Skene analytics drift check passed. No tracking issues detected.
The archaeology problem

Your agent will delete tracking and your tests will still pass.

Nothing turns red when a tracking call disappears, so you find out three sprints later.

The line that records an event is a side effect. Coding agents are good at logic and indifferent to side effects, so when one refactors a checkout flow the posthog.capture rides along with the change and does not survive it.

The feature still works. The tests still pass. Nothing turns red. The events just stop arriving, and you find out three sprints later when someone asks why a chart looks wrong.

You can fix the code that afternoon. You cannot go back and collect the six weeks you missed.

Events/signup_completed
signup_completed · last 12 weeks0↓ 100%
What we write for you

The review carries the fix.

Where the fix pins to one contiguous span you get a suggestion you can commit, not a description and a ticket to write later.

You do not get a description of what broke and a ticket to write later. Where the fix pins to one contiguous span, it arrives as a GitHub suggestion you commit in one click. Where it cannot, because the change is too big or spans files, you get a copy-pasteable prompt for your coding agent instead.

Commenting /skene fix restores tracking calls the pull request removed. It cannot add an event that was never there.

src/checkout/handler.ts
what the agent wrote
async function completeSignup(user) {
Removed posthog.capture('account_created')
return redirect('/workspace')
}
what the check corrected
async function completeSignup(user) {
Added posthog.capture('signup_completed', {
Added plan_tier: user.plan
Added })
return redirect('/workspace')
Does it break anything

What it can and cannot do to your repository.

Four permissions, and nothing reaches your default branch without a pull request you merge.

Skene never pushes to your default branch. Everything it writes arrives as a pull request you review and merge yourself.

There are two checks and they work differently. The gate you can run in CI is a deterministic comparison: it returns the events your journey says should exist and do not. The pull request review is a model reading your diff against a policy, which is what lets it comment on the exact line and suggest a fix, and also what means it can be wrong.

You dismiss a review the way you dismiss any review. The deterministic check is the one to gate a merge on.

Being precise on purposeThe two paths share no code and can disagree. Calling the review incapable of a false positive would be describing the CI gate and pointing at the PR comment.
PermissionAccessUsed for
ContentsRead & writeReading your code and skene-context/ files; committing updates back through pull requests
Pull requestsRead & writeReading diffs, posting reviews, opening fix pull requests
IssuesRead & writeResponding to /skene fix comments
MetadataReadListing the repositories the installation can access
Noise budget

How often it comments.

A pull request that touches no instrumented code gets one line. The ones that get more are the ones you need to read.

Every pull request on the linked repository gets looked at. One that touches no instrumented code passes with a single line and nothing else, so the comments that say more are the ones where something you depend on actually changed.

Review activity collects on a Pull requests page in your workspace, so the history lives somewhere other than your notifications.

Pull requests/acme/checkout
Pull requestWhat the review said
#4812Touched no instrumented code. Passed with one line.
#4815Removed a tracked call. Commented on the exact line, with a fix.
Separation of duties

Who decides, and who fixes.

Your GTM team names what has to be trusted. Engineering reviews a pull request and writes no event names.

Your GTM team decides which funnels and lifecycle moments have to be trusted. Skene turns those into required instrumentation in the product, and tells you when a change breaks it. You get a specific finding on a specific line, with a fix you can read.

Nobody is asking engineering to own the reporting. They are asking you not to let it break silently, which is a smaller request and a much more reasonable one.

Journey/Ownership
WhoOwns
GTMWhich funnels and lifecycle moments have to be trusted
SkeneTurning those into required instrumentation, and saying which line broke it
EngineeringThe code, and a pull request to merge or dismiss
What you are never asked to do

No second analytics tool.

PostHog, Mixpanel, Amplitude and Segment keep receiving exactly what they receive today.

Skene protects the instrumentation that feeds PostHog, Mixpanel, Amplitude, Segment, and whatever else your team already runs. Your dashboards stay where they are and keep working the way they do.

On the database side the default connection is read-only, and read-only means schema only: table, column, and type definitions. It does not read row data and does not write. There is a read-write mode for automations, it is opt-in, and none of the checks need it.

Integrations/Where the data lands
  • PostHogKeeps receiving what it receives today
  • MixpanelUnchanged
  • AmplitudeUnchanged
  • SegmentUnchanged
Vendor risk

What you keep if we go away.

The core is MIT-licensed and runs with no Skene account and no service of ours behind it.

This is the question the open-source half exists to answer. The core is MIT-licensed and public at github.com/SkeneTechnologies/skene. It runs with no account, no connection to us and no service of ours behind it, against a model provider you supply, and it writes its output into your own repository as a plain YAML file. If Skene Cloud stopped tomorrow, the tool still runs.

Your product data stays in your own database. Uninstalling the GitHub App revokes every permission at the source, and anything already committed to your repository stays there.

bash
$pip install skene
$uvx skene analyse-journey .
Getting it on your repo

Three steps, and none of them is a package install.

Nothing enters your dependencies and nothing enters your lockfile.

The check runs as a GitHub App, not as something you add to your dependencies. There is nothing to import and nothing in your lockfile. The deterministic check is also reachable from CI as a job you add yourself, which runs on your own runner and fails the build rather than commenting. That is a different path from the review that writes on the pull request, and the note further down says why the difference matters.

Start free
01

Sign in

A magic link, no password. A workspace is created on first login.
02

Install the GitHub App

Pick the account, choose which repositories it can see, confirm the one you want. One source is enough to continue.
03

Turn on PR reviews

A switch under Settings, GitHub. From then on every pull request on that repository gets checked.
Or run it locally, with no account

The command-line tool is a different product.

Skene OSS runs on your machine and writes the journey it finds into your own repository.

Skene OSS is MIT-licensed, runs on your machine, and needs no Skene account. It reads a codebase and writes the journey it finds into your repository. It does not watch releases and it does not comment on pull requests: those are Cloud.

Skene OSS, and how to run it →

Which one do you want?

The PR check if you want releases watched and tracking restored on a pull request. That is this page.

Skene OSS if you want to point something at a repo right now and read the output yourself.

Skene

Product

How it worksMeasure what you shipFeaturesIntegrationsSecuritySupabasePricing

Developers

Developersvs coding agentsOpen sourceDocs

Resources

ResourcesGlossaryPlaybooksBlogReleases

Company

AboutCommunityEventsContactPrivacyTerms
© 2026 Skene Technologies. All rights reserved.
Skene