Install
$ agentstack add skill-clamp-sh-analytics-skills-analytics-profile-setup ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
Analytics profile setup
What this skill does
Produces a single file, analytics-profile.md, in the repo root. The file captures the handful of facts every other analytics skill needs to stop giving generic advice:
- Industry and business model (B2B SaaS, B2C subscription, ecommerce, lead-gen, content/ads, marketplace)
- Primary conversion event
- Rough traffic volume (sets sample-size expectations)
- ICP / target persona
- Pricing model (what LTV and CAC even mean for them)
- Data stack (which analytics tool, which events are tracked, known gaps)
- Known measurement quirks (bot filters on or off, UTM conventions, cross-domain tracking)
Downstream skills (analytics-diagnostic-method, traffic-change-diagnosis, channel-and-funnel-quality, metric-context-and-benchmarks) open by checking for this file. If it exists, they pull their defaults from it. If it doesn't, they fall back to generic cross-industry assumptions and prompt the user to run this skill.
When NOT to run this
- The user is asking a one-off question and doesn't want ceremony. Answer the question; don't volunteer the setup.
- A profile already exists and is less than ~6 months old. Re-running overwrites useful context. Only re-run if the user explicitly asks, or the business has materially changed.
Method
Five phases. Keep it tight: the whole thing should take the user 5 minutes.
Phase 1. Check for an existing profile
ls analytics-profile.md
If it exists:
- Read it.
- Summarize what's already captured in 3-5 bullet points.
- Ask: "Do you want to (a) keep it as-is, (b) update specific fields, or (c) regenerate from scratch?"
Don't just overwrite. A stale profile is usually 80% still correct.
Phase 2. The interview
Ask one question at a time. Wait for the answer. Do not batch-ask. Agents that dump 8 questions at once get fragmented replies and force the user to re-read the whole block.
Use this question order. The reasoning for each question is in parentheses so the agent knows why it matters and can adapt phrasing if the user gives a partial answer.
Q1. What does your business do, in one sentence? (Anchors everything. If they say "developer tools SaaS", that alone sets ~6 defaults.)
Q2. Which best describes your model? Options:
- B2B SaaS (self-serve)
- B2B SaaS (sales-led)
- B2C subscription / consumer app
- Ecommerce (physical or digital goods)
- Lead generation (services, agencies, real estate, finance)
- Content / ad-supported
- Marketplace (two-sided)
- Other (ask them to describe)
(Determines which benchmark table to pull from. B2B Tech ~1.5% CVR vs ecommerce ~1.4% vs lead-gen ~2.9% are all "average" but they're different numbers for different funnels.)
Q3. What's the single most important conversion event? Examples: paid signup, free trial start, demo booked, purchase completed, qualified lead captured, app install. (The "north star event" for every conversion analysis. Without it, the agent guesses.)
Q4. Roughly how much traffic per month? Ranges:
- Model:
- Primary conversion event:
- ICP:
Scale
- Monthly traffic (sessions):
- Pricing:
- Payback / contract norm:
Stack
- Analytics tool(s):
tool_map:- Known measurement gaps:
Calibration defaults
- Relevant benchmark row:
- Min daily sessions for reliable trend:
- Activation target:
- Churn framing:
Top open question
>
Notes
## Trap: interview fatigue
If the user is terse ("just figure it out") or you can already infer answers from the repo (e.g. a `package.json` with `@clamp-sh/analytics` + Stripe SDK strongly suggests B2B SaaS), skip to Phase 3 with inferred defaults and ask *only* Q3 (primary conversion) and Q9 (top open question). Those two can't be inferred. Show the user the inferred profile and let them correct it.
## Trap: stale profile
The profile is not a live document. Re-read it at the start of each session but treat anything over 6 months old as stale. If a downstream skill detects that the numbers in the profile don't match what the analytics tool is actually reporting (e.g. traffic range says .md`:
- The traffic-overview row confirms actual monthly traffic (vs self-reported Q4).
- The channel-split row confirms the tool is picking up the major channels the user mentioned.
- The event-firing-check row confirms the primary conversion event is actually being fired and named consistently.
Surface discrepancies: "You said primary conversion is paid signup but I don't see a `signup_paid` event being fired; only `signup_free`. Is that event tracked under a different name?"
## Tool-map fallback for legacy profiles
Profiles written before tool-maps existed don't have a `tool_map` field. When a downstream skill reads such a profile, it should default to `clamp` and surface a one-line nudge: "Profile is missing `tool_map:`, defaulting to `clamp`. Re-run `analytics-profile-setup` to set it explicitly." This keeps existing setups working without forced migration.
## Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- **Author:** [clamp-sh](https://github.com/clamp-sh)
- **Source:** [clamp-sh/analytics-skills](https://github.com/clamp-sh/analytics-skills)
- **License:** MIT
- **Homepage:** https://clamp.sh/docs/skills
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.