October DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsPC HealthRecommendedCrashes, freezes, slowdowns? Check your PC nowSpot repairable issues before they interrupt work.Check PCOctober DealsAmazon USDeal season is back - check today's better picksAmazon US: current deals, useful picks and tech finds.See Picks×
Skip to content
World desk3 min

Plan-to-Code Analytics Drift: What the Python `plan-drift` CLI Checks

The plan-drift CLI is described as a read-only Python AST checker for events missing between an analytics plan and code. It flags dynamic names for review and does not validate property values or full types.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

An analytics tracking plan can say an event is implemented while the code never sends it—or the code can emit an event nobody planned. In a September 18, 2026 article, sunnydachs describes plan-drift, a Python-focused command-line tool that compares a JSON tracking plan with source code using static AST inspection. It reports both directions of drift, but it is not a runtime analytics validator: dynamic event names need human review, and property checking is limited.

What plan-to-code drift means

A tracking plan records the events a product expects to collect. Drift appears when that document and the instrumentation in the code stop agreeing. The mismatch can run either way:

  • Planned but absent: an event is listed in the plan, but the scanner finds no matching call in the inspected code.
  • Implemented but unplanned: the code contains an event absent from the plan.

The author frames the problem with a practical question: after an authentication flow changes, did the team add its tracking? A dashboard may reveal a missing event, but it does not by itself tell whether the event was omitted from code or whether the plan is out of date.

What the described CLI reports

According to sunnydachs’s description, the tool compares a JSON plan against Python source and reports four kinds of findings:

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  • UNEXPECTED EVENT: an event call appears in code but is not listed in the plan.
  • UNIMPLEMENTED EVENT: an event is in the plan but no matching call is found.
  • PROPERTY MISMATCH: property keys in the implementation differ from those specified in the plan, such as code sending an undeclared key.
  • DYNAMIC: an event expression cannot be resolved statically, so a person must review it.

The article’s sample output includes counts and file-and-line findings. Those examples illustrate the reported format; they are not population statistics or an independent test of the current repository.

How to run it, as described by the author

The examples in the article pass the plan path with --plan; the second command also supplies a source directory and requests JSON output:

  1. plan-drift --plan tracking-plan.json
  2. plan-drift --plan tracking-plan.json ./src --json

The author says test files such as tests.py and test_*.py are excluded so test fixtures are not treated as production instrumentation. The article describes a read-only scan of Python .py files. These are the author’s usage and behavior claims, not independently verified installation or execution instructions.

Why compare in both directions?

A one-way check can catch code that violates a plan, yet miss events that were planned and never wired up. Looking in both directions helps answer two separate maintenance questions: are planned events actually present, and has implementation changed without the plan changing too?

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The author suggests running checks after a tracking plan is drafted, as code changes, and in CI. The stated rationale is that deterministic, read-only AST analysis produces repeatable findings without asking an LLM to infer intent. As sunnydachs puts it: “Use deterministic tools for deterministic work.” That is the author’s design argument, not evidence of a measured accuracy advantage over other approaches.

What static AST inspection cannot establish

  • Language coverage: the described version targets Python. It does not directly inspect JavaScript or other languages.
  • Dynamic names: when a name is assembled dynamically, the tool flags it for human review rather than resolving it automatically.
  • Property correctness: the reported check concerns property keys. It does not validate property values or provide complete type matching.
  • Runtime delivery: finding a call in source is not proof that a real user flow executes it, that an SDK sends it successfully, or that an analytics pipeline receives it.

Those boundaries distinguish static source checks from runtime or event-pipeline validation. Teams with multiple languages, dynamic instrumentation patterns, or strict schema requirements would need complementary checks or manual review; the article does not establish how plan-drift compares empirically with alternative tools.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

What is known about the project

The source is sunnydachs’s article dated September 18, 2026, which links to a GitHub repository. Its current release, license, installation state, and subsequent changes are not established here. Treat the commands and capabilities above as the author’s description rather than a verified statement about the repository’s present state.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
Crashes, No Sound, or Screen Glitches?Free driver scan
Windows Errors? Fix Them Before They SpreadFree repair scan

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.