Best for
- "Spec event tracking for signup - activation"
- "UTM plan for the Q2 campaigns"
- "Tracking plan for the new pricing page"
gethouston/houston/store/agents/marketing/.agents/skills/measure-my-marketing/SKILL.md
Set up the measurement you need so you're not guessing. Pick what you need: an event tracking plan you can hand a developer, a full A/B test spec with hypothesis and sample size, or a weekly LinkedIn digest showing how your posts performed and who's worth engaging with.
Decision brief
One skill for every measurement job. scope param picks the output shape: a developer-ready event tracking spec, a rigorous A/B test doc, or a weekly LinkedIn performance digest. All grounded in your positioning so you measure what matters to your ideal customer, not vanity numbe…
Compatibility matrix
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/gethouston/houston --skill "store/agents/marketing/.agents/skills/measure-my-marketing"Inspect the Agent Skill "measure-my-marketing" from https://github.com/gethouston/houston/blob/10d9551da3a639803421a9004117f9e5633ce3a1/store/agents/marketing/.agents/skills/measure-my-marketing/SKILL.md at commit 10d9551da3a639803421a9004117f9e5633ce3a1. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
User names scope in plain English ("spec event tracking for signup", "A/B test for the pricing page", "LinkedIn digest", "how did my posts do") - infer. Ambiguous - ask ONE question naming all three options.
tracking-plan: - "Spec event tracking for signup - activation" - "UTM plan for the Q2 campaigns" - "Tracking plan for the new pricing page" - Called by plan-a-campaign when campaign needs events or UTMs that don't exist yet.
I run external work through Composio. Before this skill runs I check that the categories below are linked. Missing - I name the category, ask you to connect it from the Integrations tab, stop.
I read your marketing context first. For every required field that's missing I ask ONE plain-language question (best modality: connected app file drop URL paste) and wait.
1. Read positioning doc at context/marketing-context.md. If missing, tell user run set-up-my-marketing-info first and stop. 2. Read relevant config for scope - details in each branch below.
Permission review
No configured static risk pattern was detected
This is not proof of safety. Runtime behavior, indirect dependencies, and hidden external systems are outside the static scan.
Evidence record
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 83/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 91 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
One skill for every measurement job. scope param picks the output shape: a developer-ready event tracking spec, a rigorous A/B test doc, or a weekly LinkedIn performance digest. All grounded in your positioning so you measure what matters to your ideal customer, not vanity numbers.
scopetracking-plan - event-tracking plan (event name, trigger, properties, owner per step) plus a UTM matrix so paid / social / email are comparable in GA4 / your analytics. Output: tracking-plans/{slug}.md.ab-test - full test spec covering hypothesis (PICOT), control vs variant, primary + secondary metrics, sample-size estimate with MDE + power, duration, and go/no-go criteria. Output: ab-tests/{slug}.md.linkedin-digest - weekly digest of your own post stats (reach, engagement, new followers) plus notable network posts worth engaging with. Output: linkedin-digests/{YYYY-MM-DD}.md.User names scope in plain English ("spec event tracking for signup", "A/B test for the pricing page", "LinkedIn digest", "how did my posts do") -> infer. Ambiguous -> ask ONE question naming all three options.
tracking-plan:
plan-a-campaign when campaign needs events or UTMs that don't exist yet.ab-test:
audit-a-surface (surface=landing-page) when fixes flagged are non-obvious -> design test.linkedin-digest:
I run external work through Composio. Before this skill runs I check that the categories below are linked. Missing -> I name the category, ask you to connect it from the Integrations tab, stop.
tracking-plan (destination conventions) and ab-test (read baseline conversion rate and current traffic so the sample-size estimate isn't a guess). For tracking-plan: if "none" I spec a plan and recommend connecting PostHog (free tier) before shipping. For ab-test: required if you want a real estimate, optional if you paste the baseline.linkedin-digest (pull your post stats and your network's posts). No paste fallback exists for LinkedIn engagement data. Not needed for other scopes.If no analytics tool is connected for tracking-plan I keep going with the spec and call it out, but recommend connecting PostHog or GA4 before implementation.
If no analytics tool is connected for ab-test I stop and ask you to connect one, or paste your baseline conversion rate plus weekly traffic.
If LinkedIn isn't connected for linkedin-digest I stop and ask you to link it from the Integrations tab.
I read your marketing context first. For every required field that's missing I ask ONE plain-language question (best modality: connected app > file drop > URL > paste) and wait.
tracking-plan it tells me what counts as a meaningful event versus noise; for ab-test the hypothesis has to tie back to a real ideal customer pain or objection; for linkedin-digest I judge posts against your category and ideal customer. If missing I ask: "Want me to draft your positioning first? It's one skill, takes about five minutes."tracking-plan and ab-test. Why I need it: every flow ends in a measurable success event (tracking-plan); that's the test's primary metric (ab-test). If missing I ask: "What's the one event that means this flow worked, signup, activation, purchase, demo booked?"tracking-plan. Why I need it: tracking plans are scoped to one flow at a time. If missing I ask: "Which flow are we tracking, signup, activation, pricing-to-checkout, campaign attribution, or something else?"tracking-plan, only if you want a UTM matrix that names them. If missing I ask: "Which channels do you want UTM templates for, Google, Meta, LinkedIn, newsletter, organic social? If you don't have a list I keep going with the common defaults."ab-test. Why I need it: one variable per test, no multivariate hacks. If missing I ask: "Which one element are we testing, headline, hero image, CTA copy, pricing layout, trust badges, or something else?"ab-test. Why I need it: drives the sample-size calculation. If missing I ask: "What's the current conversion rate for this page or flow? If you don't have a number I keep going with assumptions and flag them."ab-test. Why I need it: turns sample size into "days of traffic." If missing I ask: "Roughly how many visitors hit this surface per week?"linkedin-digest. Why I need it: filters which network posts are worth engaging with. If missing I ask: "What topics do you want me to track, three to five themes you actually care about?"context/marketing-context.md. If missing, tell user run set-up-my-marketing-info first and stop.scope:tracking-planconfig/analytics.json, config/conversion.json, config/tracking-prefs.json if present. If analytics stack "none", flag tracking can be specced but not implemented - recommend connecting PostHog (free tier) or GA4 via Composio as minimum.eventName (snake_case, verb-led: signup_started, signup_completed, checkout_viewed, checkout_completed).trigger (UI action / server event / URL match).properties - 3-6 per event, minimum user_id, anonymous_id, timestamp, and flow-specific dimensions (plan, channel, referrer).destination - which tool (GA4 / PostHog / Mixpanel / Segment router / server).owner - who ship (solo founder -> "you"; else role).status - proposed / live / deprecated.utm_source - platform (google / meta / linkedin / reddit / newsletter / x).utm_medium - channel type (cpc / paid-social / email / organic-social / referral).utm_campaign - kebab-case {yyyy-qX}-{theme} (e.g. 2026-q2-founder-launch).utm_content - variant / creative slot (kebab-case).utm_term - keyword (search only).
Include filled example row per active channel from config/channels.json.tracking-plans/{slug}.md (*.tmp -> rename). Save naming conventions to config/tracking-prefs.json so future runs reuse.outputs.json - { id, type: "tracking-plan", title, summary, path, status: "ready", createdAt, updatedAt }.ab-testconfig/conversion.json (primary event + baseline rate if set), config/analytics.json (tool powering test).config/conversion.json.tracking-plans/ if exists), who QAs before launch.ab-tests/{slug}.md (*.tmp -> rename).outputs.json - { id, type: "ab-test", title, summary, path, status: "draft", createdAt, updatedAt }.linkedin-digestconfig/platforms.json, config/topics.json. Confirm LinkedIn in active and connectedViaComposio. If not connected, tell user link via Integrations tab and stop - skill needs API.composio search linkedin to find post-stats / list-own-posts tool. Execute. Pull user posts from last 7 days with:
config/topics.json. Keep top 5-10.linkedin-digests/{YYYY-MM-DD}.md atomically. Structure:
# LinkedIn Digest - week ending {YYYY-MM-DD}
## Your week
- Posts: {N}
- Impressions: {total} ({delta vs prior week})
- Engagement: {reactions} reactions . {comments} comments . {shares} shares
- New followers: {count or TBD}
- Best post: [{title or hook}]({url}) - {metric}
- Worst post: [{title or hook}]({url}) - {metric}
## What worked
- {one-line pattern, cited}
- {one-line pattern, cited}
## Network highlights
1. **{Author}** - {one-line post summary} ({URL})
Suggested action: {reply / react / ignore} . {why}
2. ...
---
## Notes
- Data freshness: pulled {ISO timestamp}
- Any TBDs: {list}
outputs.json - new entry, type: "linkedin-digest", path: "linkedin-digests/{YYYY-MM-DD}.md", status: "draft".tracking-plans/{slug}.md (scope=tracking-plan) + writes/updates config/tracking-prefs.jsonab-tests/{slug}.md (scope=ab-test)linkedin-digests/{YYYY-MM-DD}.md (scope=linkedin-digest)outputs.json with matching type: "tracking-plan" | "ab-test" | "linkedin-digest".Alternatives
alirezarezvani/claude-skills
App Store Optimization (ASO) toolkit for researching keywords, analyzing competitor rankings, generating metadata suggestions, and improving app visibility on Apple App Store and Google Play Store. Use when the user asks about ASO, app store rankings, app metadata, app titles and descriptions, app store listings, app visibility, or mobile app marketing on iOS or Android. Supports keyword research and scoring, competitor keyword analysis, metadata optimization, A/B test planning, launch checklist
aaron-he-zhu/aaron-marketing-skills
Use when the user asks to "write the email", "draft subject lines", or "build email creative"; produces the pre-click unit — subject-line variants + preheader, body copy, one clear CTA, and a plain-text alt — message-matched to the destination page and claims-ledger-aware. Not for pre-scoring or ranking subject-line variants (spam/truncation/render pre-score) — use subject-line-lab; not for scoring the email or computing EQS — use email-quality-auditor; not for the multi-step flow — use email-se
dotnet/skills
Diagnoses and fixes skills in the dotnet/skills repository that lose to their own baseline, fail to activate, time out, or return "no credible improvement". Use when an evaluation verdict is a regression or underpowered, when a skill regressed after a change, when /evaluate reports no results, or when deciding whether a weak skill should be strengthened or retired. Do not use for scaffolding a brand-new skill (use create-skill) or a brand-new eval (use create-skill-test).
nowork-studio/NotFair
Optimize title tags, meta descriptions, Open Graph, and Twitter cards for maximum click-through rate. Generates multiple A/B test variations with character counting and SERP preview. Use when asked to "optimize title tag", "write meta description", "improve CTR", "Open Graph tags", "fix my meta tags", "social media preview", "my click rate is low", "title optimization", or any meta tag task.