Plan-only GTM audit: detect monetization model, positioning, activation funnel, SEO/AEO and distribution, interview the founder one question at a time, emit a phased plan. Use when "GTM", "go-to-market", "get more users", "grow traffic", "should this be freemium". Execute → workflow-gtm.
Scanned 9/23/2026
Install to Claude Code
npx -y skills add kensaurus/cursor-kenji --skill plan-gtm --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Plan Gtm?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/kensaurus-plan-gtm)More formats (shields.io, HTML) on the badges page.
---
name: plan-gtm
description: >
Plan-only GTM audit: detect monetization model, positioning, activation
funnel, SEO/AEO and distribution, interview the founder one question at a
time, emit a phased plan. Use when "GTM", "go-to-market", "get more users",
"grow traffic", "should this be freemium". Execute → workflow-gtm.
license: MIT
---
# plan-gtm — Go-to-market audit + interview + plan
**Degree of freedom: MIXED.** Repo inventory greps and the interview rules
`[LOW freedom — run exactly]`; positioning, model fit, and channel choice
`[HIGH freedom]`. Stay **plan-only**: no copy, pricing, route, or license edits
until the founder approves a phase.
**Role:** Growth lead who reads code. The repo already tells you how the
product is sold; the founder tells you who it is for and what "growth" means
this quarter. Neither alone is a strategy.
**Task:** Inventory the repo, interview the founder, diagnose the gap between
how the product is marketed and how it should be, emit `plan-gtm.md` with a
phased burndown mapped to execution skills. **Change nothing until approved.**
## This skill vs neighbors
| Skill | Owns |
|---|---|
| **plan-gtm** (this) | Strategy: who, why-us, how-paid, which channels, what to measure |
| `workflow-gtm` | Executes the approved phases in order |
| `plan-pricing` | Value metric, tiers, price points — after this skill picks the model |
| `enhance-web-conversion` | Hero, pricing page, upgrade prompts (apply) |
| `enhance-onboarding` | First-session activation (apply) |
| `enhance-lifecycle-email` / `enhance-growth-loops` | Nudges and loops (apply) |
| `docs-launch-kit` / `docs-comparison-pages` | Launch posts; "X vs Y" pages (apply) |
| `audit-registry-listing` | README / npm / GitHub surface for repo-as-product |
| `iterate-gtm-weekly` | The weekly loop after Phase 4 |
| `enhance-web-seo` / `plan-aeo-readiness` | Classic search / AI-engine citation |
| `audit-analytics` | Whether the funnel is instrumented at all |
| `plan-aso` | App Store / Play listing (mobile) |
| `design-prd` | What to build next — not how to sell what exists |
| `workflow-grilling` | Generic interview; this skill uses its rules on GTM questions |
Do **not** fire for "write the landing page" (→ `enhance-web-landing`) or
"why is my SEO bad" alone (→ `enhance-web-seo`).
## How to reason (every finding)
1. **Observe** — quote the file, route, or copy that shows how the product is sold today
2. **Interpret** — what a first-time visitor and a first-time user actually experience
3. **Classify** — positioning / model / activation / discoverability / distribution / measurement
4. **Decide** — keep, tune, or switch; one execution skill; one metric that proves it
## Worked example
> **Observe:** `LICENSE` is MIT; `README` hero says "145 skills"; `/pricing`
> route absent; `posthog.init` in `layout.tsx`; no `activated` event; 3.6k npm
> downloads, 9 GitHub stars.
> **Interpret:** free forever with no ask; visitors count features, not
> outcomes; installs happen, nobody comes back or bookmarks.
> **Classify:** positioning (feature-count hero) + measurement (no activation
> event) + distribution (install ≠ retained).
> **Decide:** tune — lead the hero with the completion-gate outcome
> (`enhance-web-conversion`); define `activated` = first skill run in a real
> repo (`enhance-onboarding` + `audit-analytics`); monetization stays free
> until activation is measured. Metric: activated installs / week.
## Self-critique before the burndown [LOW freedom — do not skip]
1. **evidenced-not-assumed** — every inventory row cites file:line, a route, or a
number the founder supplied; "unmeasured" is written where no number exists
2. **decisions-are-theirs** — monetization model, license, ICP, and budget came
from the interview log in the founder's words, not from your recommendation
3. **one-metric** — the plan names one north-star and one activation event
4. **two-channels-max** — no plan lists five channels; each has a 2026 caveat
5. **plan-only** — no copy, pricing, route, robots, or license edits
6. **honest-growth** — no fake scarcity, upvote rings, fabricated testimonials,
or analytics before consent anywhere in the plan
7. **right-owner** — each phase hands to exactly one execution skill
---
## Step A — Repo inventory [LOW freedom — run exactly]
Grep before you ask. Record evidence per row.
| Area | Signals to grep / open | What it tells you |
|---|---|---|
| **Monetization** | `stripe`, `paddle`, `lemonsqueezy`, `polar`, `revenuecat`, `react-native-purchases`; `/pricing` route; `plan\|tier\|isPro\|premium\|entitlement\|paywall\|subscription`; `FUNDING.yml`, sponsor links; `ee/` or `enterprise/`; `docker-compose` + self-host docs | free / freemium / trial (opt-in vs card) / usage / open-core / hosted / donation |
| **License** | `LICENSE` header: MIT/Apache vs AGPL vs BSL/FSL/Elastic | permissive = adoption play; AGPL + commercial = open-core; source-available = cloud-defence, not OSI |
| **Positioning** | README H1 + first paragraph; landing `<h1>`; `<title>`, meta description, OG title | outcome vs feature-count; who it names; category it claims |
| **ICP signals** | docs audience, i18n locales, currencies, example data, screenshots | who the product already assumes |
| **Activation path** | `/signup`, `/login`, auth providers (OAuth / magic link / password); `onboarding`, `welcome`, `getting-started`, `checklist`, `sample`, `template`, `empty` states; steps between landing and first value | time-to-value in steps; signup wall before any value? |
| **Analytics** | `posthog`, `@amplitude`, `mixpanel`, `gtag`, `plausible`, `umami`, `@vercel/analytics`; `track(`, `capture(`; consent banner | is Visit→Signup→Activated→Paid measurable; consent-gated? |
| **SEO / AEO** | `robots.txt`, `sitemap*`, `llms.txt`, per-page title/description, JSON-LD, canonical, `/blog`, `/docs`, comparison pages | can search and answer engines find and cite it (baseline only — deep audit is `enhance-web-seo` / `plan-aeo-readiness`) |
| **Distribution assets** | README badges/hero image, `CHANGELOG.md`, `publishConfig` / PyPI, GitHub topics + stars, Product Hunt / HN / awesome-list links, newsletter, Discord/Slack, social handles | where it is already listed; what a share looks like |
| **Trust** | testimonials, logos, security/privacy/terms pages, status page, real screenshots | why a stranger would believe the claim |
| **Numbers** | npm/PyPI downloads, stars, store installs, analytics dashboards | fill in; otherwise write **unmeasured** |
Output an **Inventory table** — `Area | Current state | Evidence | Gap?`.
## Step B — Founder interview [LOW freedom — rules; HIGH freedom — depth]
Rules from `workflow-grilling`: **one question per turn**, **recommend an
answer with each**, **facts from the repo are never asked**, **log decisions
in the founder's words**. Walk the ladder in order; skip rungs the inventory
already answered.
1. **90-day goal metric** — recommend: activated users per week (pre-revenue)
or MRR (post-revenue). Not stars, not upvotes.
2. **Who exactly** — role + situation + what they use today instead. Recommend
the ICP the inventory implies.
3. **Current numbers and channels** — visits, signups, activation, paid,
where the last spike came from. Ask for the dashboard or CSV.
4. **Monetization intent** — stay free / freemium / trial / usage / open-core
/ hosted. Recommend from the model-fit table below; the choice is theirs.
5. **Budget** — hours per week and money per month for growth work.
6. **Geography and language** — which market first (e.g. JP vs EN).
7. **Alternatives** — the three things a buyer compares against.
8. **Constraints** — brand, legal, store policy, team, "never do X".
Stop when the plan can be written. Close with the **decision log**. If the
signup form has no "how did you hear about us" field, propose one in Phase 1
— it is the cheapest channel attribution that exists.
## Step C — Diagnose [HIGH freedom]
### Positioning (Dunford order — do not start at category)
competitive alternatives → unique attributes → value those attributes enable →
best-fit customers who care most → market category that makes it obvious.
Write one sentence: *For [ICP] who [situation], [product] is the [category]
that [value], unlike [alternative].* The hero, README first line, and meta
description must all be able to carry it.
### Monetization model fit
Free-to-paid, 2026 (ChartMogul × Kyle Poyar × ProductLed, ~200 self-serve products):
| Model | Good | Great | Fits when | Repo signals |
|---|---|---|---|---|
| Freemium | 3–5% | 8–12% | volume + network/viral loop; low marginal cost | free tier limits in code, `isPro` gates |
| Freemium, ungated (no account to try) | 7–9% | 8–12% | adoption is the goal; value visible in one session | demo mode, sample data, no auth on core route |
| Free trial, no card | 4–6% | 10–15% | B2B, value needs setup time | `trialEndsAt`, 14-day default |
| Free trial, card required | 25–35% | 50–60% | intent over volume; ACV justifies friction | Stripe Checkout before app |
| Reverse trial | 4–6% | 8–12% | not statistically better than the two above | premium-then-downgrade logic |
| Usage-based / hybrid (credits) | — | — | cost per action (AI, infra); expansion via usage; now 41% of B2B SaaS | metering tables, `credits`, Stripe metered prices |
| Open-core + hosted cloud | 0.5–2% self-host → paid; cloud carries 48–73% of revenue at public OSS vendors | — | painful to operate; enterprise SSO/RBAC/audit | AGPL + `ee/`, `docker-compose`, cloud signup |
| Donation / sponsorship | — | — | libraries and CLIs with no hosted surface; rarely sustains alone | `FUNDING.yml`, no billing code |
| Paid-only | — | — | niche pro tool, strong word of mouth | paywall before any value, no free plan |
Median across all models is 8%; a fifth of products convert under 2.5%.
"Freemium vs trial" is the wrong question: **adoption → open the product
before signup; conversion → require a card.** Activation inside the free
window explains most of the variance — fix activation before changing price.
Underpricing attracts the curious, not the committed. Never recommend a
license change as a growth tactic; relicensing cost Elastic and Redis
contributors and gained no revenue. Full rows and URLs:
`references/benchmarks-2026.md`.
### Activation and north-star
Reforge order: **Setup** (must-have info) → **Aha** (core value once) →
**Habit** (core action at its natural frequency). `activated` is the aha
event — not signup, not tour end, never payment (that kills it as a leading
indicator). A valid activation event shows ≥ 2× retention for users who hit
it; if analytics exist, pick the event combination that best predicts
3-month retention. Benchmarks: median B2B activation 37% (good = p60, great
= p80 for the product type); below 20% is a broken first session;
time-to-value over 24 h collapses activation under 25%; day-7 return ≥ 7% of
a new cohort is top quartile. Only about a third of PLG companies track
activation at all — an "unmeasured" cell here is finding #1.
Map the funnel **Visit → Signup → Activated → Habit → Paid → Refer** with a
number or **unmeasured** in each cell; group by organization for B2B.
### Channels — pick ≤ 2 primary + 1 loop
| Channel | Best for | 2026 caveat |
|---|---|---|
| Show HN | dev tools, OSS, infra | front page = 5–30k visits, 50–400 signups; >10 points only ~11% of posts; runnable thing, no signup wall, sober human-written post, answer every comment for 2 h |
| Product Hunt | consumer, design-led SaaS | featured rate ~10%; 1–2% visit→signup for B2B; credibility artifact, not acquisition; relaunch per major version |
| Reddit / niche communities | narrow ICP, B2B | value-first threads; link-only posts die |
| Content + comparison pages | anything searched | "X vs Y" / "alternatives to" pages took 78% of clicks from 28% of pages in one test; honest, current, unique per page — scaled AI pages are a Google spam-policy hit |
| AEO / answer engines | anything explained | earned third-party mentions earn ~6.5× more citations than owned pages; llms.txt has zero Search effect but coding assistants read it on docs sites → `plan-aeo-readiness` |
| Registries & directories | npm/PyPI packages, skills, plugins, extensions | discovery happens in the registry; README first 10 lines are the hero |
| Community (Discord/GitHub Discussions) | OSS, dev tools | retention and word-of-mouth, slow to start |
| Loops | all | "powered by" badge (0.5–3% conversion, near-100% exposure), templates users share, referral credit (SaaS referral rate ~4.75%); value before signup lifts referred conversion 2–5× |
Launch is a **cadence**, not an event: every meaningful release gets a post.
Name one **distribution hypothesis** in the plan — the failure mode is having
none, not picking the wrong one.
### Onboarding, pricing page, trust
Note gaps only; the fixes belong to `enhance-onboarding` and
`enhance-web-conversion`. Copy that reads generated → `plan-antislop`.
### Name the failure mode
Every finding maps to one: building before validating (43% of shutdowns are
PMF), generic hero, underpricing, no distribution hypothesis, activation
untracked or defined as payment, AI-generated content at scale, launching
once, reverse trial / AI credits as a fix. The list with sources is in
`references/benchmarks-2026.md`.
## Step D — Emit `plan-gtm.md`, end the turn [LOW freedom — run exactly]
```markdown
# GTM Plan — <product>
_Plan-only. Nothing changes until each phase is approved._
## Decision log (founder's words)
- Goal metric (90 d): …
- ICP: …
- Monetization: …
- Budget: … h/week, … /month
- Market/language: …
## Inventory verdict
| Area | Status | Worst gap | Evidence |
|------|--------|-----------|----------|
## Positioning statement
For … who …, <product> is the … that …, unlike ….
## Monetization verdict
keep / tune / switch — why, with the benchmark row it is judged against.
## Activation & north-star
- `activated` = … · north-star = …
| Visit | Signup | Activated | Habit | Paid | Refer |
|-------|--------|-----------|-------|------|-------|
| n | n | unmeasured | … | … | … |
## Channel plan (≤2 + loop)
| Channel | Why this ICP | Caveat | First action |
## Findings
| # | Area | Gap | Evidence | Sev | Direction |
## Phased burndown
- **Phase 1 — Measure & message** → `audit-analytics`, `enhance-web-conversion` (hero), `enhance-readme`; repo-as-product adds `audit-registry-listing`
- **Phase 2 — Activate** → `enhance-onboarding`, `audit-ui-states`, `enhance-web-forms`, `enhance-lifecycle-email` (activation nudges)
- **Phase 3 — Be found** → `enhance-web-seo`, `plan-aeo-readiness`, `docs-comparison-pages`
- **Phase 4 — Launch & loop** → `docs-launch-kit`, `enhance-growth-loops`, `iterate-gtm-weekly`
- **Phase 5 — Monetize** → `plan-pricing` (approve first), `enhance-web-conversion` (pricing, upgrade prompts), `enhance-lifecycle-email` (trial expiry), `audit-payment-system`
## 30 / 60 / 90
| Day | Metric | Target | Owner skill |
## Weekly GTM review (after Phase 4)
Funnel by source · activation cohort · top drop-off step · one experiment
shipped · one launch or post.
## Execution handoff
Approve a phase → `workflow-gtm` runs it and re-reads the funnel table.
```
## Guardrails
- **Plan only.** Inventory + interview + document.
- **Unmeasured is a value.** Never invent a conversion rate or traffic number.
- **No promised outcomes.** Rank, virality, and "10x signups" are not deliverables.
- **No dark patterns.** No fake scarcity, hidden cancel, confirm-shaming, upvote
solicitation, fabricated reviews, or analytics before consent.
- **Business decisions stay with the founder.** Model, price, license, ICP.
## Chains with
- **`workflow-gtm`** — executes the approved phases.
- **Growth gate** — pairs with `plan-aeo-readiness`, `plan-aso` in `docs/PLAN-LOOPS.md`.
- **`audit-analytics`** — run first when the funnel table is all "unmeasured".
- **`iterate-gtm-weekly`** — the weekly loop after Phase 4 (`iterate-post-launch` keeps production bugs).
> Plan with a strong model; execute with `composer-2.5-execution.mdc`.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!