Skip to content
All Skills

Ln 201 Opportunity Discoverer

Discovers growth opportunities using Traffic-First KILL funnel. Use when searching for next product direction with validated demand.

Software Engineering|v1|Updated 7/14/2026|GitHub source
MCP get_skill({ skillId: "opportunity-discoverer-362a940b" })

Use this skill with your agent

Create a free account and connect via MCP

Get Started Free
> **Paths:** File paths (`references/`, `../ln-*`) are relative to this skill directory.

# Opportunity Discoverer

**Type:** L3 Worker
**Category:** 2XX Planning

Traffic-First approach to finding next growth direction for existing product.

## Core Philosophy

> **Anti-pattern:** Idea → Surveys → Product → "where's traffic?"
> **Correct:** Traffic → Niche → MVP → Launch under existing demand

### The 90% Developer Bug

Most fail because they:
1. Invent idea with no analogs
2. Ask 5 people "would you pay?" (they say yes for a hot dog)
3. Build product with round sum
4. Launch with "now let's set up traffic"
5. Discover: no traffic exists, never did

**No marketer will build funnel for what cold traffic doesn't buy.**

### Traffic-First Principles

| # | 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 |

### Supporting Methodology

**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."

---

## Purpose & Scope

- Discover growth direction BEFORE Epic creation
- Filter ideas through evidence-first KILL funnel
- Output: one recommended idea + one traffic channel
- Position: before ln-210 (Epic Coordinator)

## Runtime Contract

**MANDATORY READ:** Load `references/planning_worker_runtime_contract.md`, `references/coordinator_summary_contract.md`

Runtime family: `planning-worker-runtime`

Identifier:
- discovery work item identifier

Phases:
1. `PHASE_0_CONFIG`
2. `PHASE_1_INPUT_PROCESSING`
3. `PHASE_2_KILL_FUNNEL`
4. `PHASE_3_RANK_SURVIVORS`
5. `PHASE_4_WRITE_DISCOVERY_REPORT`
6. `PHASE_5_WRITE_SUMMARY`
7. `PHASE_6_SELF_CHECK`

Summary contract:
- `summary_kind=opportunity-discovery-worker`
- standalone mode may return the summary without artifact persistence
- managed mode writes the same JSON to `summaryArtifactPath`
- default managed artifact path pattern: `.hex-skills/runtime-artifacts/runs/{parent_run_id}/opportunity-discovery-worker/ln-201--{identifier}.json`

## When to Use

**Use this skill when:**
- Product exists, seeking next growth direction
- Have 3-10 potential ideas/niches
- Want to validate opportunity before committing
- Need to choose ONE channel to focus on

**Do NOT use when:**
- No product context (greenfield startup)
- Already have validated direction (skip to ln-210)
- Prioritizing existing Stories (use ln-230)

---

## Input Parameters

| 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 list
- `context="SaaS for X"` — generate ideas from product
- Both — generate + add user ideas

---

## KILL Funnel Pipeline

Ideas 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
```

### Evidence Bundle (single research pass)

**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:** Where do people actively look for this solution?
- **Demand:** Search volume, trend direction, or strong community pain signal
- **Competition:** Competitor count and ocean type
- **Revenue:** Plausible price band and willingness to pay pattern

**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 |

### Hard Kill Matrix

Kill immediately when any hard-stop condition is true:
- no identifiable traffic channel
- demand clearly below viable threshold with no compensating niche signal
- competition index = 5 and no clear wedge
- expected revenue below $20/user for a small-team business

Record the kill reason and stop analysis for that idea.

### Personal Interest

**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:**
- Low interest = burnout in 3 months
- High interest = sustained motivation through hard times
- You'll spend 2+ years on this

**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

---

### MVP-ability

**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

---

## Workflow

### Phase 1: Input Processing (2 min)

1. **Parse input:**
   - If `ideas`: split comma-separated list
   - If `context`: generate 5-7 ideas via WebSearch
   - If both: combine

2. **Validate count:**
   - Minimum: 3 ideas
   - Maximum: 10 ideas

3. **Create output directory:**
   ```bash
   mkdir -p docs/reference/research/
   ```

**Output:** Idea queue (3-10 items) and checkpoint for `PHASE_1_INPUT_PROCESSING`

---

### Phase 2: KILL Funnel (per idea)

**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:**
- Process ONE idea at a time
- One research bundle per idea instead of four separate research phases
- KILL early = no interest prompt, no MVP assessment
- Clear context after each idea

---

### Phase 3: Rank Survivors (2 min)

**If survivors exist:**

1. Calculate composite score:
   ```
   Score = Demand_score + (6 - Competition_index) + Revenue_score + Interest + MVP_score
   ```

2. Sort by score descending

3. Select TOP recommendation

**If no survivors:**
- Report: "All ideas killed. Rethink direction."
- Show KILL log for learning

---

### Phase 4: Output (2 min)

**Generate:** `docs/reference/research/[YYYY-MM-DD]-discovery.md`

Also emit structured runtime summary:
- `schema_version`
- `summary_kind=opportunity-discovery-worker`
- `run_id`
- `identifier`
- `producer_skill=ln-201`
- `produced_at`
- payload with `input_mode`, `ideas_analyzed`, `generated_ideas`, `survivors_count`, `killed_count`, `top_recommendation`, `report_path`, `warnings`

**Structure:**

```markdown
# 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
```

---

## Time-Box

| 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.

---

## Integration

**Position in workflow:**
```
Product exists
     ↓
ln-201 (Opportunity Discovery) ← THIS SKILL
     ↓
ln-210 (Epic Coordinator)
     ↓
ln-220 (Story Coordinator)
```

**Dependencies:**
- WebSearch (all filters except Interest)
- AskUserQuestion (Interest filter)
- Write, Bash (output)

---

## Critical Rules

1. **Traffic first** — no traffic channel = no analysis
2. **Bundle evidence once** — do not run separate research-heavy phases if one pass can answer traffic, demand, competition, and revenue
3. **KILL immediately** — don't score dead ideas
4. **One recommendation** — avoid paralysis
5. **No surveys** — real search data only
6. **Interest matters** — ask only for externally viable ideas
7. **MVP speed** — slow launch = slow learning

---

## Example Usage

**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:**

```markdown
# 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 |
```

---

## Definition of Done

- [ ] Ideas brainstormed from product context and market signals
- [ ] Evidence bundle collected for each idea before kill decisions
- [ ] Hard kill matrix applied before interest and MVP checks
- [ ] Survivors scored and ranked
- [ ] Discovery document generated at `docs/reference/research/[YYYY-MM-DD]-discovery.md`
- [ ] TOP RECOMMENDATION identified with channel + rationale
- [ ] KILL Log documents all eliminated ideas with reasons
- [ ] Structured `opportunity-discovery-worker` summary returned
- [ ] Summary artifact written when `summaryArtifactPath` is provided

## Reference Files

| File | Purpose |
|------|---------|
| [filter_criteria.md](references/filter_criteria.md) | KILL thresholds for all filters |
| [channel_analysis.md](references/channel_analysis.md) | Traffic channel identification |
| [discovery_template.md](references/templates/discovery_template.md) | Output markdown template |

- **MANDATORY READ:** Load `references/research_tool_fallback.md`

---

**Version:** 2.0.0
**Last Updated:** 2026-01-29
#agile-workflow#code-review#planningweb-search

Related Skills

More skills in Software Engineering

Accessibility Standards

Comprehensive web accessibility standards based on WCAG 2.2 AA, with 38+ anti-patterns, legal enforcement context (EAA, ADA Title II), WAI-ARIA patterns, and framework-specific fixes for modern web frameworks and libraries.

#github-copilot#accessibilityMIT

Accord

Authoring unified specification packages across Business/Development/Design teams via staged elaboration (L0 Vision → L1 Requirements → L2 Team Detail → L3 Acceptance Criteria). No code. Use when authoring cross-team specs, building L0-L3 packages, or aligning Biz/Dev/Design on a single source of truth.

#broad-capability#developmentMIT

Acquire Codebase Knowledge

Use this skill when the user explicitly asks to map, document, or onboard into an existing codebase. Trigger for prompts like "map this codebase", "document this architecture", "onboard me to this repo", or "create codebase docs". Do not trigger for routine feature implementation, bug fixes, or narrow code edits unless the user asks for repository-level discovery.

#github-copilot#documentationMIT

Acreadiness Assess

Run the AgentRC readiness assessment on the current repository and produce a static HTML dashboard at reports/index.html. Wraps `npx github:microsoft/agentrc readiness` and hands off rendering to the @ai-readiness-reporter custom agent. Supports policies (--policy) for org-specific scoring. Use when asked to assess, audit, or score the AI readiness of a repo.

#github-copilot#planningMIT

Acreadiness Generate Instructions

Generate tailored AI agent instruction files via AgentRC instructions command. Produces .github/copilot-instructions.md (default, recommended for Copilot in VS Code) plus optional per-area .instructions.md files with applyTo globs for monorepos. Use after running /acreadiness-assess to close gaps in the AI Tooling pillar.

#github-copilot#skillMIT

Acreadiness Policy

Help the user pick, write, or apply an AgentRC policy. Policies customise readiness scoring by disabling irrelevant checks, overriding impact/level, setting pass-rate thresholds, or chaining org baselines with team overrides. Use when the user asks about strict mode, AI-only scoring, custom weights, CI gating, or wants org-wide standardisation.

#github-copilot#planningMIT