agentleFS
moh-obaidamoh-obaida/ReadyVibe-Skills/skills/compliance/analytics-privacy/SKILL.md

analytics-privacy

Skill2 starsChanged 25 days agoApache-2.0View on GitHub

Use when a site includes analytics, advertising pixels, session replay, heatmaps, or a tag manager and you need to know what they collect, when they fire, and whether the disclosure and any consent gating match. It inventories vendors and personal-data exposure and verifies timing at runtime. Do not use it to install analytics, to certify a vendor as compliant, or to state that analytics needs or does not need consent without looking up the rule at an official source.

We split this skill into the rules it gives an agent

4 rules. About 0 are common, 3 are distinctive, and 1 is very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈3

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 1

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Not to choose or install an analytics product.

    line 21
  2. Very specific:

    Remove or minimize personal data sent to analytics (strip emails from URLs, stop identify with PII, mask replay inputs) when clearly …

    line 45
  3. Distinctive:

    Never add a new tracking tool, change analytics IDs, or alter business measurement without the owner's ask.

    line 47
  4. Distinctive:

    No analytics or trackers are present or observed ("no analytics found in source or runtime on the pages exercised.

    line 65

≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

analytics-privacy

"Analytics package exists" is not "analytics behavior is understood and appropriately disclosed or gated". This skill establishes what each measurement tool does.

Activate when

  • An analytics, ad, replay, heatmap, A/B, or tag-manager tool appears in source or network traffic.
  • Someone asks whether tracking is disclosed or gated, or is about to add a new tool.
  • Not to choose or install an analytics product. Not to rule on legal necessity.

Inspect

  1. Inventory (SOURCE-INDICATED). Snippets, SDK imports, framework integrations (Vercel Analytics, next/script with GTM), env vars naming property IDs, server-side event senders. For each: vendor, purpose (as documented), configuration (autocapture? session replay? IP handling? identify calls with user data? cross-site sharing? Google Signals/advertising features?). 1b. Telemetry and hidden measurement. Framework and platform telemetry that reaches vendors from the visitor's browser (web-vitals reporters, Vercel/Cloudflare analytics, Sentry performance/replay, feature-flag SDKs that phone home, error trackers capturing user context), plus fingerprinting-like signals (canvas/font/hardware probing, device-ID libraries). Treat each as a measurement tool: what does it send, when, and is it disclosed? IP address and user agent reach the vendor on every request.
  2. Runtime (OBSERVED). node scripts/observe-runtime.mjs --url <site> --settle 2000 (paths relative to this skill's folder). Read: vendors contacted at initial (before interaction), cookies with tracking-style names, and later snapshots after actions. Repeat on the key pages, not only the home page. Use --block-third-party to observe attempts safely; use a staging origin without it when the tag manager's downstream tags matter.
  3. What they receive. Look for personal data leaking to analytics: emails or names in URLs or query strings, user IDs sent via identify, form field contents captured by autocapture/replay, sensitive page content captured by replay (password fields, payment fields, health/finance data). With a local/staging form: run a submit step with --canary (planted fake identity) and check CANARY_SENT_TO_THIRD_PARTY and CANARY_IN_URL.
  4. Timing and gating. What fires before any choice? After reject? After accept? (consent-management owns the control; you own the measurement facts.)
  5. Disclosure. Compare with the privacy/cookie notice: is each observed vendor named, with purpose? Is anything claimed that does not occur ("we don't use analytics" while a pixel loads)?

Evidence that counts

Label each claim OBSERVED, SOURCE-INDICATED, DECLARED, INFERRED, UNKNOWN, or REVIEW REQUIRED. UNKNOWN is never a pass and never a failure.

  • Source says GA is configured: SOURCE-INDICATED. Network request seen at load: OBSERVED. Say which one you have.
  • The correct phrasing when only source exists: "Analytics integration is present; pre-consent gating has not been proven." Never "analytics loads before consent" without an observed request before a choice.
  • Vendor documentation (cookieless mode, IP anonymization) is DECLARED; it lowers concern only when configuration and traffic corroborate it.
  • Cookieless does not mean disclosure-free or rule-free: report the facts; applicability is REVIEW REQUIRED.
  • Legal specifics: never from memory. When a rule, deadline, threshold, or required wording matters, read the current text or guidance at an official source while you run (start from references/official-sources.md), cite the source and access date, and treat applicability to this business as REVIEW REQUIRED. If you cannot look it up, the answer is UNKNOWN.

May change

  • Correct disclosure text so it states the observed facts (vendor names, categories, purpose you verified), when the owner has confirmed intent. Leave retention periods and legal bases as marked gaps.
  • Remove or minimize personal data sent to analytics (strip emails from URLs, stop identify with PII, mask replay inputs) when clearly unintended.
  • Gate initialization behind the existing consent state (coordinate with consent-management) when gating is applicable or required by the owner.
  • Never add a new tracking tool, change analytics IDs, or alter business measurement without the owner's ask.

Must not claim

"Privacy-friendly", "anonymous", "compliant", "cookieless so no consent needed", or "no personal data is collected" unless you verified configuration and traffic, and even then only scoped to what you observed. IP addresses and device identifiers reach every contacted vendor; do not say otherwise.

Verify

Re-run the runtime timeline (load, reject, accept, reload). Confirm: vendor requests match the intended gating; no planted identity in analytics requests; replay masks sensitive inputs (observe the request payloads or the vendor's masking config in code); disclosure names the same vendors you observed.

Escalate

  • Personal or sensitive data observed reaching an analytics/advertising vendor: HIGH, REVIEW REQUIRED; stop the leak if the fix is clear, and tell the owner.
  • Session replay or ad pixels on pages with health, finance, children's, or account data: regulated-domain-triggers.
  • Advertising/remarketing pixels: consent and disclosure rules are strict in many markets; REVIEW REQUIRED.

No change is valid when

No analytics or trackers are present or observed ("no analytics found in source or runtime on the pages exercised; recheck if added"), or they are gated and disclosed correctly and verified. Do not add analytics to make a report "complete".

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.