agentleFS
sofyanjamilsofyanjamil/growth-engine/skills/market-validate/SKILL.md

market-validate

Skill0 starsChanged 6 months agoMITView on GitHub

Use when validating a product, scoring market viability, or producing investor-ready market analysis for the current codebase. Runs all 8 frameworks (validation, business model, financial, competitive, metrics, data sources, AI landscape, funding) against the detected product and emits a PROCEED/PIVOT/KILL verdict with a 1-10 score, plus full narrative MD + dashboard HTML.

  • Reads credentials

The file

We split this skill into the rules it gives an agent

11 rules. About 0 are common, 3 are distinctive, and 8 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈3

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 8

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Before asking the user anything, scan:

    line 18
  2. Very specific:

    If found, WebFetch the live URL to extract: hero, features, pricing, social proof, blog topics if any.

    line 32
  3. Very specific:

    After auto-scan, the skill identifies gaps and asks 5–10 questions max via AskUserQuestion.

    line 37
  4. Distinctive:

    Use detected codebase + live-URL signals to anchor questions.

    line 47
  5. Very specific:

    Run all 8 frameworks from ${CLAUDE_PLUGIN_ROOT}/references/frameworks/:

    line 64
  6. Very specific:

    Only generated if --md-only flag is NOT set.

    line 133
  7. Very specific:

    Look for tailwind.config.{js,ts} → extract colors + fonts.

    line 136
  8. Very specific:

    Look for :root { --color-* } CSS variables in any *.css under src/ or styles/.

    line 137
  9. Very specific:

    Look for theme.{js,ts} in styled-components or emotion setups.

    line 138
  10. Very specific:

    Write these so content-month and seo-engine inherit them:

    line 147
  11. Distinctive:

    After running, the skill should self-check:

    line 180

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

market-validate

End-to-end market validation. Produces ./growth/01-research/.

When to invoke

  • User asks: "validate this product", "is this idea worth building", "run a market analysis", "should I keep building this".
  • Invoked by the /growth orchestrator as phase 1 of 3.
  • Standalone via /growth-market.

Inputs the skill auto-detects

Before asking the user anything, scan:

  1. Repo signals:
    • README.md (root + any other) — product description, tagline, audience hints.
    • package.json — description, homepage, keywords, dependencies (reveal stack / category).
    • .planning/ — if present, scan PROJECT.md, ROADMAP.md, current milestone files for explicit positioning, ICP, pricing.
    • /docs, /marketing, /content — any in-repo marketing copy.
    • src/app/page.* / src/pages/index.* / index.html — extract hero copy, value prop.
    • Any pricing.md, pricing.json, tiers.* files.
    • Locale files (messages/*.json, locales/*, i18n/*) — reveal target markets.
  2. Live URL (if findable):
    • package.json homepage field.
    • Linked URLs in README.
    • .env.example / .env.production — NEXT_PUBLIC_SITE_URL, VITE_SITE_URL, etc.
    • If found, WebFetch the live URL to extract: hero, features, pricing, social proof, blog topics if any.
  3. Optional user brief — if the orchestrator passed a --brief "..." arg, use it.

Adaptive Socratic questioning

After auto-scan, the skill identifies gaps and asks 5–10 questions max via AskUserQuestion. Focus on what is NOT inferable from code/site:

  • ICP confirmation (you saw segment X — confirm or refine).
  • Pricing model + tiers (if not visible).
  • Top 3 competitors the user actively watches.
  • North-star metric the user cares about (signups / revenue / retention / impressions).
  • Founder/team context (solo, side project, funded — affects financial framework).
  • Any market/regulatory constraints (e.g. education vertical, fintech).
  • Anything explicitly OFF the table (e.g. "I refuse to compete on price").

Use detected codebase + live-URL signals to anchor questions. Never ask things the skill could have inferred.

Under --auto mode

Skip this entire questioning phase. For each question that would have been asked, infer the most plausible answer from auto-detected signals and record the inferred value + source in a top-level ## Auto-mode assumptions section at the END of research.md.

Example log entries:

  • "ICP inferred: Israeli high-school CS students preparing for 5-unit Bagrut. Source: trilingual locale files (he/ar/en), .planning/PROJECT.md line 14, hero copy."
  • "Pricing inferred: two-tier ~99₪ basic + premium. Source: .planning/PROJECT.md, no live pricing page."
  • "Competitors inferred: <Comp-A>, <Comp-B>, <Comp-C>. Source: WebSearch for category + Reddit threads. Mark as low-confidence."
  • "North-star metric inferred: paying users (from explicit 2500-user target in plugin invocation). Source: orchestrator args."
  • "Founder context inferred: solo builder. Source: git log author uniformity + .planning notes."

Confidence-tag every inferred value as high / medium / low. Anything low should appear in verdict.json top_risks[] so the user sees what's uncertain.

Framework battery (full, every run)

Run all 8 frameworks from ${CLAUDE_PLUGIN_ROOT}/references/frameworks/:

  1. 01-market-validation.md — Lean Startup hypothesis, Sean Ellis PMF test (40% must-have), Validation Board.
  2. 02-business-models.md — Business Model Canvas (9 blocks), Porter's 5 Forces, SWOT.
  3. 03-financial-analysis.md — Unit economics, CAC/LTV plausibility, runway, pricing sensitivity.
  4. 04-competitive-analysis.md — Direct competitors, indirect competitors, alternatives, defensive moats.
  5. 05-startup-metrics.md — PMF signals, retention curves, viral coefficient potential, SaaS metrics if applicable.
  6. 06-data-sources.md — Which real-world data sources support / refute the thesis.
  7. 07-ai-tools.md — AI landscape context: what AI advantages does the product have, what AI threats.
  8. 08-funding-planning.md — Bootstrappable vs needs funding, valuation comparables, signal-to-investors.

For each framework: read the reference file, apply to the product, produce a 3-5 paragraph section in research.md.

External research (free sources only)

During analysis:

  • WebSearch: top 3-5 competitors by category, recent industry reports, Reddit/HN threads on the problem space.
  • WebFetch: competitor homepages, pricing pages, G2/Capterra/Trustpilot review pages (if accessible), top Reddit threads found.

Surface findings directly in research.md with citations (link inline).

Outputs

./growth/01-research/research.md

Structure:

# Market Validation: <Product Name>

## Executive Summary
(One paragraph: what is the product, who it's for, the verdict, the score, the headline reason.)

## Product Snapshot
- Name, category, primary market, URL if any.
- Inferred ICP (segment + persona detail).
- Inferred positioning + value prop.

## Framework Analysis
### 1. Market Validation
### 2. Business Model
### 3. Financial Analysis
### 4. Competitive Analysis
### 5. Startup Metrics
### 6. Data Sources
### 7. AI Landscape
### 8. Funding Strategy

## Competitor Teardown
Top 3-5 with: positioning, pricing, strengths, weaknesses, what they do that you should learn from.

## PMF Signals
Concrete leading indicators to watch.

## Top Risks (3-5)
With severity + mitigation each.

## Top Opportunities (3-5)
With leverage + concrete action each.

## Verdict
PROCEED / PIVOT / KILL — with 2-4 sentence rationale.

## Score: X.X / 10
With 1-sentence per dimension breakdown.

## Sources
Numbered list of all external URLs cited.

./growth/01-research/research.html

Only generated if --md-only flag is NOT set. Rendered styled to codebase design tokens.

Codebase style detection:

  1. Look for tailwind.config.{js,ts} → extract colors + fonts.
  2. Look for :root { --color-* } CSS variables in any *.css under src/ or styles/.
  3. Look for theme.{js,ts} in styled-components or emotion setups.
  4. Fall back to default editorial dark (deep indigo #0f1226 bg, teal #1e88a8 accent, soft cream text).

HTML structure: single-page with nav anchored to sections, expandable framework cards, verdict callout box at top, sources at bottom.

./growth/01-research/verdict.json

Conform to ${CLAUDE_PLUGIN_ROOT}/references/output-schemas.md §1.

Sidecar writes to shared references/

Write these so content-month and seo-engine inherit them:

  • ./growth/references/icp.md — synthesized ICP: segment, demographics, psychographics, jobs-to-be-done, top 3 pains, top 3 desired gains, where they hang out online.
  • ./growth/references/positioning.md — positioning statement: For [ICP] who [need], [product] is the [category] that [unique value], unlike [alternatives], we [differentiator].
  • ./growth/references/competitors.md — top 3-5 competitors with positioning + pricing + URLs (used by seo-engine for /vs and /alternatives pages).

Scoring rubric (the score)

Score 1-10 = average of 5 dimensions, each 1-10:

DimensionWhat it measures
Market size + timingTAM/SAM, growth, urgency, regulatory wind
Pain intensityHow painful + frequent is the problem for the ICP
Product-solution fitDoes this solution actually solve the pain
DefensibilityMoats, network effects, switching costs, brand
Go-to-market plausibilityCan a solo/small team realistically reach the ICP profitably

Verdict thresholds:

  • 8.0+: PROCEED (high confidence)
  • 6.0–7.9: PROCEED with notes (specify the conditions)
  • 4.0–5.9: PIVOT (which dimension is broken, what direction)
  • < 4.0: KILL (or major reframe)

Flags

  • --auto — unattended mode. Skip Socratic Q&A entirely; infer all values from auto-detected signals; log assumptions in research.md § Auto-mode assumptions; low-confidence inferences appear as top_risks[] in verdict.json.
  • --md-only — suppress research.html generation.
  • --brief "..." — user-supplied product description (skips some auto-detection).
  • --url <url> — override live URL detection.

Verification

After running, the skill should self-check:

  • research.md ends with a verdict and a numeric score.
  • verdict.json is valid against the schema in output-schemas.md §1.
  • research.html exists (unless --md-only).
  • references/icp.md, positioning.md, competitors.md are all written.
  • All external URLs cited in ## Sources resolved successfully during research.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.