@veyralabs/skills 0.5.0 → 0.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/skills/venture-suite/venture-analyst/SKILL.md +398 -102
- package/skills/venture-suite/venture-analyst/references/execution-roadmap.md +187 -0
- package/skills/venture-suite/venture-analyst/references/founder-traps.md +191 -0
- package/skills/venture-suite/venture-analyst/references/moat-patterns.md +176 -0
- package/skills/venture-suite/venture-analyst/templates/verdict.md +216 -69
package/package.json
CHANGED
|
@@ -5,16 +5,18 @@ description: Startup and SaaS idea validation. Researches market evidence, maps
|
|
|
5
5
|
|
|
6
6
|
# Venture Analyst
|
|
7
7
|
|
|
8
|
-
Research a startup or SaaS idea and determine if it's worth building. No fluff
|
|
8
|
+
Research a startup or SaaS idea and determine if it's worth building. No fluff - real evidence from real sources, structured reasoning, and a committed decision.
|
|
9
9
|
|
|
10
10
|
## What this does
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
Six phases, each producing structured output:
|
|
13
13
|
|
|
14
|
-
1. **Problem Discovery** - Find evidence the problem actually exists (Reddit, HN, GitHub issues)
|
|
14
|
+
1. **Problem Discovery** - Find evidence the problem actually exists (Reddit, HN, GitHub issues, trends)
|
|
15
15
|
2. **Competitor Intelligence** - Map the landscape, find gaps, extract pricing signals
|
|
16
16
|
3. **Validation Experiments** - Generate 3 prioritized experiments to test demand before building
|
|
17
|
-
4. **Verdict** - Bull/Bear/Judge debate
|
|
17
|
+
4. **Verdict** - Bull/Bear/Judge debate with Confidence Engine and scored recommendation
|
|
18
|
+
5. **Decision Intelligence** - Contradiction detection, founder trap check, reality check, distribution plan, time-to-first-dollar
|
|
19
|
+
6. **Execution & Moat** - 30-day roadmap, moat scoring, PMF simulation, market timing
|
|
18
20
|
|
|
19
21
|
## How to use
|
|
20
22
|
|
|
@@ -23,63 +25,79 @@ Describe your idea. Include:
|
|
|
23
25
|
- Who it's for (target customer)
|
|
24
26
|
- What problem it solves
|
|
25
27
|
|
|
26
|
-
Optional: budget for experiments, market type (B2C/B2B), known competitors.
|
|
28
|
+
Optional: budget for experiments, market type (B2C/B2B), known competitors, founder background.
|
|
27
29
|
|
|
28
|
-
## Phase 1
|
|
30
|
+
## Phase 1 - Problem Discovery
|
|
29
31
|
|
|
30
32
|
**Goal:** Find evidence the problem is real and people talk about it unprompted.
|
|
31
33
|
|
|
32
34
|
Use `scripts/sources.py` to collect evidence:
|
|
33
35
|
|
|
34
36
|
```python
|
|
35
|
-
from scripts.sources import search_hn, search_hn_comments, search_reddit, search_github_issues, get_trends
|
|
37
|
+
from scripts.sources import search_hn, search_hn_comments, search_reddit, search_github_issues, get_trends, calculate_evidence_score
|
|
36
38
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
hn_comments = search_hn_comments(query, min_points=3, limit=30)
|
|
40
|
-
|
|
41
|
-
# Reddit: find complaints, questions, "is there a tool for X" posts
|
|
39
|
+
hn_stories = search_hn(query, limit=20)
|
|
40
|
+
hn_comments = search_hn_comments(query, min_points=3, limit=30)
|
|
42
41
|
reddit_posts = search_reddit(query, limit=25, timeframe="year")
|
|
42
|
+
gh_issues = search_github_issues(query, limit=20)
|
|
43
|
+
trend_data = get_trends(keyword)
|
|
44
|
+
```
|
|
43
45
|
|
|
44
|
-
|
|
45
|
-
gh_issues = search_github_issues(query, limit=20)
|
|
46
|
+
**Evidence Quality (not just quantity):**
|
|
46
47
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
48
|
+
Evaluate source mix and signal strength, not just raw counts.
|
|
49
|
+
|
|
50
|
+
| Source | Quality signal | Weight |
|
|
51
|
+
|--------|---------------|--------|
|
|
52
|
+
| HN Ask/Show with 50+ points | People actively seeking solutions | High |
|
|
53
|
+
| Reddit complaints with 100+ upvotes | Widespread frustration | High |
|
|
54
|
+
| GitHub issues with many reactions | Developers hitting the same wall | High |
|
|
55
|
+
| HN/Reddit mentions of spending money | Willingness to pay | Very high |
|
|
56
|
+
| Rising trend | Growing problem | High |
|
|
57
|
+
| Trend flat | Established problem | Medium |
|
|
58
|
+
| Trend declining | Dying problem | Negative |
|
|
59
|
+
| Generic blog posts | Low signal noise | Low |
|
|
60
|
+
|
|
61
|
+
Evidence Quality grades:
|
|
62
|
+
- **A** - Multiple high-quality sources, direct pain quotes, spending signals
|
|
63
|
+
- **B** - Good source mix, clear pain but limited spending signals
|
|
64
|
+
- **C** - Some signal but concentrated in one source
|
|
65
|
+
- **D** - Thin signal, only indirect evidence
|
|
66
|
+
- **F** - Essentially no evidence
|
|
50
67
|
|
|
51
68
|
**Synthesize findings:**
|
|
52
69
|
|
|
53
|
-
|
|
54
|
-
- People spending money on
|
|
55
|
-
- Recurring complaints with no
|
|
70
|
+
Strongest pain signals (prioritize):
|
|
71
|
+
- People actively spending money on imperfect solutions
|
|
72
|
+
- Recurring complaints with no satisfying answer
|
|
56
73
|
- "Is there a tool that does X?" posts with many upvotes
|
|
57
|
-
- GitHub issues with many reactions
|
|
58
|
-
- Rising trend line
|
|
74
|
+
- GitHub issues with many reactions, still open
|
|
59
75
|
|
|
60
76
|
Red flags:
|
|
61
|
-
- Zero discussion anywhere
|
|
62
|
-
- Problem exists but
|
|
63
|
-
- Only a few power users care,
|
|
77
|
+
- Zero discussion anywhere (even if search terms varied)
|
|
78
|
+
- Problem exists but everyone's workaround is "good enough"
|
|
79
|
+
- Only a few power users care, no broad market
|
|
80
|
+
- Discussion peaked years ago (dying category)
|
|
64
81
|
|
|
65
82
|
**Output format:**
|
|
66
83
|
```
|
|
67
84
|
## Problem Evidence
|
|
68
85
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
### What people say (direct quotes preferred)
|
|
73
|
-
- [Source] "[quote or paraphrase]" — [upvotes/reactions]
|
|
86
|
+
Evidence Score: [0-100]
|
|
87
|
+
Evidence Quality: [A/B/C/D/F]
|
|
74
88
|
|
|
75
|
-
|
|
76
|
-
- [
|
|
89
|
+
Source breakdown:
|
|
90
|
+
- HN: [n] discussions, strongest: "[quote]"
|
|
91
|
+
- Reddit: [n] posts, strongest: "[quote]"
|
|
92
|
+
- GitHub: [n] issues, strongest reaction count: [n]
|
|
93
|
+
- Trend: [rising/stable/declining], avg interest: [n]
|
|
77
94
|
|
|
78
|
-
|
|
79
|
-
- [what
|
|
95
|
+
Quality notes:
|
|
96
|
+
- [what makes this evidence strong]
|
|
97
|
+
- [what's missing]
|
|
80
98
|
```
|
|
81
99
|
|
|
82
|
-
## Phase 2
|
|
100
|
+
## Phase 2 - Competitor Intelligence
|
|
83
101
|
|
|
84
102
|
**Goal:** Map who's already solving this. Find pricing, positioning gaps, weak points.
|
|
85
103
|
|
|
@@ -87,57 +105,38 @@ Red flags:
|
|
|
87
105
|
from scripts.scraper import scrape_competitor
|
|
88
106
|
from scripts.sources import search_github_repos, search_web
|
|
89
107
|
|
|
90
|
-
|
|
91
|
-
repos = search_github_repos(f"{idea} tool", limit=8)
|
|
108
|
+
repos = search_github_repos(f"{idea} tool", limit=8)
|
|
92
109
|
web_results = search_web(f"{idea} software alternatives", limit=8)
|
|
93
110
|
|
|
94
|
-
# Scrape each competitor's pricing + positioning
|
|
95
111
|
for url in competitor_urls:
|
|
96
112
|
data = scrape_competitor(url)
|
|
97
|
-
# data
|
|
113
|
+
# data: title, tagline, description, pricing, features, tech_stack
|
|
98
114
|
```
|
|
99
115
|
|
|
100
|
-
**Competitive map
|
|
116
|
+
**Competitive map:**
|
|
101
117
|
```
|
|
102
|
-
| Name | Pricing | Target | Weakness | Stars |
|
|
103
|
-
|
|
104
|
-
| X | $49/mo | SMBs | No API | 2.1k |
|
|
118
|
+
| Name | Pricing | Target | Weakness | Stars/Users |
|
|
119
|
+
|------|---------|--------|----------|-------------|
|
|
105
120
|
```
|
|
106
121
|
|
|
107
|
-
**Gaps to
|
|
108
|
-
- Price ceiling:
|
|
109
|
-
- Audience gap: power users vs beginners vs enterprise
|
|
110
|
-
- Feature gap: what do
|
|
111
|
-
- Distribution gap:
|
|
112
|
-
|
|
113
|
-
**G2 reviews (when Playwright available):**
|
|
114
|
-
```python
|
|
115
|
-
from scripts.scraper import scrape_g2_reviews
|
|
116
|
-
reviews = scrape_g2_reviews("https://www.g2.com/products/[product]/reviews")
|
|
117
|
-
# Check for recurring "cons" patterns
|
|
118
|
-
```
|
|
122
|
+
**Gaps to identify:**
|
|
123
|
+
- Price ceiling: tier missing between free and enterprise?
|
|
124
|
+
- Audience gap: power users vs beginners vs enterprise underserved?
|
|
125
|
+
- Feature gap: what do reviews complain about repeatedly?
|
|
126
|
+
- Distribution gap: channel nobody is using?
|
|
119
127
|
|
|
120
|
-
**
|
|
121
|
-
```
|
|
122
|
-
## Competitor Map
|
|
128
|
+
**Opportunity Score vs Startup Score:**
|
|
123
129
|
|
|
124
|
-
|
|
125
|
-
[table]
|
|
130
|
+
These are two different things. Conflating them is a common mistake.
|
|
126
131
|
|
|
127
|
-
|
|
128
|
-
|
|
132
|
+
- **Opportunity Score** = how good is the market? (demand, size, willingness to pay)
|
|
133
|
+
- **Startup Score** = how viable is this as a startup? (scalability, defensibility, execution path)
|
|
129
134
|
|
|
130
|
-
|
|
131
|
-
- Gap 1: [description + evidence]
|
|
132
|
-
- Gap 2: [description + evidence]
|
|
135
|
+
A market can be huge (high opportunity) but impossible to win as a bootstrapped startup (low startup score). Example: "A better Stripe" - huge opportunity, near-zero startup score for most founders.
|
|
133
136
|
|
|
134
|
-
|
|
135
|
-
- Range: [$X - $Y/month]
|
|
136
|
-
- Free tier pattern: [present/absent]
|
|
137
|
-
- Typical model: [seat/flat/usage]
|
|
138
|
-
```
|
|
137
|
+
Score both separately in the competitor output section.
|
|
139
138
|
|
|
140
|
-
## Phase 3
|
|
139
|
+
## Phase 3 - Validation Experiments
|
|
141
140
|
|
|
142
141
|
**Goal:** Before writing code, find out if people will actually pay.
|
|
143
142
|
|
|
@@ -147,24 +146,62 @@ from scripts.experiments import generate_experiments, format_experiment_output
|
|
|
147
146
|
experiments = generate_experiments(
|
|
148
147
|
idea=idea,
|
|
149
148
|
target_customer=target,
|
|
150
|
-
market_type="b2b",
|
|
151
|
-
competition_level="medium",
|
|
152
|
-
budget="zero",
|
|
149
|
+
market_type="b2b", # or "b2c"
|
|
150
|
+
competition_level="medium",
|
|
151
|
+
budget="zero",
|
|
153
152
|
)
|
|
154
|
-
|
|
155
153
|
print(format_experiment_output(experiments, idea))
|
|
156
154
|
```
|
|
157
155
|
|
|
158
|
-
|
|
156
|
+
Present experiments in priority order. Cheapest + highest-signal first.
|
|
159
157
|
|
|
160
|
-
**Mom Test enforcement**
|
|
158
|
+
**Mom Test enforcement** - when helping design interviews or outreach:
|
|
161
159
|
- See `references/mom-test.md` for good vs bad questions
|
|
162
|
-
-
|
|
160
|
+
- Flag any future-hypothetical question ("would you use X?")
|
|
163
161
|
- Replace with past-behavior questions ("how do you currently handle X?")
|
|
164
162
|
|
|
165
|
-
|
|
163
|
+
**Time-To-First-Dollar estimate:**
|
|
164
|
+
|
|
165
|
+
For each experiment path, estimate realistic time to first revenue:
|
|
166
|
+
|
|
167
|
+
| Market type | Typical range | What accelerates it |
|
|
168
|
+
|------------|--------------|---------------------|
|
|
169
|
+
| B2C consumer SaaS | 30-90 days | Viral loop, strong landing page CTR |
|
|
170
|
+
| B2B SMB | 30-60 days | Warm outreach, concierge MVP |
|
|
171
|
+
| B2B mid-market | 60-180 days | Champion inside company, ROI clear |
|
|
172
|
+
| B2B enterprise | 6-18 months | Do not start here without traction |
|
|
173
|
+
| Developer tool (paid) | 14-45 days | Show HN, Product Hunt, X/Twitter post |
|
|
174
|
+
| Marketplace | 90-180+ days | Cold start problem, both sides |
|
|
175
|
+
| Content-led SaaS | 60-120 days | SEO takes time, need existing audience |
|
|
176
|
+
|
|
177
|
+
This is not the time to build - it's the time from starting experiments to first paying customer.
|
|
166
178
|
|
|
167
|
-
|
|
179
|
+
## Phase 4 - Verdict
|
|
180
|
+
|
|
181
|
+
**Goal:** Simulate a debate between Bull, Bear, and Judge. Reach a committed conclusion.
|
|
182
|
+
|
|
183
|
+
### Confidence Engine
|
|
184
|
+
|
|
185
|
+
The confidence score must explain itself. Not "Confidence: High" alone. Show the reasoning.
|
|
186
|
+
|
|
187
|
+
```
|
|
188
|
+
Confidence: [0-100]
|
|
189
|
+
|
|
190
|
+
High confidence because:
|
|
191
|
+
+ [n] Reddit mentions across [n] subreddits
|
|
192
|
+
+ [n] GitHub issues with [n]+ reactions
|
|
193
|
+
+ [n] competitors validated with real pricing
|
|
194
|
+
+ Rising trend over [period]
|
|
195
|
+
+ [specific spending signal found]
|
|
196
|
+
|
|
197
|
+
Confidence reduced because:
|
|
198
|
+
- [specific gap, e.g. weak monetization signals]
|
|
199
|
+
- [e.g. no willingness-to-pay evidence found]
|
|
200
|
+
- [e.g. fragmented ICP - different pain in different segments]
|
|
201
|
+
- [e.g. limited search volume data]
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
This matters because users need to see the reasoning is transparent, not magic.
|
|
168
205
|
|
|
169
206
|
### Bull case (write this first)
|
|
170
207
|
- Strongest evidence for building it
|
|
@@ -173,47 +210,301 @@ Always present experiments in priority order. Cheapest + highest-signal first.
|
|
|
173
210
|
- Best-case scenario with numbers
|
|
174
211
|
|
|
175
212
|
### Bear case (steelman the opposition)
|
|
176
|
-
- Strongest evidence AGAINST
|
|
213
|
+
- Strongest evidence AGAINST building it
|
|
177
214
|
- Why existing solutions might be good enough
|
|
178
215
|
- Market risks, timing risks, competition risks
|
|
179
216
|
- Why it might fail even if the problem is real
|
|
180
217
|
|
|
181
218
|
### Judge verdict
|
|
182
|
-
|
|
219
|
+
|
|
220
|
+
Apply these criteria:
|
|
183
221
|
|
|
184
222
|
| Signal | Weight |
|
|
185
223
|
|--------|--------|
|
|
186
224
|
| Evidence score > 60 | +2 |
|
|
225
|
+
| Evidence quality A or B | +1 |
|
|
187
226
|
| Trend = rising | +1 |
|
|
188
227
|
| Competitors have clear weakness | +1 |
|
|
189
228
|
| No dominant player (>50% market) | +1 |
|
|
190
229
|
| B2B with willingness-to-pay signals | +1 |
|
|
191
230
|
| Price ceiling exists | +1 |
|
|
192
231
|
| Evidence score < 30 | -3 |
|
|
232
|
+
| Evidence quality D or F | -2 |
|
|
193
233
|
| Trend = declining | -2 |
|
|
194
234
|
| 1+ competitor with >100k users + free tier | -2 |
|
|
195
235
|
| Problem is niche (<10k potential users) | -1 |
|
|
236
|
+
| Founder trap detected (high priority) | -2 |
|
|
237
|
+
| Reality check failed | -2 |
|
|
196
238
|
|
|
197
|
-
**Verdict
|
|
239
|
+
**Verdict:**
|
|
198
240
|
```
|
|
199
|
-
|
|
241
|
+
Recommendation: BUILD / VALIDATE FIRST / AVOID
|
|
242
|
+
Confidence: [0-100]
|
|
243
|
+
Score: [+N or -N]
|
|
200
244
|
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
245
|
+
Judge's reasoning:
|
|
246
|
+
[2-3 sentences. Direct. No hedging. Reference the specific evidence that tipped the scale.]
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
## Phase 5 - Decision Intelligence
|
|
250
|
+
|
|
251
|
+
Run this after the Verdict. It does not change the verdict score - it adds context that makes the decision actionable.
|
|
252
|
+
|
|
253
|
+
### Contradiction Detector
|
|
204
254
|
|
|
205
|
-
|
|
206
|
-
[2-3 sentences. Direct. No hedging.]
|
|
255
|
+
Look for contradictions between sources. The most valuable insight is often in the gap between what people say and what the market shows.
|
|
207
256
|
|
|
208
|
-
|
|
209
|
-
[Specific first step. Not generic advice.]
|
|
257
|
+
Common contradiction patterns:
|
|
210
258
|
|
|
211
|
-
|
|
212
|
-
|
|
259
|
+
**Pain high, market growing:**
|
|
260
|
+
```
|
|
261
|
+
Reddit: strong complaints about current solutions
|
|
262
|
+
Competitors: growing, raising funding
|
|
263
|
+
|
|
264
|
+
Interpretation: users hate existing tools but still pay.
|
|
265
|
+
This is an improvement opportunity, not a replacement play.
|
|
266
|
+
Consider: better UX, better pricing, better ICP focus.
|
|
267
|
+
```
|
|
213
268
|
|
|
214
|
-
|
|
215
|
-
[Why specifically this fails. What would have to change.]
|
|
269
|
+
**Pain high, no competitors:**
|
|
216
270
|
```
|
|
271
|
+
Evidence of real pain.
|
|
272
|
+
Zero viable competitors found.
|
|
273
|
+
|
|
274
|
+
Two interpretations:
|
|
275
|
+
1. Blue ocean - opportunity exists
|
|
276
|
+
2. Graveyard - others tried and died
|
|
277
|
+
|
|
278
|
+
Check: search for failed startups in this space. If multiple failed,
|
|
279
|
+
investigate why before treating this as opportunity.
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
**Trend rising, community silent:**
|
|
283
|
+
```
|
|
284
|
+
Google Trends shows growing interest.
|
|
285
|
+
Reddit/HN have minimal discussion.
|
|
286
|
+
|
|
287
|
+
Possible: problem is new, community hasn't formed yet (early).
|
|
288
|
+
Risk: trend is noise, not genuine demand.
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
**Competition dense, pain still high:**
|
|
292
|
+
```
|
|
293
|
+
Multiple established competitors.
|
|
294
|
+
Pain signals still strong and recent.
|
|
295
|
+
|
|
296
|
+
Interpretation: nobody has actually solved it.
|
|
297
|
+
Look for the structural reason: price, UX, missing feature, wrong ICP.
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
When a contradiction is found, output:
|
|
301
|
+
```
|
|
302
|
+
Contradiction detected: [name]
|
|
303
|
+
|
|
304
|
+
[source A] shows: [signal]
|
|
305
|
+
[source B] shows: [signal]
|
|
306
|
+
|
|
307
|
+
Most likely interpretation: [explanation]
|
|
308
|
+
What to verify: [specific experiment or question that resolves this]
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
### Founder Trap Detector
|
|
312
|
+
|
|
313
|
+
Check `references/founder-traps.md` for full criteria.
|
|
314
|
+
|
|
315
|
+
Evaluate the evidence against each trap pattern. Flag any trap where 3+ signals match.
|
|
316
|
+
|
|
317
|
+
Output when trap found:
|
|
318
|
+
```
|
|
319
|
+
Founder Trap: [trap name]
|
|
320
|
+
Evidence: [which signals matched]
|
|
321
|
+
Risk level: [high/medium]
|
|
322
|
+
Does not invalidate the opportunity, but changes the execution approach.
|
|
323
|
+
```
|
|
324
|
+
|
|
325
|
+
### Reality Check
|
|
326
|
+
|
|
327
|
+
This is not about the market - it's about whether this founder can execute this idea.
|
|
328
|
+
|
|
329
|
+
Gather context:
|
|
330
|
+
- What is the founder's background? (from idea description if mentioned)
|
|
331
|
+
- What does the idea require to work? (regulatory, infrastructure, capital, technical depth)
|
|
332
|
+
|
|
333
|
+
Questions to answer:
|
|
334
|
+
1. Does this require compliance, licensing, or regulatory approval?
|
|
335
|
+
2. Does this require partnerships before it can function? (e.g. bank partners, data licenses)
|
|
336
|
+
3. Does this require enterprise sales from day one?
|
|
337
|
+
4. Does this require a team of 10+ to build the MVP?
|
|
338
|
+
5. Is the technical complexity beyond a solo founder?
|
|
339
|
+
|
|
340
|
+
If 2+ of these are true:
|
|
341
|
+
```
|
|
342
|
+
Reality check: Execution path is high-risk for early-stage founders
|
|
343
|
+
|
|
344
|
+
Requires: [list what it requires]
|
|
345
|
+
|
|
346
|
+
This does not mean the opportunity is bad.
|
|
347
|
+
It means: do not start building until these constraints are addressed.
|
|
348
|
+
|
|
349
|
+
Alternative paths:
|
|
350
|
+
- [reduced scope version that avoids the constraint]
|
|
351
|
+
- [validate the demand first, then find the right co-founder/partner]
|
|
352
|
+
```
|
|
353
|
+
|
|
354
|
+
### Distribution Plan
|
|
355
|
+
|
|
356
|
+
Based on the research, recommend 3 specific acquisition channels.
|
|
357
|
+
|
|
358
|
+
Use `references/traction.md` for channel criteria. Apply to this specific market:
|
|
359
|
+
|
|
360
|
+
```
|
|
361
|
+
Top channels for this idea:
|
|
362
|
+
|
|
363
|
+
1. [channel] - because [specific evidence from research]
|
|
364
|
+
Test: [how to run a cheap test in 2 weeks]
|
|
365
|
+
|
|
366
|
+
2. [channel] - because [specific evidence]
|
|
367
|
+
Test: [how to test]
|
|
368
|
+
|
|
369
|
+
3. [channel] - because [specific evidence]
|
|
370
|
+
Test: [how to test]
|
|
371
|
+
|
|
372
|
+
Avoid:
|
|
373
|
+
- SEO - [reason, e.g. "competitive market, 6+ months to rank"]
|
|
374
|
+
- Paid social - [reason, e.g. "B2B ICP hard to target on Meta"]
|
|
375
|
+
```
|
|
376
|
+
|
|
377
|
+
Do not recommend generic channels. Base it on where the pain evidence was actually found.
|
|
378
|
+
|
|
379
|
+
Example: if most Reddit signal came from r/smallbusiness, recommend Reddit community strategy specifically.
|
|
380
|
+
|
|
381
|
+
### Time-To-First-Dollar
|
|
382
|
+
|
|
383
|
+
Based on the market type, competition, and experiment plan:
|
|
384
|
+
|
|
385
|
+
```
|
|
386
|
+
Time-To-First-Dollar estimate: [X-Y weeks/months]
|
|
387
|
+
|
|
388
|
+
Path:
|
|
389
|
+
Week 1-2: [specific action, e.g. "cold outreach to 50 Reddit users who posted about problem"]
|
|
390
|
+
Week 3-4: [specific action]
|
|
391
|
+
Week 5-8: [specific action]
|
|
392
|
+
Target: first paying customer by [date estimate]
|
|
393
|
+
|
|
394
|
+
What would accelerate this: [specific factor]
|
|
395
|
+
What would delay this: [specific risk]
|
|
396
|
+
```
|
|
397
|
+
|
|
398
|
+
## Phase 6 - Execution & Moat
|
|
399
|
+
|
|
400
|
+
**Goal:** Answer "should you dedicate the next 2 years of your life to this?" - not just "is it a good idea?"
|
|
401
|
+
|
|
402
|
+
This phase converts the analysis into action and answers the defensibility question.
|
|
403
|
+
|
|
404
|
+
### Execution Roadmap
|
|
405
|
+
|
|
406
|
+
Use `references/execution-roadmap.md` for the full framework. Output a week-by-week plan tailored to the verdict:
|
|
407
|
+
|
|
408
|
+
**If BUILD:**
|
|
409
|
+
- Week 1: find 5 people with the problem (specific communities from the research)
|
|
410
|
+
- Week 2: deliver value manually before building
|
|
411
|
+
- Week 3: charge for it
|
|
412
|
+
- Week 4: find customer 2-3 and a referral
|
|
413
|
+
|
|
414
|
+
Key rule: no code until someone commits to paying. The roadmap builds toward a transaction, not a product.
|
|
415
|
+
|
|
416
|
+
**If VALIDATE FIRST:**
|
|
417
|
+
- Define the one critical unknown in one sentence
|
|
418
|
+
- Run the cheapest test that could falsify it (2 weeks max)
|
|
419
|
+
- Define pass/fail threshold before starting
|
|
420
|
+
- Week 4: commit to BUILD or pivot/stop based on data
|
|
421
|
+
|
|
422
|
+
**If AVOID:**
|
|
423
|
+
- 2-week pivot investigation using the most interesting signal from the research
|
|
424
|
+
- Or clean stop criteria with specific trigger conditions for revisiting
|
|
425
|
+
|
|
426
|
+
Always include:
|
|
427
|
+
```
|
|
428
|
+
Do NOT build yet: [specific features to avoid and why]
|
|
429
|
+
Reassess if: [specific trigger that means the plan is failing]
|
|
430
|
+
```
|
|
431
|
+
|
|
432
|
+
### Moat Intelligence
|
|
433
|
+
|
|
434
|
+
Score all 5 moat types using `references/moat-patterns.md`. For each:
|
|
435
|
+
|
|
436
|
+
```
|
|
437
|
+
Distribution moat: [1-10] - [one-line reason]
|
|
438
|
+
Data moat: [1-10] - [one-line reason]
|
|
439
|
+
Community moat: [1-10] - [one-line reason]
|
|
440
|
+
Switching cost: [1-10] - [one-line reason]
|
|
441
|
+
Execution moat: [1-10] - [one-line reason]
|
|
442
|
+
|
|
443
|
+
Overall Moat Score: [weighted average of top 2]
|
|
444
|
+
|
|
445
|
+
Most realistic moat: [type]
|
|
446
|
+
How to build it: [specific action, not generic advice]
|
|
447
|
+
```
|
|
448
|
+
|
|
449
|
+
Do not score high without evidence. "We will accumulate data" is not a data moat - it is a plan. Score what exists or can realistically exist in 6 months.
|
|
450
|
+
|
|
451
|
+
### PMF Simulation
|
|
452
|
+
|
|
453
|
+
Generate 3 ICP personas based on the evidence found in Phases 1-2. Each persona is grounded in actual signals from the research, not invented.
|
|
454
|
+
|
|
455
|
+
```
|
|
456
|
+
Persona A: [job title / situation]
|
|
457
|
+
- Current workflow for the problem: [specific, from research]
|
|
458
|
+
- What they hate about current solution: [from Reddit/HN quotes]
|
|
459
|
+
- What they pay today: [from competitor pricing research]
|
|
460
|
+
- What they would never pay for: [inferred from pain signals]
|
|
461
|
+
- Adoption trigger: [what would make them switch]
|
|
462
|
+
- Adoption blocker: [what would stop them even if interested]
|
|
463
|
+
```
|
|
464
|
+
|
|
465
|
+
Then simulate a 4-week adoption arc for each persona:
|
|
466
|
+
|
|
467
|
+
```
|
|
468
|
+
Week 1: discovers product (channel: [specific channel from distribution plan])
|
|
469
|
+
Week 2: [tries free / books demo / reads docs]
|
|
470
|
+
Week 3: [converts / churns / stalls - and why]
|
|
471
|
+
Week 4: [retained / referred / cancelled]
|
|
472
|
+
```
|
|
473
|
+
|
|
474
|
+
From the 3 simulations, identify the PMF friction points:
|
|
475
|
+
```
|
|
476
|
+
Main adoption blockers:
|
|
477
|
+
- [blocker 1]: affects [n/3] personas
|
|
478
|
+
- [blocker 2]: affects [n/3] personas
|
|
479
|
+
|
|
480
|
+
Easiest persona to convert: [A/B/C] - because [reason]
|
|
481
|
+
Start here.
|
|
482
|
+
```
|
|
483
|
+
|
|
484
|
+
### Market Timing
|
|
485
|
+
|
|
486
|
+
Based on data already collected (trend, GitHub, competition):
|
|
487
|
+
|
|
488
|
+
```
|
|
489
|
+
Market timing: [Too Early / Good Window / Late / Saturated]
|
|
490
|
+
|
|
491
|
+
Signals:
|
|
492
|
+
+ [positive timing signal]
|
|
493
|
+
+ [positive timing signal]
|
|
494
|
+
- [negative timing signal]
|
|
495
|
+
|
|
496
|
+
Window estimate: [closes in X months / open for X years / unclear]
|
|
497
|
+
|
|
498
|
+
Timing verdict:
|
|
499
|
+
[One sentence. Is this the right moment? Why?]
|
|
500
|
+
```
|
|
501
|
+
|
|
502
|
+
Timing patterns to detect:
|
|
503
|
+
|
|
504
|
+
- **Too early:** trend rising but community not formed, infrastructure missing, no paying competitors yet
|
|
505
|
+
- **Good window:** trend rising, 2-5 established players with clear weaknesses, market education done by competitors
|
|
506
|
+
- **Late entry:** dominant player has >50% share and a free tier, market consolidating
|
|
507
|
+
- **Saturated:** 10+ funded competitors, VC money flooding in, CAC rising, differentiation collapsing
|
|
217
508
|
|
|
218
509
|
## Enhancement detection
|
|
219
510
|
|
|
@@ -225,11 +516,9 @@ from scripts.enhance_detect import detect_level, ensure_searxng, best_search
|
|
|
225
516
|
env = detect_level()
|
|
226
517
|
# Returns: docker, searxng, veyrascrape_mcp, github_token, exa_key, tavily_key, groq_key
|
|
227
518
|
|
|
228
|
-
# If Docker available, auto-launch SearXNG for better web search
|
|
229
519
|
if env["docker"] and not env["searxng"]:
|
|
230
520
|
ensure_searxng() # silent, no user prompt
|
|
231
521
|
|
|
232
|
-
# Use best available search
|
|
233
522
|
results = best_search(query, env, limit=10)
|
|
234
523
|
```
|
|
235
524
|
|
|
@@ -258,12 +547,19 @@ From `calculate_evidence_score()` in `sources.py`:
|
|
|
258
547
|
- `references/mom-test.md` - good vs bad interview questions
|
|
259
548
|
- `references/blue-ocean.md` - Value Curve, ERRC Grid, finding uncontested space
|
|
260
549
|
- `references/traction.md` - 19 acquisition channels, Bullseye framework
|
|
550
|
+
- `references/founder-traps.md` - 8 trap patterns with evidence criteria
|
|
551
|
+
- `references/moat-patterns.md` - 5 moat types with scoring criteria 1-10
|
|
552
|
+
- `references/execution-roadmap.md` - 30-day BUILD/VALIDATE/AVOID roadmap framework
|
|
261
553
|
|
|
262
554
|
## Output principles
|
|
263
555
|
|
|
264
556
|
1. Lead with evidence, not opinions
|
|
265
|
-
2. Quote real sources (HN post, Reddit thread, GitHub issue)
|
|
266
|
-
3.
|
|
267
|
-
4.
|
|
268
|
-
5.
|
|
269
|
-
6.
|
|
557
|
+
2. Quote real sources (HN post, Reddit thread, GitHub issue) with specifics
|
|
558
|
+
3. Separate fact from inference - never present interpretation as data
|
|
559
|
+
4. Show the Confidence Engine reasoning - never just state "High confidence"
|
|
560
|
+
5. Run the contradiction check - the most valuable insight is often in the gaps
|
|
561
|
+
6. Check for founder traps before finalizing verdict
|
|
562
|
+
7. Verdict must commit - no "it depends" without specifics and a path forward
|
|
563
|
+
8. Distinguish Opportunity Score from Startup Score
|
|
564
|
+
9. Phase 6 is not optional - the roadmap is what makes the analysis useful
|
|
565
|
+
10. Moat scoring must be honest - score what exists, not what is planned
|