skills-catalog/ln-201-opportunity-discoverer/SKILL.md
Discovers growth opportunities using Traffic-First KILL funnel. Use when searching for next product direction with validated demand.
npx skillsauth add levnikolaevich/claude-code-skills ln-201-opportunity-discovererInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Paths: File paths (
shared/,references/,../ln-*) are relative to skills repo root. If not found at CWD, locate this SKILL.md directory and go up one level for repo root. Ifshared/is missing, fetch files via WebFetch fromhttps://raw.githubusercontent.com/levnikolaevich/claude-code-skills/master/skills/{path}.
Type: L3 Worker Category: 2XX Planning
Traffic-First approach to finding next growth direction for existing product.
Anti-pattern: Idea → Surveys → Product → "where's traffic?" Correct: Traffic → Niche → MVP → Launch under existing demand
Most fail because they:
No marketer will build funnel for what cold traffic doesn't buy.
| # | Principle | Anti-pattern | |---|-----------|--------------| | 1 | Traffic exists BEFORE product | Building then searching for traffic | | 2 | No surveys — measure real search demand | Asking "would you buy?" | | 3 | Existing demand — launch under what people search | Creating new category | | 4 | One channel, one idea — no spreading | Testing 5 channels at once | | 5 | KILL early — fail fast, don't waste time | Scoring all ideas equally |
Marc Andreessen (pmarca):
"Validate market at practical level — go get paying customers to demonstrate market exists."
Sam Altman (YC):
"Who desperately needs the product? Best answer is going after large part of small market." "Test idea by launching or trying to sell — get letter of intent before code."
MANDATORY READ: Load shared/references/planning_worker_runtime_contract.md, shared/references/coordinator_summary_contract.md
Runtime family: planning-worker-runtime
Identifier:
Phases:
PHASE_0_CONFIGPHASE_1_INPUT_PROCESSINGPHASE_2_KILL_FUNNELPHASE_3_RANK_SURVIVORSPHASE_4_WRITE_DISCOVERY_REPORTPHASE_5_WRITE_SUMMARYPHASE_6_SELF_CHECKSummary contract:
summary_kind=opportunity-discovery-workersummaryArtifactPath.hex-skills/runtime-artifacts/runs/{parent_run_id}/opportunity-discovery-worker/ln-201--{identifier}.jsonUse this skill when:
Do NOT use when:
| Parameter | Required | Description | Default | |-----------|----------|-------------|---------| | ideas | No | Comma-separated list | - | | context | No | Product description for generation | - | | strict | No | Strict KILL thresholds | true |
Input modes:
ideas="idea1, idea2, idea3" — evaluate listcontext="SaaS for X" — generate ideas from productIdeas do not go through 4 separate research-heavy passes anymore. Each idea gets one bundled evidence pass first.
Idea → [Evidence bundle: traffic + demand + competition + revenue]
↓
[Hard kill matrix]
↓
[Interest gate]
↓
[MVP gate]
↓
SURVIVOR
Question: Is there enough external evidence to justify deeper evaluation?
Research bundle:
WebSearch: "[idea] how people find solutions"
WebSearch: "[idea] search volume {current_year}"
WebSearch: "[idea] competitors {current_year}"
WebSearch: "[idea] pricing SaaS"
Extract four signals in one pass:
Traffic channel examples:
| Channel | Signal | Best for | |---------|--------|----------| | Search/SEO | People Google "[problem] solution" | Info products, tools | | YouTube | Tutorial searches exist | Education, how-to | | Marketplaces | Category exists (ProductHunt, AppStore) | Apps, plugins | | Communities | Active subreddits, forums | Niche products | | Paid Ads | Competitors running ads | Proven demand | | Outbound | Clear ICP, reachable | B2B high-ticket |
Demand thresholds:
| Volume | Verdict | |--------|---------| | >10K/month | Strong demand | | 1K-10K/month | Viable niche | | <1K/month | Weak unless compensated by very strong niche signal |
Competition thresholds:
| Competitors | Index | Ocean | Verdict | |-------------|-------|-------|---------| | 0 | 1 | Blue | Opportunity if demand is real | | 1-2 | 2 | Emerging | Best entry point | | 3-5 | 3 | Growing | Differentiation needed | | 6-10 | 4 | Mature | Hard but possible | | >10 | 5 | Red | Often kill-worthy |
Revenue thresholds:
| ARPU | Market type | Viability | |------|-------------|-----------| | >$100/user/mo | Enterprise | High margin | | $50-100 | Professional | Good | | $20-50 | Prosumer | Viable | | $5-20 | Consumer | Volume needed | | <$5 | Ad-supported | Usually not worth it |
Kill immediately when any hard-stop condition is true:
Record the kill reason and stop analysis for that idea.
Question: Will you enjoy building this?
Method: AskUserQuestion — rate 1-5
Rate your interest in building [idea]:
1 = Meh, would do for money only
2 = Low interest
3 = Neutral
4 = Interested
5 = Excited, would build for free
Why this matters:
When to ask: Only for ideas that survive the external evidence bundle.
KILL if: Score 1-2 — you'll quit before PMF.
Output: Score 1-5
Question: Can you launch in 4 weeks?
Assessment:
| Factor | Question | Red flag | |--------|----------|----------| | Tech | Existing skills or need to learn? | New stack | | Dependencies | External APIs, partners needed? | Waiting on others | | Content | Significant content creation? | Months of writing | | Regulations | Legal/compliance requirements? | Licenses, approvals | | Team | Solo or need to hire? | Can't start alone |
Time estimates:
| Weeks | Complexity | Verdict | |-------|------------|---------| | 1-2 | Solo, existing skills | Best | | 2-4 | Minor learning curve | Good | | 4-8 | Some new tech | Acceptable | | >8 | Significant infrastructure | KILL |
When to assess: Only for ideas that survive external evidence + interest gate.
KILL if: >8 weeks to MVP — too slow to validate.
Output: Weeks estimate + blockers
Parse input:
ideas: split comma-separated listcontext: generate 5-7 ideas via WebSearchValidate count:
Create output directory:
mkdir -p docs/reference/research/
Output: Idea queue (3-10 items) and checkpoint for PHASE_1_INPUT_PROCESSING
Process each idea through one bundled evidence pass, then the personal filters only for survivors:
FOR each idea:
Build evidence bundle:
traffic + demand + competition + revenue
Apply hard kill matrix
IF failed → KILL, log reason, NEXT idea
Ask Interest
IF score 1-2 → KILL, log reason, NEXT idea
Assess MVP-ability
IF >8 weeks → KILL, log reason, NEXT idea
→ SURVIVOR: add to survivors list
Token efficiency:
If survivors exist:
Calculate composite score:
Score = Demand_score + (6 - Competition_index) + Revenue_score + Interest + MVP_score
Sort by score descending
Select TOP recommendation
If no survivors:
Generate: docs/reference/research/[YYYY-MM-DD]-discovery.md
Also emit structured runtime summary:
schema_versionsummary_kind=opportunity-discovery-workerrun_ididentifierproducer_skill=ln-201produced_atinput_mode, ideas_analyzed, generated_ideas, survivors_count, killed_count, top_recommendation, report_path, warningsStructure:
# Opportunity Discovery: [Date]
## Summary
- Ideas analyzed: X
- Survivors: Y
- Killed: Z
## TOP RECOMMENDATION
**Idea:** [Name]
**Channel:** [Primary channel]
**Why:** [2-3 sentence rationale]
### Key metrics:
- Demand: [volume]/month
- Competition: [Index] [Ocean type]
- Revenue: $[X]/user
- MVP: [X] weeks
## Survivors Table
| Idea | Channel | Demand | Competition | Revenue | Interest | MVP | Score |
|------|---------|--------|-------------|---------|----------|-----|-------|
| ... | ... | ... | ... | ... | ... | ... | ... |
## KILL Log
| Idea | Killed at | Reason |
|------|-----------|--------|
| ... | ... | ... |
## Next Steps
1. Create Epic with ln-210 for top recommendation
2. Focus on [channel] as primary acquisition
3. Target MVP in [X] weeks
| Ideas | Estimated time | |-------|---------------| | 3 | 15-20 min | | 5 | 25-35 min | | 10 | 50-70 min |
Note: KILL funnel is faster than full scoring — bad ideas die early.
Position in workflow:
Product exists
↓
ln-201 (Opportunity Discovery) ← THIS SKILL
↓
ln-210 (Epic Coordinator)
↓
ln-220 (Story Coordinator)
Dependencies:
With ideas:
ln-201-opportunity-discoverer ideas="AI writing tool, code review bot, translation API"
With context:
ln-201-opportunity-discoverer context="B2B developer tools SaaS"
Example output:
# Opportunity Discovery: 2026-01-29
## TOP RECOMMENDATION
**Idea:** Code review bot
**Channel:** SEO (developers search "code review tool")
**Why:** Growing demand (15K/mo), emerging market (3 competitors),
$50/user pricing proven, can MVP in 3 weeks with existing skills.
## KILL Log
| Idea | Killed at | Reason |
|------|-----------|--------|
| AI writing | Competition | Red Ocean (25+ competitors) |
| Translation API | Revenue | Commoditized, <$10/user |
docs/reference/research/[YYYY-MM-DD]-discovery.mdopportunity-discovery-worker summary returnedsummaryArtifactPath is provided| File | Purpose | |------|---------| | filter_criteria.md | KILL thresholds for all filters | | channel_analysis.md | Traffic channel identification | | discovery_template.md | Output markdown template |
shared/references/research_tool_fallback.mdVersion: 2.0.0 Last Updated: 2026-01-29
testing
Audits architecture config boundaries: typed settings, scattered env reads, config leakage, and layer ownership. Use for config architecture.
tools
Finds architecture-level modernization opportunities: obsolete custom mechanisms, overbuilt extension points, and simplifiable architecture. Use when auditing architecture evolution.
development
Builds dependency topology, detects cycles, validates import rules, and calculates coupling metrics. Use when auditing architecture topology.
testing
Checks layer, resource ownership, and orchestration boundaries. Use when auditing architecture boundary enforcement.