Market Validate
Turn a raw / half-baked idea into an evidence-backed validation report for an
independent developer (solo founder / OPC). Bias toward honest negatives
as much as positives. Prefer primary signals from real people complaining, paying,
or shipping — not generic “AI market size” fluff.
When not to use
- Ready for real user interviews (Mom Test) → prefer
z-customer-discovery
- Ready to test demand with a page + waitlist → prefer
z-landing-smoke
- Idea is already shipping and needs growth experiments (different skill later)
- Pure technical design / architecture (use eng planning skills)
- Legal/compliance deep dive only
Output language
Write the final report in the same language the user used for the idea
(Chinese → Chinese report; English → English). Keep source quotes in original
language with short translations when helpful.
Non-negotiables
- No empty confidence. Every major claim needs a source link or a clear “not found”.
- Seek disconfirming evidence. Actively search for “scam”, “hate”, “cancelled”, “alternative”, “too expensive”, “doesn’t work”.
- Indie lens. Score suitability for one person (scope, support burden, distribution, regulation, capital).
- Short-term return is hard. Call out when “quick money” claims are weak; prefer 30/90-day plausible paths over fantasy ARR.
- Do not invent numbers. If you cannot measure volume, say so and use qualitative bands.
- Tools are host-specific. Use whatever the host provides: web search, X/Twitter search, page fetch/browse, Reddit search, etc. If a channel is unreachable, mark it
blocked and continue.
- Evidence does not upgrade on handoff. Preserve whether a claim is a
secondary public signal, observed behavior, experiment result, search signal,
or assumption when another skill consumes it.
- The handoff is a fixed interface. End the primary report with one
seven-row Evidence handoff table using these exact labels:
Current decision, Evidence classes, Supported claims, Still unproven,
Contradictions / exclusions, Source anchors, and Next validation.
The class cell may contain only applicable names from primary behavior,
observed experiment, secondary public, search signal, and assumption;
put provenance and confidence qualifiers in the other fields.
Workflow
Phase 0 — Intake (≤ 5 questions if needed)
If the idea is too vague to search, ask only what blocks research. Prefer
inferring the rest and stating assumptions.
Minimum to proceed:
| Field |
Example |
| One-liner |
“AI that turns meeting notes into client invoices for freelancers” |
| Who suffers |
Freelancers / agencies / Chinese SMBs / … |
| Geography |
Global / US / CN / … |
| Rough shape |
SaaS / template / content / marketplace / CLI / mobile |
Optional (ask only if missing and material): willingness-to-pay guess, skills the
founder already has, hard constraints (no marketplace, no hardware, offline only).
Record assumptions explicitly in the report.
Phase 1 — Research frame (do this before searching)
Produce a short internal frame (can be in notes, not full user-facing yet):
- Problem statement (user pain in their words, not product words)
- Search query pack (8–20 queries), including:
- problem phrases (“I hate…”, “looking for…”, “alternative to…”)
- competitor / category names
- “vs”, “pricing”, “worth it”, “shutdown”, “refund”
- language variants (EN + local language if geography is CN or bilingual)
- Success signals (what would count as “real demand”)
- Kill signals (what would make this a no-go for an indie)
Read references/sources.md for channel tactics and query recipes.
Read references/report-template.md before writing the final doc.
Phase 2 — Multi-channel demand scan
Scan at least 4 channels when tools allow. Mark each channel status:
searched | partial | blocked | skipped (reason).
Default global stack (priority order):
| Priority |
Channel |
What to extract |
| 1 |
X / Twitter |
Recent complaints, wishlists, builder threads, pricing talk |
| 2 |
Reddit |
Subreddit pain posts, “how do you…”, competitor hate/love |
| 3 |
Hacker News |
Show HN, Ask HN, “who is hiring” is less useful; pain/launch comments |
| 4 |
Product Hunt |
Similar launches, upvotes as weak signal, comment objections |
| 5 |
Indie Hackers |
Revenue posts, failed builds, “I built X” retrospectives |
| 6 |
App Store / Play / G2 / Capterra (if category fits) |
1★ themes, feature requests |
| 7 |
SEO / public keyword pages |
Only if accessible; treat volumes as rough |
If user / idea is China-primary or bilingual, also scan when reachable:
| Channel |
Notes |
| 即刻 / 微博 / 小红书 / 知乎 / 抖音评论 |
Demand + trend language; watch for ad spam |
| V2EX / 少数派 / 即刻产品圈 |
Indie / tech-adjacent CN signal |
For each useful hit, capture a signal card:
- channel:
- url:
- date: (if known)
- quote/summary: (short)
- polarity: demand | praise | objection | churn | competitor | pricing | noise
- weight: high | med | low # high = recent + specific + emotional/paying intent
- indie_relevance: high | med | low
Aim for 12–30 signal cards, not 200 dumps. Prefer quality and diversity
(different channels and polarities).
Phase 3 — Competition & substitutes
Identify 3–8 alternatives people already use (including “do nothing”, Excel,
agencies, manual process). For each:
- Who it’s for
- Pricing (if public)
- Gaps people complain about
- Why an indie might still win a wedge (or why not)
Phase 4 — Scoring (explicit, humble)
Score each dimension 1–5 with one-line evidence. Midpoint (3) means mixed
or weak evidence — not “good”.
| Dimension |
1 |
5 |
Direction |
| Demand reality |
Almost no organic pain |
Frequent, specific, recurring pain |
higher = better |
| Willingness to pay |
Free-only / toy |
Clear paid substitutes or budget talk |
higher = better |
| Competition intensity |
Open field / weak substitutes |
Brutal giants + free tools everywhere |
higher = worse |
| Indie fit |
Needs team, heavy support, capital, heavy compliance |
Solo can ship + distribute MVP |
higher = better |
| Time-to-signal |
>6 months to know |
Can learn in days–weeks |
higher = better |
| Short-term return odds |
Near-zero in 90 days |
Plausible first paid outcomes in 30–90 days |
higher = better |
When averaging a composite, invert competition first: competition_fit = 6 - competition_intensity, then average the six “higher = better” values (demand, pay, competition_fit, indie, time-to-signal, short-term).
Also pick a recommendation band:
| Band |
Meaning |
| Build wedge now |
Enough pain + indie-shaped + learning path |
| Explore with spike |
Unclear; 1–2 week research/build spike only |
| Park / reshape |
Weak demand, bad indie fit, or only vanity market |
| Avoid (as stated) |
Kill criteria hit; only proceed if idea changes |
Never let a high “market size story” override empty primary signals.
Phase 5 — Indie short-term return judgment
Answer explicitly (no hedging without saying why):
- Commercial value? Yes / Mixed / Weak — in one paragraph with evidence.
- Fit for independent developer? Yes / Conditional / No — scope, support, channels, skills.
- Short-term return (30–90 days) odds? High / Medium / Low — what “return” means (first $100, first 10 users, consulting lead, etc.).
- If going deeper, best entry direction — pick one primary wedge + 1–2 backups; say what to ship first and what to measure.
Prefer wedges that are:
- Narrow ICP
- Manual-first or uglier MVP OK
- Distribution via communities already scanned
- Avoid winner-take-all platforms on day one
Phase 6 — Deliver the report
Use the structure in references/report-template.md. Apply
references/quality-bar.md before delivery.
Do not rename, split, or replace the template's seven Evidence handoff rows with
equivalent prose or custom fields.
Delivery options:
- Default: paste the full report in chat.
- If the user is in a product repo and wants a file: write
docs/z-market-validate-<slug>-<YYYYMMDD>.md (or path they specify).
End with:
- Top 5 evidence links
- Top 5 disconfirming links
- Next 48-hour actions (3 concrete tasks, not “keep researching forever”)
- Evidence handoff with supported claims, unproven claims, source anchors,
and the next validation
Method notes (anti-BS)
- Upvotes ≠ revenue. PH medals ≠ retention.
- Loud Twitter ≠ paying customers.
- “I’d use this” comments are cheap; “I pay for X and hate Y” is gold.
- Founder echo chambers overstate novelty; search the buyer’s habitat, not only builder habitats.
- If everything looks positive, you under-sampled objections — go back to Phase 2.
- If everything looks negative, separate “bad idea” from “bad positioning / wrong ICP”.
Guardrails
- Do not claim survey statistical significance from a few posts.
- Do not recommend illegal, spammy, or ToS-abusive growth tactics.
- Do not scrape behind logins if the host cannot; mark
blocked.
- Do not shame the user’s idea; be direct and constructive.
- If tools fail entirely, say so and give a manual research checklist from
references/sources.md instead of fabricating a report.
1---2name: z-market-validate-23description: Use when an independent developer needs public market research to decide whether an early product idea is worth deeper validation. Scans communities and competitors for demand, objections, alternatives, solo-founder fit, entry wedges, and a go, narrow, or stop recommendation.4---56# Market Validate78Turn a **raw / half-baked idea** into an evidence-backed validation report for an9**independent developer** (solo founder / OPC). Bias toward **honest negatives**10as much as positives. Prefer primary signals from real people complaining, paying,11or shipping — not generic “AI market size” fluff.1213## When not to use1415- Ready for real user interviews (Mom Test) → prefer `z-customer-discovery`16- Ready to test demand with a page + waitlist → prefer `z-landing-smoke`17- Idea is already shipping and needs growth experiments (different skill later)18- Pure technical design / architecture (use eng planning skills)19- Legal/compliance deep dive only2021## Output language2223Write the **final report in the same language the user used** for the idea24(Chinese → Chinese report; English → English). Keep source quotes in original25language with short translations when helpful.2627## Non-negotiables28291. **No empty confidence.** Every major claim needs a source link or a clear “not found”.302. **Seek disconfirming evidence.** Actively search for “scam”, “hate”, “cancelled”, “alternative”, “too expensive”, “doesn’t work”.313. **Indie lens.** Score suitability for **one person** (scope, support burden, distribution, regulation, capital).324. **Short-term return is hard.** Call out when “quick money” claims are weak; prefer 30/90-day *plausible* paths over fantasy ARR.335. **Do not invent numbers.** If you cannot measure volume, say so and use qualitative bands.346. **Tools are host-specific.** Use whatever the host provides: web search, X/Twitter search, page fetch/browse, Reddit search, etc. If a channel is unreachable, mark it `blocked` and continue.357. **Evidence does not upgrade on handoff.** Preserve whether a claim is a36 secondary public signal, observed behavior, experiment result, search signal,37 or assumption when another skill consumes it.388. **The handoff is a fixed interface.** End the primary report with one39 seven-row Evidence handoff table using these exact labels: `Current40 decision`, `Evidence classes`, `Supported claims`, `Still unproven`,41 `Contradictions / exclusions`, `Source anchors`, and `Next validation`.42 The class cell may contain only applicable names from `primary behavior`,43 `observed experiment`, `secondary public`, `search signal`, and `assumption`;44 put provenance and confidence qualifiers in the other fields.4546---4748## Workflow4950### Phase 0 — Intake (≤ 5 questions if needed)5152If the idea is too vague to search, ask only what blocks research. Prefer53inferring the rest and stating assumptions.5455Minimum to proceed:5657| Field | Example |58|-------|---------|59| **One-liner** | “AI that turns meeting notes into client invoices for freelancers” |60| **Who suffers** | Freelancers / agencies / Chinese SMBs / … |61| **Geography** | Global / US / CN / … |62| **Rough shape** | SaaS / template / content / marketplace / CLI / mobile |6364Optional (ask only if missing and material): willingness-to-pay guess, skills the65founder already has, hard constraints (no marketplace, no hardware, offline only).6667Record assumptions explicitly in the report.6869### Phase 1 — Research frame (do this before searching)7071Produce a short internal frame (can be in notes, not full user-facing yet):72731. **Problem statement** (user pain in their words, not product words)742. **Search query pack** (8–20 queries), including:75 - problem phrases (“I hate…”, “looking for…”, “alternative to…”)76 - competitor / category names77 - “vs”, “pricing”, “worth it”, “shutdown”, “refund”78 - language variants (EN + local language if geography is CN or bilingual)793. **Success signals** (what would count as “real demand”)804. **Kill signals** (what would make this a no-go for an indie)8182Read `references/sources.md` for channel tactics and query recipes.83Read `references/report-template.md` before writing the final doc.8485### Phase 2 — Multi-channel demand scan8687Scan **at least 4 channels** when tools allow. Mark each channel status:88`searched` | `partial` | `blocked` | `skipped (reason)`.8990**Default global stack (priority order):**9192| Priority | Channel | What to extract |93|----------|---------|-----------------|94| 1 | **X / Twitter** | Recent complaints, wishlists, builder threads, pricing talk |95| 2 | **Reddit** | Subreddit pain posts, “how do you…”, competitor hate/love |96| 3 | **Hacker News** | Show HN, Ask HN, “who is hiring” is less useful; pain/launch comments |97| 4 | **Product Hunt** | Similar launches, upvotes as weak signal, comment objections |98| 5 | **Indie Hackers** | Revenue posts, failed builds, “I built X” retrospectives |99| 6 | **App Store / Play / G2 / Capterra** (if category fits) | 1★ themes, feature requests |100| 7 | **SEO / public keyword pages** | Only if accessible; treat volumes as rough |101102**If user / idea is China-primary or bilingual, also scan when reachable:**103104| Channel | Notes |105|---------|--------|106| 即刻 / 微博 / 小红书 / 知乎 / 抖音评论 | Demand + trend language; watch for ad spam |107| V2EX / 少数派 / 即刻产品圈 | Indie / tech-adjacent CN signal |108109For each useful hit, capture a **signal card**:110111```text112- channel:113- url:114- date: (if known)115- quote/summary: (short)116- polarity: demand | praise | objection | churn | competitor | pricing | noise117- weight: high | med | low # high = recent + specific + emotional/paying intent118- indie_relevance: high | med | low119```120121Aim for **12–30 signal cards**, not 200 dumps. Prefer quality and diversity122(different channels and polarities).123124### Phase 3 — Competition & substitutes125126Identify 3–8 alternatives people already use (including “do nothing”, Excel,127agencies, manual process). For each:128129- Who it’s for130- Pricing (if public)131- Gaps people complain about132- Why an indie might still win a **wedge** (or why not)133134### Phase 4 — Scoring (explicit, humble)135136Score each dimension **1–5** with one-line evidence. Midpoint (3) means mixed137or weak evidence — not “good”.138139| Dimension | 1 | 5 | Direction |140|-----------|---|---|-----------|141| **Demand reality** | Almost no organic pain | Frequent, specific, recurring pain | higher = better |142| **Willingness to pay** | Free-only / toy | Clear paid substitutes or budget talk | higher = better |143| **Competition intensity** | Open field / weak substitutes | Brutal giants + free tools everywhere | **higher = worse** |144| **Indie fit** | Needs team, heavy support, capital, heavy compliance | Solo can ship + distribute MVP | higher = better |145| **Time-to-signal** | >6 months to know | Can learn in days–weeks | higher = better |146| **Short-term return odds** | Near-zero in 90 days | Plausible first paid outcomes in 30–90 days | higher = better |147148When averaging a **composite**, invert competition first: `competition_fit = 6 - competition_intensity`, then average the six “higher = better” values (demand, pay, competition_fit, indie, time-to-signal, short-term).149150Also pick a **recommendation band**:151152| Band | Meaning |153|------|---------|154| **Build wedge now** | Enough pain + indie-shaped + learning path |155| **Explore with spike** | Unclear; 1–2 week research/build spike only |156| **Park / reshape** | Weak demand, bad indie fit, or only vanity market |157| **Avoid (as stated)** | Kill criteria hit; only proceed if idea changes |158159Never let a high “market size story” override empty primary signals.160161### Phase 5 — Indie short-term return judgment162163Answer explicitly (no hedging without saying why):1641651. **Commercial value?** Yes / Mixed / Weak — in one paragraph with evidence.1662. **Fit for independent developer?** Yes / Conditional / No — scope, support, channels, skills.1673. **Short-term return (30–90 days) odds?** High / Medium / Low — what “return” means (first $100, first 10 users, consulting lead, etc.).1684. **If going deeper, best entry direction** — pick **one primary wedge** + 1–2 backups; say what to ship first and what to measure.169170Prefer wedges that are:171172- Narrow ICP173- Manual-first or uglier MVP OK174- Distribution via communities already scanned175- Avoid winner-take-all platforms on day one176177### Phase 6 — Deliver the report178179Use the structure in `references/report-template.md`. Apply180`references/quality-bar.md` before delivery.181182Do not rename, split, or replace the template's seven Evidence handoff rows with183equivalent prose or custom fields.184185Delivery options:1861871. **Default:** paste the full report in chat.1882. If the user is in a product repo and wants a file: write189 `docs/z-market-validate-<slug>-<YYYYMMDD>.md` (or path they specify).190191End with:192193- **Top 5 evidence links**194- **Top 5 disconfirming links**195- **Next 48-hour actions** (3 concrete tasks, not “keep researching forever”)196- **Evidence handoff** with supported claims, unproven claims, source anchors,197 and the next validation198199---200201## Method notes (anti-BS)202203- Upvotes ≠ revenue. PH medals ≠ retention.204- Loud Twitter ≠ paying customers.205- “I’d use this” comments are cheap; “I pay for X and hate Y” is gold.206- Founder echo chambers overstate novelty; search the buyer’s habitat, not only builder habitats.207- If everything looks positive, you under-sampled objections — go back to Phase 2.208- If everything looks negative, separate “bad idea” from “bad positioning / wrong ICP”.209210## Guardrails211212- Do not claim survey statistical significance from a few posts.213- Do not recommend illegal, spammy, or ToS-abusive growth tactics.214- Do not scrape behind logins if the host cannot; mark `blocked`.215- Do not shame the user’s idea; be direct and constructive.216- If tools fail entirely, say so and give a **manual research checklist** from `references/sources.md` instead of fabricating a report.