{"id":51093555,"url":"https://github.com/clamp-sh/analytics-skills","last_synced_at":"2026-06-24T04:01:37.745Z","repository":{"id":353602880,"uuid":"1220043157","full_name":"clamp-sh/analytics-skills","owner":"clamp-sh","description":"Skills for AI agents to read web analytics like a senior analyst: diagnose traffic, judge channels, read funnels, declare typed events, and read A/B tests. Tool-maps for Amplitude, Clamp, GA4, Mixpanel, and PostHog.","archived":false,"fork":false,"pushed_at":"2026-06-11T10:10:51.000Z","size":306,"stargazers_count":6,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-11T12:08:42.024Z","etag":null,"topics":["agent-skills","analytics","claude","claude-code","claude-skills","llm-tools","mcp","product-analytics"],"latest_commit_sha":null,"homepage":"https://clamp.sh/docs/skills","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/clamp-sh.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-24T13:38:45.000Z","updated_at":"2026-06-11T10:12:14.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/clamp-sh/analytics-skills","commit_stats":null,"previous_names":["clamp-sh/analytics-skills"],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/clamp-sh/analytics-skills","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clamp-sh%2Fanalytics-skills","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clamp-sh%2Fanalytics-skills/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clamp-sh%2Fanalytics-skills/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clamp-sh%2Fanalytics-skills/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/clamp-sh","download_url":"https://codeload.github.com/clamp-sh/analytics-skills/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clamp-sh%2Fanalytics-skills/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34716326,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-24T02:00:07.484Z","response_time":106,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agent-skills","analytics","claude","claude-code","claude-skills","llm-tools","mcp","product-analytics"],"created_at":"2026-06-24T04:01:34.022Z","updated_at":"2026-06-24T04:01:37.739Z","avatar_url":"https://github.com/clamp-sh.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# analytics-skills\n\nAnalytics skills for Claude, Cursor, and other AI agents. Read web analytics like a senior analyst: diagnose traffic changes, judge channel quality, read funnels, declare typed events, and read A/B tests without the usual rookie mistakes. Ships with tool-maps for [Amplitude](tool-maps/amplitude.md), [Clamp](tool-maps/clamp.md), [GA4](tool-maps/ga4.md), [Mixpanel](tool-maps/mixpanel.md), and [PostHog](tool-maps/posthog.md); add your own under [`tool-maps/`](tool-maps/). The schema-authoring and experiment-reading skills are built on the open [Event Schema spec](https://github.com/clamp-sh/event-schema).\n\n## What's in the box\n\n| Skill | What it does |\n|---|---|\n| [`analytics-profile-setup`](skills/analytics-profile-setup/SKILL.md) | One-time interview that captures your business context (model, primary conversion, traffic range, ICP, data stack) into a local `analytics-profile.md`. Every other skill reads this file so answers are calibrated to your industry and scale. Run this first. |\n| [`analytics-diagnostic-method`](skills/analytics-diagnostic-method/SKILL.md) | The spine. Five-step method: load profile, frame the question, build a MECE hypothesis tree, triangulate, present with the Pyramid Principle. Covers signal vs noise and Simpson's paradox. Referenced by every other skill. |\n| [`traffic-change-diagnosis`](skills/traffic-change-diagnosis/SKILL.md) | Drill path for \"why did traffic change\". Fingerprints for tracking regressions, bot spikes, deploy-correlated drops, campaign ramps, SEO decay, and platform changes. Measurement checks first, always. |\n| [`channel-and-funnel-quality`](skills/channel-and-funnel-quality/SKILL.md) | Volume × engagement × conversion as a matrix. Vanity-traffic detection. Expected drop-off ranges per funnel step type. Mix-shift handling. Industry-specific benchmarks. |\n| [`metric-context-and-benchmarks`](skills/metric-context-and-benchmarks/SKILL.md) | What's a good bounce / engagement / duration / CVR / churn / LTV:CAC / activation, by model. When each metric lies. Minimum sample sizes before trusting a rate. |\n| [`event-schema-author`](skills/event-schema-author/SKILL.md) | Authors `event-schema.yaml` from existing `track()` calls. A portable, typed declaration of every product analytics event the codebase fires. The CLI generates a TypeScript type so call sites are autocompleted and type-checked at build time. Vendor-neutral; works with any analytics SDK. |\n| [`experiment-result-reader`](skills/experiment-result-reader/SKILL.md) | Read a running A/B test honestly. Pulls per-variant exposure and conversion counts, computes lift, applies sample-size and sequential-testing discipline, checks for mix-shift and sample-ratio mismatch, and returns a verdict with caveats instead of a false-positive. Reads the experiment from the `experiments:` section of `event-schema.yaml` when present. |\n| [`bayesian-experiment-reader`](skills/bayesian-experiment-reader/SKILL.md) | Bayesian counterpart to `experiment-result-reader`. Beta-Binomial for CVR, Normal-Normal for continuous. Returns P(variant beats control), credible intervals, and expected loss. Ship-decision rule: ship if P(better)\u003e95% AND expected loss \u003c tolerance, instead of \"stat sig yes/no.\" |\n| [`sequential-monitoring`](skills/sequential-monitoring/SKILL.md) | mSPRT and confidence sequences for honest peeking. Answers \"can I call this early?\" without α-inflation from looking at the dashboard every day. Pairs with both experiment readers. |\n| [`causal-query-classifier`](skills/causal-query-classifier/SKILL.md) | Pearl's three-rung hierarchy as a query classifier. Tags every analytics question as rung-1 (association), rung-2 (intervention), or rung-3 (counterfactual). Refuses to escalate rung-1 findings into rung-2 recommendations without an identification strategy. |\n| [`causal-dag-builder`](skills/causal-dag-builder/SKILL.md) | Emits a Mermaid causal DAG before answering \"did X cause Y\" on observational data. Applies the back-door criterion to pick the adjustment set. Surfaces confounders, mediators, and colliders explicitly instead of \"controlling for everything.\" |\n| [`causal-evidence-checklist`](skills/causal-evidence-checklist/SKILL.md) | Bradford Hill's 9 viewpoints as a rubric before recommending a rollback/ship action. Refuses \"high confidence\" verdicts when fewer than ~5 criteria pass. |\n| [`anomaly-detection-time-series`](skills/anomaly-detection-time-series/SKILL.md) | STL decomposition, Bayesian online changepoint detection, Prophet, quantile regression, SPRT, Granger causality. Use when `traffic-change-diagnosis` fingerprints match ambiguously, the change date is contested, or the user asks \"is this real?\" |\n\n## Install\n\n### Claude Code (recommended)\n\n```bash\n/plugin marketplace add clamp-sh/analytics-skills\n/plugin install analytics-skills@clamp-sh\n```\n\nSkills auto-load and become available as `/analytics-skills:\u003cname\u003e` when the task matches.\n\n### Other clients\n\n- **Cursor / Copilot / any [Skills-spec](https://skills.sh) client**: `npx skills add clamp-sh/analytics-skills`\n- **Codex CLI**: `git clone https://github.com/clamp-sh/analytics-skills.git` then `cp -R analytics-skills/skills/* ~/.codex/skills/`\n- **claude.ai**: download per-skill zips from the [latest release](https://github.com/clamp-sh/analytics-skills/releases) and upload via **Settings → Features → Skills**\n- **Manual (any Claude Code, no plugin)**: `git clone` then `cp -R skills/* ~/.claude/skills/`\n\n## Usage\n\nThese are model-invoked skills. You don't need to call them by name; just ask real analytics questions and Claude will load the relevant skill.\n\n**First run, on a new project:**\n\n```\nSet me up. I want the skills calibrated to my business.\n```\n\nThis loads `analytics-profile-setup`, walks a 5-minute interview, and writes `analytics-profile.md` to the repo root. Every subsequent question gets industry-aware answers.\n\n**After setup, ask real questions:**\n\n```\nTraffic dropped 30% on Tuesday. What happened?\n```\n\nLoads `traffic-change-diagnosis`. Walks the hypothesis tree (measurement → time-shape → channel → cohort → content), pulls numbers from your analytics source, returns a diagnosis. Not a screenshot of a chart.\n\n```\nIs our signup funnel broken? Pricing → checkout is converting at 14%.\n```\n\nLoads `channel-and-funnel-quality` and `metric-context-and-benchmarks`. Compares against expected step drop-off, slices by cohort, flags whether 14% is low, normal, or suspicious given your sample size and model.\n\n```\nOur bounce rate is 68%. Is that bad?\n```\n\nLoads `metric-context-and-benchmarks`. Handles the GA4 vs UA definition gotcha, looks up the relevant page-type range, flags the sample-size caveat if needed.\n\n## Supported analytics platforms\n\nThe skills are platform-neutral; per-platform MCP invocations live in [`tool-maps/`](tool-maps/). One file per supported analytics tool, all covering the same canonical 17-row workflow taxonomy.\n\n| Tool | Tool-map | Surface |\n|---|---|---|\n| [Amplitude](https://amplitude.com) | [`amplitude.md`](tool-maps/amplitude.md) | `query_amplitude_data` covers most rows; cohorts and experiments are dedicated tools |\n| [Clamp](https://clamp.sh) | [`clamp.md`](tool-maps/clamp.md) | dedicated MCP tool per row of the canonical taxonomy |\n| [GA4](https://analytics.google.com) | [`ga4.md`](tool-maps/ga4.md) | `run_report` for aggregate rows; funnels and cohort retention not exposed by the wrapper |\n| [Mixpanel](https://mixpanel.com) | [`mixpanel.md`](tool-maps/mixpanel.md) | `Run-Query` types (insights, funnels, flows, retention) |\n| [PostHog](https://posthog.com) | [`posthog.md`](tool-maps/posthog.md) | Trends/Funnels/Retention/Paths insights plus HogQL |\n\nThe full row-by-row coverage matrix is at [`tool-maps/capability-matrix.md`](tool-maps/capability-matrix.md). `analytics-profile-setup` records the active platform in `analytics-profile.md` under `tool_map:`; downstream skills load the matching tool-map automatically.\n\nUsing a different analytics source? The method still applies. Add a tool-map for it (see [`tool-maps/README.md`](tool-maps/README.md) for the template).\n\n## Contributing\n\nIssues and PRs welcome. See [CONTRIBUTING.md](CONTRIBUTING.md) for how to add a skill and the style conventions we follow.\n\n## License\n\nMIT. See [LICENSE](LICENSE).\n\n## References\n\nFrameworks and benchmarks the skills lean on:\n\n- **Method**: Minto's MECE and Pyramid Principle (1985), Simpson (1951) for the mix-shift trap, standard 95% CI sample-size rules for noise-vs-signal calls.\n- **Benchmarks**: [Unbounce 2024](https://unbounce.com/conversion-benchmark-report/) (57M conversions), [Wordstream 2025](https://www.wordstream.com/blog/ws/2025/05/21/search-advertising-benchmarks), [Ruler 2025](https://www.ruleranalytics.com/blog/insight/conversion-rate-by-industry/) (100M+ data points by industry), [Littledata Shopify 2023](https://www.littledata.io/benchmarks/shopify), [Imperva *Bad Bot Report*](https://www.imperva.com/resources/resource-library/reports/bad-bot-report/), [Mixpanel](https://mixpanel.com/blog/product-benchmarks/), [ChartMogul](https://chartmogul.com/reports/saas-benchmarks-report/), [David Skok SaaS Metrics 2.0](https://www.forentrepreneurs.com/saas-metrics-2/).\n- **Definitions**: GA4 metric definitions taken from [Google's docs](https://support.google.com/analytics/answer/12195621) (note: GA4 bounce rate is *not* the UA single-pageview bounce rate).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclamp-sh%2Fanalytics-skills","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fclamp-sh%2Fanalytics-skills","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclamp-sh%2Fanalytics-skills/lists"}