[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6X7XPH2BAMKF7QSXTGQSV6J":3,"skill-same:01M6X7XPH2BAMKF7QSXTGQSV6J":63},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":36,"linkOnly":37,"markdownContent":38,"markdownBody":39,"frontMatter":40,"refName":41,"commitSha":42,"skillDirectory":43,"forksCount":44,"repositoryHtmlUrl":45,"repositoryHomepageUrl":6,"ownerHtmlUrl":46,"ownerBlogUrl":6,"ownerDescription":47,"updatedAt":48,"install":49,"resources":62},"01M6X7XPH2BAMKF7QSXTGQSV6J","pivot-engine",null,"Generates structured pivot options for a scored idea based on weak dimensions, market_insights signals, and founder constraints. Includes scoring simulation, minimum viable pivot criteria, effort estimation, and indie buildability filtering.","MaxKmet\u002Fidea-validation-agents","MaxKmet","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F19517077?v=4","01M6X7QNAFCSMWXN7FDJS2KFGY","Max Kmet","01M6X7QNEEA69XPH7DCQRS5NJE",510,"MIT","https:\u002F\u002Fgithub.com\u002FMaxKmet\u002Fidea-validation-agents\u002Fblob\u002Fmain\u002Fskills\u002Fpivot-engine\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35],"pivot engine","engine","options","effort estimation","for","insights","founder","structured","signals","estimation","constraints","dimensions","scoring","idea","Market","filtering","simulation","2026-11-10 10:12:30",false,"---\nname: pivot-engine\ndescription: Generates structured pivot options for a scored idea based on weak dimensions, market_insights signals, and founder constraints. Includes scoring simulation, minimum viable pivot criteria, effort estimation, and indie buildability filtering.\n---\n\n\u003C!-- version: 0.3.0 | outputs: memory\u002Fideas\u002F\u003Cslug>\u002Fpivot_options.json + memory\u002Fideas\u002F\u003Cslug>\u002Fpivot_report.md -->\n\n# Skill: pivot-engine\n\n## Purpose\n\nWhen an idea scores poorly in one or more dimensions, generate concrete pivot options rather than abandoning the idea entirely. A pivot is a deliberate change in **one variable** to improve the weakest dimension — not a complete restart. The best pivots preserve what's already strong while fixing what's broken, and they're grounded in real market signals, not wishful thinking.\n\n## Input\n\n- Idea slug\n- `memory\u002Fideas\u002F\u003Cslug>\u002Fscores.json` (current scores — required)\n- `memory\u002Fideas\u002F\u003Cslug>\u002Fweaknesses.json` (weak dimensions with root causes — required, run weakness-detection first)\n- `memory\u002Fideas\u002F\u003Cslug>\u002Fidea.md` (current concept)\n- `memory\u002Fideas\u002F\u003Cslug>\u002Fcompetitors.json` (positioning gaps, competitor complaints)\n- `memory\u002Fideas\u002F\u003Cslug>\u002Fdistribution.json` (current channel assessment)\n- `memory\u002Fideas\u002F\u003Cslug>\u002Fpricing.json` (current pricing model and WTP)\n- `memory\u002Fideas\u002F\u003Cslug>\u002Fretention.json` (current retention assessment)\n- `memory\u002Fuser_profile.md` (ICP tier, budget, time, distribution advantages)\n- `memory\u002Fmarket_insights\u002F\u003Cniche>-*-\u003CYYYY>-\u003CMM>.md` (trend data — **use all available platform files**)\n\n### Using Market Insights\n\nMarket insights are essential for generating pivots grounded in real demand rather than theory. Extract:\n\n| Field | How it informs pivots |\n|---|---|\n| `top_signals` | Identify adjacent niches or audience segments with validated demand. A trending subreddit or TikTok hashtag near the idea's space suggests a viable audience pivot target. |\n| `trend_velocity` | If the current niche is \"declining\", pivoting within it is futile — pivot to an adjacent rising niche. If \"rising-fast\", the problem may be execution (distribution, pricing), not the market. |\n| `monetization_evidence` | If monetization is weak but market_insights show competitors successfully charging in the space, the issue is pricing model or positioning, not WTP. Pivot the model, not the idea. |\n| Platform narratives (Reddit complaints, TikTok trends, App Store gaps) | Source specific pivot targets: underserved segments mentioned in Reddit threads, content angles trending on TikTok, App Store categories with stale top results. |\n\n## Pivot Types\n\n| Pivot type | What changes | What stays | When to use |\n|---|---|---|---|\n| **Audience narrowing** | Target user segment | Core problem and solution | Demand is broad but shallow; CAC too high because targeting is diffuse |\n| **Audience expansion** | Broaden from niche to adjacent segment | Core solution mechanics | Market is too small (micro-niche verdict); SOM \u003C $10K |\n| **Feature simplification** | Scope and complexity | Core value proposition | Complexity too high; time-to-MVP exceeds founder capacity |\n| **Feature pivot** | Core feature emphasis | Target audience and problem | Current feature set doesn't match what users actually want (review mining signals) |\n| **Niche pivot** | Problem space subcategory | Solution approach | Competition too high in broad category; narrow to underserved niche |\n| **Pricing pivot** | Pricing model or price point | Product and audience | WTP mismatch; wrong model for usage pattern; competitive pricing gap |\n| **Distribution pivot** | Primary acquisition channel | Product and audience | Current channel is unviable; founder lacks skills\u002Fbudget for assumed channel |\n| **Platform pivot** | Target platform (iOS → web, mobile → desktop) | Core idea and audience | Wrong platform for audience behavior or market dynamics |\n| **Monetization pivot** | Revenue model (B2C → B2C2B, app → content, product → service) | Core domain expertise | Direct monetization unviable but the domain has other revenue paths |\n| **Problem pivot** | Which problem to solve | Target audience and domain | Audience is right but the specific pain point is weak; adjacent problem is stronger |\n\n## Minimum Viable Pivot Criteria\n\nA pivot must be different enough to change the score but similar enough to preserve existing work and insights. Apply the **Same Idea Test**:\n\n### A valid pivot must meet ALL of these:\n\n1. **Changes exactly 1–2 variables** from the list above. Changing 3+ variables is a new idea, not a pivot — create a new idea slug instead.\n2. **Preserves at least one strong dimension** (score ≥ 60 in the original). A pivot that abandons all strengths is a restart.\n3. **Has evidence** — the pivot direction is supported by at least one concrete signal (market_insights data, competitor gap, user complaint, trend).\n4. **Addressable root cause** — the weakness it targets has `root_cause_type` of \"addressable\" or \"situational\" in `weaknesses.json`. Pivots cannot fix structural weaknesses unless the pivot changes the core mechanic (which usually means it's a new idea).\n\n### A pivot is NOT valid if:\n\n- It requires the founder to acquire a skill set they don't have and can't learn in \u003C 4 weeks\n- It targets a completely different audience AND a different problem (that's a new idea)\n- The only evidence is \"maybe this would work\" with no supporting signal\n- It makes the idea harder to build without a proportional improvement in market viability\n\n## Process\n\n### Step 1 — Load and assess weakness landscape\n\n1. Load `weaknesses.json`. Identify all weak dimensions and their root causes.\n2. Separate weaknesses into:\n   - **Addressable** (`root_cause_type` = \"addressable\" or \"situational\") → these are pivot targets\n   - **Knowledge gaps** (`root_cause_type` = \"knowledge-gap\") → these need more research, not a pivot\n   - **Structural** (`root_cause_type` = \"structural\") → only fixable by major pivot or new idea\n3. If `overall_weakness_severity` = \"fatal\" and all weaknesses are structural, recommend dropping rather than pivoting. Note this in the output.\n\n### Step 2 — Map weak dimensions to pivot types\n\nUse this mapping to identify which pivot types are most likely to improve each weak dimension:\n\n| Weak dimension | Primary pivot types | Secondary pivot types |\n|---|---|---|\n| **Demand** (\u003C 40) | Problem pivot, audience narrowing | Niche pivot |\n| **Competition** (\u003C 40) | Niche pivot, audience narrowing | Feature pivot, platform pivot |\n| **Monetization** (\u003C 40) | Pricing pivot, monetization pivot | Audience narrowing (higher-WTP segment) |\n| **Distribution** (\u003C 40) | Distribution pivot, platform pivot | Audience narrowing (more reachable segment) |\n| **Retention** (\u003C 40) | Feature pivot, feature simplification | Problem pivot (pick a stickier problem) |\n| **Founder-Market Fit** (\u003C 40) | Niche pivot (toward founder's domain), feature simplification | Platform pivot (to founder's strongest platform) |\n\nIf multiple dimensions are weak, prioritize the one with the lowest score AND an addressable root cause.\n\n### Step 3 — Generate pivot options using market_insights\n\nFor each applicable pivot type (from Step 2), generate a concrete option:\n\n1. **Pull evidence from market_insights**:\n   - For audience pivots: look for specific user segments mentioned in Reddit discussions or TikTok content\n   - For niche pivots: identify adjacent niches with rising trend_velocity\n   - For distribution pivots: check which channels show actual activity for the niche in market_insights\n   - For pricing pivots: reference monetization_evidence and competitor pricing from `competitors.json`\n\n2. **Be specific, not generic**:\n   - Bad: \"Narrow the audience\"\n   - Good: \"Target freelance designers who use Figma (150K+ active in r\u002FFigmaDesign) instead of all designers. This segment has higher WTP ($8–12\u002Fmo based on competitor pricing), active Reddit communities for organic distribution, and specific pain points around invoice management that existing tools ignore.\"\n\n3. **Generate 2–3 options**, ranked by expected impact. Each option must pass the Minimum Viable Pivot Criteria.\n\n### Step 4 — Scoring simulation\n\nFor each pivot option, simulate the expected score change by projecting how each dimension would shift. This gives the orchestrator enough information to decide whether a full re-score is warranted.\n\n#### Simulation method\n\nFor the dimension(s) the pivot targets, estimate the new score range based on:\n- The pivot direction and its evidence strength\n- Category benchmarks from the rubrics in `idea-scoring`\n- What the market_insights data suggests about the pivot target\n\nFor dimensions the pivot doesn't target, assume they remain unchanged **unless** there's a clear secondary effect:\n- Audience narrowing typically improves Distribution (+5 to +15) but may reduce Demand (-5 to -10) and Market Size\n- Feature simplification typically improves Founder-Market Fit (+10 to +20) but may reduce Retention (-5 to -10) if features drove stickiness\n- Pricing pivots can affect Distribution (freemium → more installs) and Retention (subscription → commitment)\n\n#### Projected score calculation\n\n```\nprojected_score = sum of (projected_dimension_scores × weights) × projected_floor_penalty\n```\n\nUse the same weights and floor penalty logic from `idea-scoring`. This is an estimate — the actual re-score (step 4 of the pivot-optimization workflow) will be definitive.\n\nReport as a range: `projected_score_range: { low: X, high: Y }`.\n\n### Step 5 — Effort estimation\n\nEach pivot has an execution cost. Estimate it relative to the founder's tier:\n\n| Effort level | Definition | Typical timeline |\n|---|---|---|\n| **Low** | Can be done in a weekend. Changes copy, positioning, pricing, or targeting — no code changes. | 1–3 days |\n| **Medium** | Requires feature changes or new content. Some development work. | 1–3 weeks |\n| **High** | Significant rebuild. New core feature, new platform, or new audience requiring fresh research. | 1–3 months |\n\n#### Tier adjustment on effort\n\n| Founder tier | Adjust |\n|---|---|\n| **Beginner** | Upgrade effort by one level (what's \"medium\" for a builder is \"high\" for a beginner) |\n| **Builder** | No adjustment |\n| **Growth** | Downgrade effort by one level (what's \"medium\" for a builder is \"low\" for growth) |\n\nA pivot with \"high\" effort for the founder's tier should be flagged as risky — the time investment may not be justified unless the projected score improvement is substantial (≥ 20 points).\n\n### Step 6 — Indie buildability filter\n\nBefore finalizing, verify each pivot option passes these constraints:\n\n| Constraint | Fails if |\n|---|---|\n| **Solo buildable** | Pivot requires a team (e.g., marketplace requiring both supply and demand side simultaneously) |\n| **Budget feasible** | Pivot requires spend exceeding founder's budget tier (e.g., \"run paid social\" for a Bootstrap founder) |\n| **Time feasible** | Pivot requires > 3 months of work for the founder's tier |\n| **Skill feasible** | Pivot requires skills the founder doesn't have and can't learn in 4 weeks (e.g., \"build an ML model\" for a no-code beginner) |\n| **No enterprise creep** | Pivot moves the idea toward B2B enterprise, custom sales, or long sales cycles — fundamentally not an indie B2C play |\n\nIf a pivot fails any constraint, either modify it to fit or discard it and note why.\n\n### Step 7 — Select recommended pivot\n\nRank remaining options by: `(projected_score_improvement \u002F effort_level)` — the best pivot is the one with the highest score impact per unit of effort.\n\nTie-breakers:\n1. Stronger evidence from market_insights\n2. Lower risk (fewer dimensions negatively affected)\n3. Preserves more of the original idea's strengths\n\n## Output\n\nWrite two files to `memory\u002Fideas\u002F\u003Cslug>\u002F`:\n\n### 1. `pivot_options.json`\n\nMachine-readable structured data for downstream skills (`idea-scoring`, `decision-memo`):\n\n\n```json\n{\n  \"original_score\": 0,\n  \"original_verdict\": \"\",\n  \"triggered_by_weaknesses\": [\n    {\n      \"dimension\": \"\",\n      \"score\": 0,\n      \"root_cause_type\": \"\",\n      \"root_cause_description\": \"\"\n    }\n  ],\n  \"structural_weaknesses_unpivotable\": [],\n  \"pivot_options\": [\n    {\n      \"pivot_id\": \"pivot-1\",\n      \"pivot_type\": \"\",\n      \"description\": \"\",\n      \"specific_change\": \"\",\n      \"evidence\": \"\",\n      \"evidence_source\": \"\",\n      \"meets_minimum_viable_pivot\": true,\n      \"scoring_simulation\": {\n        \"dimensions_improved\": [\n          { \"dimension\": \"\", \"current\": 0, \"projected_low\": 0, \"projected_high\": 0 }\n        ],\n        \"dimensions_worsened\": [\n          { \"dimension\": \"\", \"current\": 0, \"projected_low\": 0, \"projected_high\": 0 }\n        ],\n        \"dimensions_unchanged\": [],\n        \"projected_score_range\": { \"low\": 0, \"high\": 0 },\n        \"projected_verdict_range\": \"\"\n      },\n      \"effort\": {\n        \"level\": \"low | medium | high\",\n        \"tier_adjusted_level\": \"low | medium | high\",\n        \"timeline\": \"\",\n        \"what_changes\": \"\",\n        \"what_stays\": \"\"\n      },\n      \"indie_buildability\": {\n        \"passes\": true,\n        \"constraints_checked\": [\"solo_buildable\", \"budget_feasible\", \"time_feasible\", \"skill_feasible\", \"no_enterprise_creep\"],\n        \"failed_constraints\": []\n      },\n      \"trade_offs\": [],\n      \"variables_changed\": 0\n    }\n  ],\n  \"recommended_pivot\": \"\",\n  \"recommended_pivot_rationale\": \"\",\n  \"drop_recommendation\": false,\n  \"drop_rationale\": \"\",\n  \"market_insights_sources_used\": []\n}\n```\n\n### 2. `pivot_report.md`\n\nHuman-readable pivot brief. This is the document the founder actually reads. Write it after `pivot_options.json` is complete — source all data from the JSON, don't introduce new judgements.\n\n#### Structure\n\n```markdown\n---\nidea_slug: \u003Cslug>\noriginal_score: \u003CX>\noriginal_verdict: \u003Cverdict>\nrecommended_pivot: \u003Cpivot_id>\ncreated_at: \u003CYYYY-MM-DD>\n---\n\n# Pivot Report: \u003CIdea Name>\n\n## Why the Original Idea Scored \u003CX>\u002F100\n\n\u003C2–3 sentences. State the root cause of the low score plainly — not a list of every problem, just the one or two structural reasons the idea can't work as-is. Cite specific scores from scores.json (e.g. \"Distribution scored 34\u002F100 because…\"). No hedging.>\n\n---\n\n## What Can Be Fixed vs. What Can't\n\n**Addressable weaknesses** (pivot targets):\n- \u003Cdimension>: \u003C1-sentence root cause and why it's fixable>\n- ...\n\n**Structural weaknesses** (cannot be pivoted away):\n- \u003Cdimension>: \u003C1-sentence root cause and why no pivot can fix it>\n- ...\n\n\u003CIf all weaknesses are structural, state clearly that a pivot is unlikely to rescue this idea and explain why.>\n\n---\n\n## Pivot Options\n\n### Option 1 — \u003CPivot Type>: \u003CShort Name> · Projected score: \u003Clow>–\u003Chigh>\u002F100 · Effort: \u003Ctier_adjusted_level>\n\n**The change:** \u003C1–2 sentences. Be specific about exactly what changes — audience, feature, channel, pricing model, platform. Name concrete details (specific subreddits, competitor pricing, App Store keywords, etc.).>\n\n**Why this works:** \u003C2–3 sentences grounded in evidence. Cite the market_insights signal, competitor gap, or user complaint that supports this direction. Name the source (e.g. \"r\u002FFigmaDesign has 150K active members discussing invoice pain\", \"BookPal's 1-star reviews consistently mention X\", \"TikTok hashtag #X has 40M views and rising velocity\").>\n\n**What stays the same:** \u003C1 sentence. What existing work and strengths are preserved.>\n\n**Score projection:**\n| Dimension | Current | Projected |\n|---|---|---|\n| \u003Cdimension> | \u003Ccurrent>\u002F100 | \u003Clow>–\u003Chigh>\u002F100 |\n| \u003Cdimension (worsened)> | \u003Ccurrent>\u002F100 | \u003Clow>–\u003Chigh>\u002F100 |\n| ... | ... | unchanged |\n\n**Trade-offs:** \u003C1–2 sentences. What this pivot gives up. Be honest — every pivot has a cost.>\n\n**Effort:** \u003CWhat specifically needs to change — code, copy, positioning, research. Timeline.>\n\n---\n\n### Option 2 — \u003CPivot Type>: \u003CShort Name> · Projected score: \u003Clow>–\u003Chigh>\u002F100 · Effort: \u003Ctier_adjusted_level>\n\n\u003CSame structure as Option 1.>\n\n---\n\n### Option 3 — \u003CPivot Type>: \u003CShort Name> · Projected score: \u003Clow>–\u003Chigh>\u002F100 · Effort: \u003Ctier_adjusted_level> *(optional)*\n\n\u003CSame structure as Option 1. Include only if a genuinely distinct third option exists.>\n\n---\n\n## Recommendation\n\n**Go with Option \u003CN> — \u003CShort Name>.**\n\n\u003C3–4 sentences. State why this option has the best impact-to-effort ratio. Reference the scoring simulation. Name the one thing that makes this pivot more credible than the alternatives (the market signal, the competitor gap, the distribution advantage). End with a specific first action the founder should take this week.>\n\n**If this pivot also scores below 50:** \u003C1 sentence — what that means and what to do (drop, major rethink, or new idea slug).>\n\n---\n\n## What to Do First\n\n\u003C1–3 concrete steps, ordered. Each step should be doable within a week. No vague advice — name the specific subreddit, pricing change, App Store keyword, or feature to cut. If a RAT experiment makes sense before committing to the pivot, define it here: ≤2 weeks, ≤$100, pass\u002Ffail criteria.>\n```\n\n#### Writing rules for `pivot_report.md`\n\n1. **Every claim cites a source.** Name the market_insights file, competitor data point, or dimension score behind every assertion. \"Demand is weak\" is not a claim — \"Demand scored 36\u002F100 because search volume for 'invoice app for freelancers' is 2,400\u002Fmo, below the 10K threshold for a viable indie SOM\" is.\n2. **Options must be meaningfully distinct.** Don't generate three variations of the same audience pivot. Each option should change a different variable.\n3. **Score projections must be ranges, not false precision.** `62–71\u002F100` is honest. `67\u002F100` implies certainty the model doesn't have.\n4. **The recommendation must pick one.** Not \"it depends\" — commit to the best option and explain why.\n5. **Total length: ~500–800 words.** Cut anything that doesn't help the founder decide. This is a decision brief, not a research report.\n\n---\n\n## Notes\n\n- If `overall_weakness_severity` = \"fatal\" and all weaknesses are structural, set `drop_recommendation` = true and explain why no pivot can save this idea. Still generate 1 option as a \"Hail Mary\" if the founder wants to try, but be honest about the odds.\n- When generating niche pivots, always check `competitors.json` for `positioning_gaps` — an identified gap with evidence is the strongest pivot foundation.\n- Pivot options that combine two small changes (e.g., audience narrowing + pricing change) are allowed as a single option if both changes are \"low\" effort. Call this out as a **compound pivot** and flag the higher risk.\n- The `pivot_id` field is used by `idea-scoring` to link re-scores in `pivot_scores.json` back to the specific option.\n- If market_insights files are past their `stale_after` date, note that pivot evidence may be outdated and recommend refreshing trend analysis before committing to a pivot direction.\n","\u003C!-- version: 0.3.0 | outputs: memory\u002Fideas\u002F\u003Cslug>\u002Fpivot_options.json + memory\u002Fideas\u002F\u003Cslug>\u002Fpivot_report.md -->\n\n# Skill: pivot-engine\n\n## Purpose\n\nWhen an idea scores poorly in one or more dimensions, generate concrete pivot options rather than abandoning the idea entirely. A pivot is a deliberate change in **one variable** to improve the weakest dimension — not a complete restart. The best pivots preserve what's already strong while fixing what's broken, and they're grounded in real market signals, not wishful thinking.\n\n## Input\n\n- Idea slug\n- `memory\u002Fideas\u002F\u003Cslug>\u002Fscores.json` (current scores — required)\n- `memory\u002Fideas\u002F\u003Cslug>\u002Fweaknesses.json` (weak dimensions with root causes — required, run weakness-detection first)\n- `memory\u002Fideas\u002F\u003Cslug>\u002Fidea.md` (current concept)\n- `memory\u002Fideas\u002F\u003Cslug>\u002Fcompetitors.json` (positioning gaps, competitor complaints)\n- `memory\u002Fideas\u002F\u003Cslug>\u002Fdistribution.json` (current channel assessment)\n- `memory\u002Fideas\u002F\u003Cslug>\u002Fpricing.json` (current pricing model and WTP)\n- `memory\u002Fideas\u002F\u003Cslug>\u002Fretention.json` (current retention assessment)\n- `memory\u002Fuser_profile.md` (ICP tier, budget, time, distribution advantages)\n- `memory\u002Fmarket_insights\u002F\u003Cniche>-*-\u003CYYYY>-\u003CMM>.md` (trend data — **use all available platform files**)\n\n### Using Market Insights\n\nMarket insights are essential for generating pivots grounded in real demand rather than theory. Extract:\n\n| Field | How it informs pivots |\n|---|---|\n| `top_signals` | Identify adjacent niches or audience segments with validated demand. A trending subreddit or TikTok hashtag near the idea's space suggests a viable audience pivot target. |\n| `trend_velocity` | If the current niche is \"declining\", pivoting within it is futile — pivot to an adjacent rising niche. If \"rising-fast\", the problem may be execution (distribution, pricing), not the market. |\n| `monetization_evidence` | If monetization is weak but market_insights show competitors successfully charging in the space, the issue is pricing model or positioning, not WTP. Pivot the model, not the idea. |\n| Platform narratives (Reddit complaints, TikTok trends, App Store gaps) | Source specific pivot targets: underserved segments mentioned in Reddit threads, content angles trending on TikTok, App Store categories with stale top results. |\n\n## Pivot Types\n\n| Pivot type | What changes | What stays | When to use |\n|---|---|---|---|\n| **Audience narrowing** | Target user segment | Core problem and solution | Demand is broad but shallow; CAC too high because targeting is diffuse |\n| **Audience expansion** | Broaden from niche to adjacent segment | Core solution mechanics | Market is too small (micro-niche verdict); SOM \u003C $10K |\n| **Feature simplification** | Scope and complexity | Core value proposition | Complexity too high; time-to-MVP exceeds founder capacity |\n| **Feature pivot** | Core feature emphasis | Target audience and problem | Current feature set doesn't match what users actually want (review mining signals) |\n| **Niche pivot** | Problem space subcategory | Solution approach | Competition too high in broad category; narrow to underserved niche |\n| **Pricing pivot** | Pricing model or price point | Product and audience | WTP mismatch; wrong model for usage pattern; competitive pricing gap |\n| **Distribution pivot** | Primary acquisition channel | Product and audience | Current channel is unviable; founder lacks skills\u002Fbudget for assumed channel |\n| **Platform pivot** | Target platform (iOS → web, mobile → desktop) | Core idea and audience | Wrong platform for audience behavior or market dynamics |\n| **Monetization pivot** | Revenue model (B2C → B2C2B, app → content, product → service) | Core domain expertise | Direct monetization unviable but the domain has other revenue paths |\n| **Problem pivot** | Which problem to solve | Target audience and domain | Audience is right but the specific pain point is weak; adjacent problem is stronger |\n\n## Minimum Viable Pivot Criteria\n\nA pivot must be different enough to change the score but similar enough to preserve existing work and insights. Apply the **Same Idea Test**:\n\n### A valid pivot must meet ALL of these:\n\n1. **Changes exactly 1–2 variables** from the list above. Changing 3+ variables is a new idea, not a pivot — create a new idea slug instead.\n2. **Preserves at least one strong dimension** (score ≥ 60 in the original). A pivot that abandons all strengths is a restart.\n3. **Has evidence** — the pivot direction is supported by at least one concrete signal (market_insights data, competitor gap, user complaint, trend).\n4. **Addressable root cause** — the weakness it targets has `root_cause_type` of \"addressable\" or \"situational\" in `weaknesses.json`. Pivots cannot fix structural weaknesses unless the pivot changes the core mechanic (which usually means it's a new idea).\n\n### A pivot is NOT valid if:\n\n- It requires the founder to acquire a skill set they don't have and can't learn in \u003C 4 weeks\n- It targets a completely different audience AND a different problem (that's a new idea)\n- The only evidence is \"maybe this would work\" with no supporting signal\n- It makes the idea harder to build without a proportional improvement in market viability\n\n## Process\n\n### Step 1 — Load and assess weakness landscape\n\n1. Load `weaknesses.json`. Identify all weak dimensions and their root causes.\n2. Separate weaknesses into:\n   - **Addressable** (`root_cause_type` = \"addressable\" or \"situational\") → these are pivot targets\n   - **Knowledge gaps** (`root_cause_type` = \"knowledge-gap\") → these need more research, not a pivot\n   - **Structural** (`root_cause_type` = \"structural\") → only fixable by major pivot or new idea\n3. If `overall_weakness_severity` = \"fatal\" and all weaknesses are structural, recommend dropping rather than pivoting. Note this in the output.\n\n### Step 2 — Map weak dimensions to pivot types\n\nUse this mapping to identify which pivot types are most likely to improve each weak dimension:\n\n| Weak dimension | Primary pivot types | Secondary pivot types |\n|---|---|---|\n| **Demand** (\u003C 40) | Problem pivot, audience narrowing | Niche pivot |\n| **Competition** (\u003C 40) | Niche pivot, audience narrowing | Feature pivot, platform pivot |\n| **Monetization** (\u003C 40) | Pricing pivot, monetization pivot | Audience narrowing (higher-WTP segment) |\n| **Distribution** (\u003C 40) | Distribution pivot, platform pivot | Audience narrowing (more reachable segment) |\n| **Retention** (\u003C 40) | Feature pivot, feature simplification | Problem pivot (pick a stickier problem) |\n| **Founder-Market Fit** (\u003C 40) | Niche pivot (toward founder's domain), feature simplification | Platform pivot (to founder's strongest platform) |\n\nIf multiple dimensions are weak, prioritize the one with the lowest score AND an addressable root cause.\n\n### Step 3 — Generate pivot options using market_insights\n\nFor each applicable pivot type (from Step 2), generate a concrete option:\n\n1. **Pull evidence from market_insights**:\n   - For audience pivots: look for specific user segments mentioned in Reddit discussions or TikTok content\n   - For niche pivots: identify adjacent niches with rising trend_velocity\n   - For distribution pivots: check which channels show actual activity for the niche in market_insights\n   - For pricing pivots: reference monetization_evidence and competitor pricing from `competitors.json`\n\n2. **Be specific, not generic**:\n   - Bad: \"Narrow the audience\"\n   - Good: \"Target freelance designers who use Figma (150K+ active in r\u002FFigmaDesign) instead of all designers. This segment has higher WTP ($8–12\u002Fmo based on competitor pricing), active Reddit communities for organic distribution, and specific pain points around invoice management that existing tools ignore.\"\n\n3. **Generate 2–3 options**, ranked by expected impact. Each option must pass the Minimum Viable Pivot Criteria.\n\n### Step 4 — Scoring simulation\n\nFor each pivot option, simulate the expected score change by projecting how each dimension would shift. This gives the orchestrator enough information to decide whether a full re-score is warranted.\n\n#### Simulation method\n\nFor the dimension(s) the pivot targets, estimate the new score range based on:\n- The pivot direction and its evidence strength\n- Category benchmarks from the rubrics in `idea-scoring`\n- What the market_insights data suggests about the pivot target\n\nFor dimensions the pivot doesn't target, assume they remain unchanged **unless** there's a clear secondary effect:\n- Audience narrowing typically improves Distribution (+5 to +15) but may reduce Demand (-5 to -10) and Market Size\n- Feature simplification typically improves Founder-Market Fit (+10 to +20) but may reduce Retention (-5 to -10) if features drove stickiness\n- Pricing pivots can affect Distribution (freemium → more installs) and Retention (subscription → commitment)\n\n#### Projected score calculation\n\n```\nprojected_score = sum of (projected_dimension_scores × weights) × projected_floor_penalty\n```\n\nUse the same weights and floor penalty logic from `idea-scoring`. This is an estimate — the actual re-score (step 4 of the pivot-optimization workflow) will be definitive.\n\nReport as a range: `projected_score_range: { low: X, high: Y }`.\n\n### Step 5 — Effort estimation\n\nEach pivot has an execution cost. Estimate it relative to the founder's tier:\n\n| Effort level | Definition | Typical timeline |\n|---|---|---|\n| **Low** | Can be done in a weekend. Changes copy, positioning, pricing, or targeting — no code changes. | 1–3 days |\n| **Medium** | Requires feature changes or new content. Some development work. | 1–3 weeks |\n| **High** | Significant rebuild. New core feature, new platform, or new audience requiring fresh research. | 1–3 months |\n\n#### Tier adjustment on effort\n\n| Founder tier | Adjust |\n|---|---|\n| **Beginner** | Upgrade effort by one level (what's \"medium\" for a builder is \"high\" for a beginner) |\n| **Builder** | No adjustment |\n| **Growth** | Downgrade effort by one level (what's \"medium\" for a builder is \"low\" for growth) |\n\nA pivot with \"high\" effort for the founder's tier should be flagged as risky — the time investment may not be justified unless the projected score improvement is substantial (≥ 20 points).\n\n### Step 6 — Indie buildability filter\n\nBefore finalizing, verify each pivot option passes these constraints:\n\n| Constraint | Fails if |\n|---|---|\n| **Solo buildable** | Pivot requires a team (e.g., marketplace requiring both supply and demand side simultaneously) |\n| **Budget feasible** | Pivot requires spend exceeding founder's budget tier (e.g., \"run paid social\" for a Bootstrap founder) |\n| **Time feasible** | Pivot requires > 3 months of work for the founder's tier |\n| **Skill feasible** | Pivot requires skills the founder doesn't have and can't learn in 4 weeks (e.g., \"build an ML model\" for a no-code beginner) |\n| **No enterprise creep** | Pivot moves the idea toward B2B enterprise, custom sales, or long sales cycles — fundamentally not an indie B2C play |\n\nIf a pivot fails any constraint, either modify it to fit or discard it and note why.\n\n### Step 7 — Select recommended pivot\n\nRank remaining options by: `(projected_score_improvement \u002F effort_level)` — the best pivot is the one with the highest score impact per unit of effort.\n\nTie-breakers:\n1. Stronger evidence from market_insights\n2. Lower risk (fewer dimensions negatively affected)\n3. Preserves more of the original idea's strengths\n\n## Output\n\nWrite two files to `memory\u002Fideas\u002F\u003Cslug>\u002F`:\n\n### 1. `pivot_options.json`\n\nMachine-readable structured data for downstream skills (`idea-scoring`, `decision-memo`):\n\n\n```json\n{\n  \"original_score\": 0,\n  \"original_verdict\": \"\",\n  \"triggered_by_weaknesses\": [\n    {\n      \"dimension\": \"\",\n      \"score\": 0,\n      \"root_cause_type\": \"\",\n      \"root_cause_description\": \"\"\n    }\n  ],\n  \"structural_weaknesses_unpivotable\": [],\n  \"pivot_options\": [\n    {\n      \"pivot_id\": \"pivot-1\",\n      \"pivot_type\": \"\",\n      \"description\": \"\",\n      \"specific_change\": \"\",\n      \"evidence\": \"\",\n      \"evidence_source\": \"\",\n      \"meets_minimum_viable_pivot\": true,\n      \"scoring_simulation\": {\n        \"dimensions_improved\": [\n          { \"dimension\": \"\", \"current\": 0, \"projected_low\": 0, \"projected_high\": 0 }\n        ],\n        \"dimensions_worsened\": [\n          { \"dimension\": \"\", \"current\": 0, \"projected_low\": 0, \"projected_high\": 0 }\n        ],\n        \"dimensions_unchanged\": [],\n        \"projected_score_range\": { \"low\": 0, \"high\": 0 },\n        \"projected_verdict_range\": \"\"\n      },\n      \"effort\": {\n        \"level\": \"low | medium | high\",\n        \"tier_adjusted_level\": \"low | medium | high\",\n        \"timeline\": \"\",\n        \"what_changes\": \"\",\n        \"what_stays\": \"\"\n      },\n      \"indie_buildability\": {\n        \"passes\": true,\n        \"constraints_checked\": [\"solo_buildable\", \"budget_feasible\", \"time_feasible\", \"skill_feasible\", \"no_enterprise_creep\"],\n        \"failed_constraints\": []\n      },\n      \"trade_offs\": [],\n      \"variables_changed\": 0\n    }\n  ],\n  \"recommended_pivot\": \"\",\n  \"recommended_pivot_rationale\": \"\",\n  \"drop_recommendation\": false,\n  \"drop_rationale\": \"\",\n  \"market_insights_sources_used\": []\n}\n```\n\n### 2. `pivot_report.md`\n\nHuman-readable pivot brief. This is the document the founder actually reads. Write it after `pivot_options.json` is complete — source all data from the JSON, don't introduce new judgements.\n\n#### Structure\n\n```markdown\n---\nidea_slug: \u003Cslug>\noriginal_score: \u003CX>\noriginal_verdict: \u003Cverdict>\nrecommended_pivot: \u003Cpivot_id>\ncreated_at: \u003CYYYY-MM-DD>\n---\n\n# Pivot Report: \u003CIdea Name>\n\n## Why the Original Idea Scored \u003CX>\u002F100\n\n\u003C2–3 sentences. State the root cause of the low score plainly — not a list of every problem, just the one or two structural reasons the idea can't work as-is. Cite specific scores from scores.json (e.g. \"Distribution scored 34\u002F100 because…\"). No hedging.>\n\n---\n\n## What Can Be Fixed vs. What Can't\n\n**Addressable weaknesses** (pivot targets):\n- \u003Cdimension>: \u003C1-sentence root cause and why it's fixable>\n- ...\n\n**Structural weaknesses** (cannot be pivoted away):\n- \u003Cdimension>: \u003C1-sentence root cause and why no pivot can fix it>\n- ...\n\n\u003CIf all weaknesses are structural, state clearly that a pivot is unlikely to rescue this idea and explain why.>\n\n---\n\n## Pivot Options\n\n### Option 1 — \u003CPivot Type>: \u003CShort Name> · Projected score: \u003Clow>–\u003Chigh>\u002F100 · Effort: \u003Ctier_adjusted_level>\n\n**The change:** \u003C1–2 sentences. Be specific about exactly what changes — audience, feature, channel, pricing model, platform. Name concrete details (specific subreddits, competitor pricing, App Store keywords, etc.).>\n\n**Why this works:** \u003C2–3 sentences grounded in evidence. Cite the market_insights signal, competitor gap, or user complaint that supports this direction. Name the source (e.g. \"r\u002FFigmaDesign has 150K active members discussing invoice pain\", \"BookPal's 1-star reviews consistently mention X\", \"TikTok hashtag #X has 40M views and rising velocity\").>\n\n**What stays the same:** \u003C1 sentence. What existing work and strengths are preserved.>\n\n**Score projection:**\n| Dimension | Current | Projected |\n|---|---|---|\n| \u003Cdimension> | \u003Ccurrent>\u002F100 | \u003Clow>–\u003Chigh>\u002F100 |\n| \u003Cdimension (worsened)> | \u003Ccurrent>\u002F100 | \u003Clow>–\u003Chigh>\u002F100 |\n| ... | ... | unchanged |\n\n**Trade-offs:** \u003C1–2 sentences. What this pivot gives up. Be honest — every pivot has a cost.>\n\n**Effort:** \u003CWhat specifically needs to change — code, copy, positioning, research. Timeline.>\n\n---\n\n### Option 2 — \u003CPivot Type>: \u003CShort Name> · Projected score: \u003Clow>–\u003Chigh>\u002F100 · Effort: \u003Ctier_adjusted_level>\n\n\u003CSame structure as Option 1.>\n\n---\n\n### Option 3 — \u003CPivot Type>: \u003CShort Name> · Projected score: \u003Clow>–\u003Chigh>\u002F100 · Effort: \u003Ctier_adjusted_level> *(optional)*\n\n\u003CSame structure as Option 1. Include only if a genuinely distinct third option exists.>\n\n---\n\n## Recommendation\n\n**Go with Option \u003CN> — \u003CShort Name>.**\n\n\u003C3–4 sentences. State why this option has the best impact-to-effort ratio. Reference the scoring simulation. Name the one thing that makes this pivot more credible than the alternatives (the market signal, the competitor gap, the distribution advantage). End with a specific first action the founder should take this week.>\n\n**If this pivot also scores below 50:** \u003C1 sentence — what that means and what to do (drop, major rethink, or new idea slug).>\n\n---\n\n## What to Do First\n\n\u003C1–3 concrete steps, ordered. Each step should be doable within a week. No vague advice — name the specific subreddit, pricing change, App Store keyword, or feature to cut. If a RAT experiment makes sense before committing to the pivot, define it here: ≤2 weeks, ≤$100, pass\u002Ffail criteria.>\n```\n\n#### Writing rules for `pivot_report.md`\n\n1. **Every claim cites a source.** Name the market_insights file, competitor data point, or dimension score behind every assertion. \"Demand is weak\" is not a claim — \"Demand scored 36\u002F100 because search volume for 'invoice app for freelancers' is 2,400\u002Fmo, below the 10K threshold for a viable indie SOM\" is.\n2. **Options must be meaningfully distinct.** Don't generate three variations of the same audience pivot. Each option should change a different variable.\n3. **Score projections must be ranges, not false precision.** `62–71\u002F100` is honest. `67\u002F100` implies certainty the model doesn't have.\n4. **The recommendation must pick one.** Not \"it depends\" — commit to the best option and explain why.\n5. **Total length: ~500–800 words.** Cut anything that doesn't help the founder decide. This is a decision brief, not a research report.\n\n---\n\n## Notes\n\n- If `overall_weakness_severity` = \"fatal\" and all weaknesses are structural, set `drop_recommendation` = true and explain why no pivot can save this idea. Still generate 1 option as a \"Hail Mary\" if the founder wants to try, but be honest about the odds.\n- When generating niche pivots, always check `competitors.json` for `positioning_gaps` — an identified gap with evidence is the strongest pivot foundation.\n- Pivot options that combine two small changes (e.g., audience narrowing + pricing change) are allowed as a single option if both changes are \"low\" effort. Call this out as a **compound pivot** and flag the higher risk.\n- The `pivot_id` field is used by `idea-scoring` to link re-scores in `pivot_scores.json` back to the specific option.\n- If market_insights files are past their `stale_after` date, note that pivot evidence may be outdated and recommend refreshing trend analysis before committing to a pivot direction.\n",{"name":5,"description":7},"main","3a4c800a3022e73e9997533b603c79b60ee7597a","skills\u002Fpivot-engine",58,"https:\u002F\u002Fgithub.com\u002FMaxKmet\u002Fidea-validation-agents","https:\u002F\u002Fgithub.com\u002FMaxKmet","Senior AI Engineer","2026-06-16 23:18:56",{"source":8,"skillName":5,"commands":50,"prompt":60,"zipAvailable":61},[51,54,57],{"tool":52,"command":53},"npx","npx skills add MaxKmet\u002Fidea-validation-agents --skill pivot-engine",{"tool":55,"command":56},"bunx","bunx skills add MaxKmet\u002Fidea-validation-agents --skill pivot-engine",{"tool":58,"command":59},"pnpm","pnpm dlx skills add MaxKmet\u002Fidea-validation-agents --skill pivot-engine","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FMaxKmet\u002Fidea-validation-agents\u002Fblob\u002Fmain\u002Fskills\u002Fpivot-engine\u002FSKILL.md",true,[],[64,77,102,121,148,167],{"skillNo":65,"name":66,"nameZh":6,"description":67,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":68,"categories":69,"keywords":70,"publishedAt":36},"01M6X7YZ5WBGSAB23K0DAARY1N","weakness-detection","Analyzes idea-scoring output to identify the weakest dimensions, root causes of low scores, and probable failure modes if the idea were pursued as-is.","https:\u002F\u002Fgithub.com\u002FMaxKmet\u002Fidea-validation-agents\u002Fblob\u002Fmain\u002Fskills\u002Fweakness-detection\u002FSKILL.md",[],[71,72,73,74,75,76,30,31,32],"detection","weakness detection","modes","root","output","as",{"skillNo":78,"name":79,"nameZh":6,"description":80,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":81,"categories":82,"keywords":88,"publishedAt":36},"01M6X7YRHWXGBHBT70ZY1YTCC6","user-segmentation-profiler","Classifies the user into an ICP tier (beginner\u002Fbuilder\u002Fgrowth) based on experience, constraints, and goals. Run once per user session before any workflow.","https:\u002F\u002Fgithub.com\u002FMaxKmet\u002Fidea-validation-agents\u002Fblob\u002Fmain\u002Fskills\u002Fuser-segmentation-profiler\u002FSKILL.md",[83],{"categoryNo":84,"categoryName":85,"taxonomyType":86,"taxonomyTypeDesc":87},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[89,90,91,92,93,29,94,95,96,97,98,99,100,101],"segmentation","user","user segmentation","profiler","user segmentation profiler","run","workflow","session","beginner","icp","goals","builder","growth",{"skillNo":103,"name":104,"nameZh":6,"description":105,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":106,"categories":107,"keywords":108,"publishedAt":36},"01M6X7YJKM9DRPMEDW22PETKDE","user-background-interviewer","Conducts a deep background interview to understand what types of app ideas this specific user is most likely to succeed with based on their domain knowledge, networks, and skills.","https:\u002F\u002Fgithub.com\u002FMaxKmet\u002Fidea-validation-agents\u002Fblob\u002Fmain\u002Fskills\u002Fuser-background-interviewer\u002FSKILL.md",[],[109,90,110,111,112,113,114,115,116,117,118,119,120],"background","user background interviewer","with","types","understand","app","deep","ideas","domain","interview","networks","knowledge",{"skillNo":122,"name":123,"nameZh":6,"description":124,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":125,"categories":126,"keywords":132,"publishedAt":36},"01M6X7YEX3NTXGXAY8SQRSK7YG","trend-to-product-mapper","Maps viral social content and trending topics to concrete app opportunities by extracting the underlying problem and validating monetization fit.","https:\u002F\u002Fgithub.com\u002FMaxKmet\u002Fidea-validation-agents\u002Fblob\u002Fmain\u002Fskills\u002Ftrend-to-product-mapper\u002FSKILL.md",[127],{"categoryNo":128,"categoryName":129,"taxonomyType":130,"taxonomyTypeDesc":131},"01JBSEEDCAT000000000000031","产品经理","PROFESSION","适用职业",[133,134,135,136,114,137,138,139,140,141,142,143,144,145,146,147],"product","mapper","trend to product mapper","trend","topics","extracting","trending","problem","fit","viral","monetization","social","maps","social content","content",{"skillNo":149,"name":150,"nameZh":6,"description":151,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":152,"categories":153,"keywords":154,"publishedAt":36},"01M6X7Y9PJGB5W9Y2RGC7MMC8T","trend-analysis","Analyzes market trends across platforms (TikTok, Reddit, App Store, Google Trends) for a given topic or category. Writes a new file to memory\u002Fmarket_insights\u002F.","https:\u002F\u002Fgithub.com\u002FMaxKmet\u002Fidea-validation-agents\u002Fblob\u002Fmain\u002Fskills\u002Ftrend-analysis\u002FSKILL.md",[],[155,136,156,157,23,158,24,159,160,114,161,162,163,33,164,165,166],"analysis","trend analysis","across","google trends","store","trends","app store","tiktok","reddit","file","memory","google",{"skillNo":168,"name":169,"nameZh":6,"description":170,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":171,"categories":172,"keywords":173,"publishedAt":36},"01M6X7Y5GHKXC295FGVJN4Y93R","tam-sam-som-builder","Estimates TAM, SAM, and realistic SOM for a B2C app idea using triangulated bottom-up methodology anchored to market_insights trend data, competitor revenue proxies, and community size signals. Includes indie capture rate benchmarks and growth-rate adjustments by trend velocity.","https:\u002F\u002Fgithub.com\u002FMaxKmet\u002Fidea-validation-agents\u002Fblob\u002Fmain\u002Fskills\u002Ftam-sam-som-builder\u002FSKILL.md",[],[174,175,100,176,32,177,27,136,178,101,33,179,180,24,23,181,182,183,114,184],"tam sam som builder","sam","community","velocity","up","benchmarks","revenue","rate","competitor","proxies","data"]