Skip to content
Business
Skill

/idea-scoring

Aggregates all dimension scores into a final idea score (0–100) and issues a verdict. Implements a multiplicative-floor algorithm with Riskiest Assumption Test (RAT). The final output of every validation workflow.

BOOST
From plugin
idea-validation-agents
47915 skills
Install
$ npx -y skills add MaxKmet/idea-validation-agents --skill idea-scoring --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/idea-scoring

Context preview

The summary Claude sees to decide when to auto-load this skill.

Aggregates all dimension scores into a final idea score (0–100) and issues a verdict. Implements a multiplicative-floor algorithm with Riskiest Assumption Test (RAT). The final output of every validation workflow.

SKILL.md

idea-scoring.SKILL.md
name: idea-scoring
description: Aggregates all dimension scores into a final idea score (0–100) and issues a verdict. Implements a multiplicative-floor algorithm with Riskiest Assumption Test (RAT). The final output of every validation workflow.

<!-- version: 0.2.0 | outputs: memory/ideas/<slug>/scores.json -->

Skill: idea-scoring

Purpose

Produce a single, defensible verdict on an idea by aggregating all available dimension scores using a **multiplicative-floor algorithm** — a single catastrophic weakness kills the score, just like it kills a real startup. Includes a **Riskiest Assumption Test (RAT)** to convert the verdict into a concrete next action.

Input

  • Idea slug
  • One or more of the following (uses whatever is available):
  • `memory/ideas/<slug>/idea.md`
  • `memory/ideas/<slug>/desire_scores.json`
  • `memory/ideas/<slug>/competitors.json`
  • `memory/ideas/<slug>/pricing.json`
  • `memory/ideas/<slug>/cac.json`
  • `memory/ideas/<slug>/market_size.json`
  • `memory/ideas/<slug>/distribution.json`
  • `memory/ideas/<slug>/retention.json`
  • `memory/ideas/<slug>/complexity.json`
  • `memory/ideas/<slug>/weighted_signals.json`
  • Optional: `memory/user_profile.md` (for founder-market fit)

Minimum Viable Input

At least **3 of 7 dimensions** must have source data. If fewer are available, refuse to score and list what's missing. Two dimensions are **mandatory** — Demand and Distribution. Without evidence of a real problem and a path to reach users, scoring is meaningless.

Scoring Dimensions

| Dimension | Weight | Source | What it measures | |---|---|---|---| | Demand | 20% | `desire_scores.json` + `weighted_signals.json` + `idea.md` | Real human desire + validated market signals | | Competition | 10% | `competitors.json` | Positioning gaps and defensibility | | Monetization | 20% | `pricing.json` + `cac.json` + `market_size.json` | Unit economics viability (LTV:CAC, WTP, market size) | | Distribution | 20% | `distribution.json` | Organic reach, paid viability, founder edge | | Retention | 15% | `retention.json` | Habit formation, churn risk, usage frequency | | Founder-Market Fit | 15% | `user_profile.md` + domain overlap with idea | Builder's edge, domain expertise, distribution advantage |

Dimension Score Mapping

Each dimension maps source data to a 0–100 sub-score using the rubrics below. When source data uses qualitative labels, apply these conversions.

Demand (0–100)

| Condition | Score range | |---|---| | `desire_strength_label` = "strong" AND trend_velocity = "rising-fast" | 80–100 | | `desire_strength_label` = "strong" OR trend_velocity = "rising" | 60–79 | | `desire_strength_label` = "moderate" AND some signal validation | 40–59 | | `desire_strength_label` = "weak" OR trend_velocity = "declining" | 15–39 | | No signal data, speculation only | 0–14 |

Adjust within range: +10 if cross-platform resonance confirmed, +5 if monetization_validated is true in `idea.md`.

Competition (0–100)

Higher = more favorable competitive landscape (counterintuitive — think of it as "opportunity score").

| Condition | Score range | |---|---| | `market_saturation` = "low", clear positioning gaps, no dominant incumbent | 75–100 | | `market_saturation` = "medium", 1–2 positioning gaps identified | 50–74 | | `market_saturation` = "high" but differentiation opportunities exist | 25–49 | | `market_saturation` = "high", no differentiation, dominant incumbents | 0–24 |

Adjust: +10 if top competitor complaints reveal an unserved pain point. -15 if a FAANG-class player owns the category.

Monetization (0–100)

| Condition | Score range | |---|---| | LTV:CAC ≥ 3:1 on at least 2 channels, WTP target ≥ $5/mo, viable SOM | 80–100 | | LTV:CAC ≥ 3:1 on 1 channel, WTP target ≥ $3/mo | 60–79 | | LTV:CAC ≥ 2:1, WTP target $1–$3/mo, marginal unit economics | 35–59 | | LTV:CAC < 2:1 OR viability_verdict = "not-viable" | 10–34 | | No pricing data or CAC data | 0–9 (flag as missing) |

Adjust: +10 if `freemium_conversion_estimate` > 5%. +5 if market_size_verdict = "large".

Distribution (0–100)

| Condition | Score range | |---|---| | `distribution_verdict` = "strong", viral_loop_exists = true | 80–100 | | `distribution_verdict` = "strong" OR (organic_reach = "high" + creator_economy_fit = "high") | 60–79 | | `distribution_verdict` = "moderate", at least one viable organic channel | 40–59 | | `distribution_verdict` = "weak", paid-only path | 15–39 | | No viable channel identified | 0–14 |

Adjust: +10 if founder has existing audience or distribution edge (from `user_profile.md`).

Retention (0–100)

| Condition | Score range | |---|---| | `retention_verdict` = "sticky", D30 ≥ 20%, habit_formation_score ≥ 4 | 80–100 | | `retention_verdict` = "sticky" OR D30 ≥ 15% | 60–79 | | `retention_verdict` = "moderate", D30 ≥ 8% | 40–59 | | `retention_verdict` = "disposable" OR D30 < 8% | 15–39 | | `churn_risk` = "high" AND no habit loop | 0–14 |

Adjust: +5 if natural_usage_frequency is daily. -10 if weekly-or-less with no external trigger.

Founder-Market Fit (0–100)

| Condition | Score range | |---|---| | Strong domain match in `strong_domains`, distribution advantages align, builder/growth tier | 75–100 | | Moderate domain overlap OR builder tier with adjacent experience | 50–74 | | Beginner tier but high motivation and time commitment (≥ 20 hrs/wk) | 30–49 | | No domain overlap, beginner tier, low time commitment | 0–29 |

If `user_profile.md` is unavailable, default to 50 (neutral) and flag as missing.

Scoring Algorithm

Step 1 — Compute dimension sub-scores

Apply the mapping rubrics above. Record each as `d_i` (0–100).

Step 2 — Apply floor penalty (the "Killer Dimension" rule)

Any dimension scoring below **25** is a potential startup killer. Apply this penalty:

floor_penalty = 1.0
for each dimension d_i:
    if d_i < 25:
        floor_penalty *= (d_i / 25)

This multiplicative penalty means a single catastrophic weakness (score 0–1

Read more
Ships withidea-validation-agents

AI agents that act as your personal venture analyst - from startup idea brainstorming to full validation and go-to-market strategy. Built for developers who'd rather validate in 10 minutes than regret in six months. Powered by Claude Code, OpenAI Codex, and Cursor.

Get the whole plugin
Stats
480
Stars
57
Forks
Maintained
Maintenance
MIT
License
4mo ago
Last commit
6mo ago
Created
4h ago
Added

Repo: MaxKmet/idea-validation-agents

Other skills on idea-validation-agents.