Founder Ideation (Phase 1 Flagship)
Child of founder. This skill is the flagship of the founder family — the most differentiated
subskill. It generates (or attacks) business ideas via adversarial team brainstorm grounded in
real Reddit pain data and GDELT event velocity data.
Scope: Pre-execution ideation. Produces ideas with kill criteria, first experiments, data
citations, and cross-fire attack histories. Writes results to .founder/venture-brief.yaml.
Siblings (parent = founder):
founder-validation — Phase 2 — Mom Test, assumption ledger, experiment sequencing
founder-business-model — Phase 2 — unit economics calculator mode
founder-gtm — Phase 2 — positioning, distribution, channel selection
founder-sprint — Phase 2 — stage machine coordinating all of the above, forge handoff
Modes
1. generate_ideas
"Give me N business ideas for niche X" — the primary mode.
Input:
mode: "generate_ideas"
niche: string # from venture-brief intake, or user override
n_ideas: int # default 10, max 30
biz_type: enum # from venture-brief (software | service | marketplace | ...)
user_assets: map # from venture-brief (skills, networks, distribution, unique_access)
deep_tech_mode: bool # default false
team_model_overrides: map # optional; default {contrarian: codex}
Flow:
- Read
venture-brief.yaml — load intake, existing ideas, user assets. Refuse if missing.
- Parallel data gathering (before team spawn):
- Invoke
reddit-signal-mining with operation: mine_pains + niche → pain records
- Invoke
gdelt-event-mining with operation: inflection_scan + theme-map(niche) → inflection records
- Both run in parallel, time-bounded (default 90s total)
- Run
adversarial-team-brainstorm with:
question: "Generate {n_ideas + 4} {biz_type} ideas for {niche}" (extra budget for arbiter trim)
team_angles: ["problem-first", "asset-first", "trend-first", "contrarian"]
rounds: 4
n_per_team: ceil((n_ideas + 4) / 4)
context:
reddit_pain_data: mined pain records
gdelt_inflection_data: inflection records
user_assets: from venture-brief
kill_criteria_required: true
team_model_override: {contrarian: codex} (default) unless caller overrides
output_class: "ideas" (enforces HR-4 + HR-5 in arbiter)
- Arbiter returns ranked outputs with kill criteria, first experiments, attack histories
- Trim to
n_ideas (arbiter already ranked; take top-N)
- Write to
venture-brief.yaml.ideas_considered[] — each idea as a new record with
status: candidate, full attack history, refinement history, data sources
- Return structured output for display to user
Output (to user):
mode: generate_ideas
ideas:
- rank: 1
content: string
source_team: string
confidence: enum
kill_criteria: list[string]
first_experiment: string
data_sources: list[string]
attack_history: list[...]
revisions:
before: string
after: string
critique_absorbed: list[string]
arbiter_notes: string # synthesis patterns, minority reports, confidence distribution
data_grounding:
reddit:
subreddits_queried: list[string]
pains_extracted: int
gdelt:
themes_queried: list[string]
inflections_detected: int
venture_brief_path: string
2. evaluate_idea
"I have this idea. Attack it."
Input:
mode: "evaluate_idea"
idea: string # the user's proposed idea
biz_type: enum # from intake
niche: string # from intake
user_assets: map
deep_tech_mode: bool
Flow:
- Read venture-brief. Refuse on missing intake.
- Parallel data gathering (same as generate_ideas)
- Run
adversarial-team-brainstorm with:
question: "Attack this idea: {idea}. Find flaws, kill criteria, first experiments, hybrid variants."
team_angles: ["contrarian", "first-principles", "arbitrage", "constraint-inverted"]
(different angles for attack-mode)
rounds: 4 (same structure — teams first propose attacks, then cross-fire each other's attacks, then refine, then arbiter)
n_per_team: 3 (fewer outputs per team, but deeper attacks)
context:
user_idea: idea
reddit_pain_data: mined pain records
gdelt_inflection_data: inflection records
user_assets
kill_criteria_required: true
output_class: "ideas" (HR-4 + HR-5 still apply — attack outputs must cite data)
- Arbiter produces a single structured attack report:
- Surviving-or-not verdict for the original idea
- Top 3-5 most severe attacks
- Suggested pivots (if any) — hybrid ideas that absorb the attacks
- Suggested first experiment to validate the core claim
- Write to
venture-brief.yaml.ideas_considered[] with the original idea + refined pivots as
separate entries
Output:
mode: evaluate_idea
verdict: enum # "survives_with_pivot" | "survives_as_is" | "killed" | "needs_data"
original_idea:
content: string
status: enum # candidate | validated | killed
attack_history: list[...]
unabsorbed_critical_attacks: list[...] # if any — these are the deal-breakers
pivots:
- content: string # pivot that absorbs the attacks
delta_from_original: string # what changed
kill_criteria: list[string]
first_experiment: string
data_sources: list[string]
recommended_next: string # "run the first experiment", "validate with N users", "pivot to X"
3. find_niches
"What underserved niches exist in [broader space X]?"
Input:
mode: "find_niches"
broader_space: string # e.g. "B2B fintech", "home construction", "elderly care"
biz_type: enum
user_assets: map
n_niches: int # default 5
Flow:
- Read venture-brief
- Heavy data gathering:
reddit-signal-mining with discover_subs to find all sub-communities in the broader space
reddit-signal-mining with mine_pains across discovered subs
gdelt-event-mining with events_by_theme + inflection_scan for the broader space
- Run
adversarial-team-brainstorm with:
question: "Identify {n_niches + 3} underserved niches within {broader_space}"
team_angles: ["problem-first", "trend-first", "contrarian", "constraint-inverted"]
(no asset-first — niche discovery isn't about leveraging user assets yet)
rounds: 4
n_per_team: ceil((n_niches + 3) / 4)
output_class: "ideas" (niches are structured with kill criteria — HR-4 still applies)
- Arbiter returns ranked niches with:
- Why each niche is underserved (evidence from Reddit + GDELT)
- Who the customer is
- Why incumbents aren't serving them
- What would kill the niche (consolidation, regulation, etc.)
- Write to venture-brief; don't generate ideas yet — that's a follow-up
generate_ideas call
Output: ranked niches with provenance + kill criteria + "why underserved" rationale.
4. heat_check
"What's getting hot in [industry Y] right now?"
Input:
mode: "heat_check"
industry: string
lookback_days: int # default 7
baseline_days: int # default 30
Flow:
- Read venture-brief (minimal — heat_check is read-only for venture state)
- Data mining ONLY:
reddit-signal-mining with heat_scan on industry subreddits
gdelt-event-mining with inflection_scan on industry themes
- NO adversarial brainstorm. Heat check is pure data mining with LLM hypothesis attachment.
- For each HOT / FIRE signal, invoke a single LLM pass to generate a 1-sentence hypothesis
(prefixed
hypothesis: so callers know it's interpretive).
- Return structured heat report. Do NOT write to
ideas_considered[] — heat check produces
signals, not ideas. Signals don't need kill criteria or first experiments.
Output:
mode: heat_check
reddit_heat:
- subreddit: string
tier: enum # WARM | HOT | FIRE
ratio: float
top_trending_posts: list[...]
hypothesis: string # "hypothesis: ..."
gdelt_heat:
- theme: string
tier: enum
ratio: float
top_events: list[...]
hypothesis: string
caveat: >
Heat check signals are hypotheses attached to raw data, not ideas.
They are NOT validated, not kill-criteria-attached, and NOT first-experiment-ready.
To turn a hot signal into an investable idea, run `generate_ideas` with the hot
niche as input.
5. deep_tech_mode (flag, not a standalone mode)
Overlays all four modes with inventor-specific frameworks. Activated via deep_tech_mode: true.
When active:
- Team outputs must additionally include:
- IP landscape — existing patents / prior art / freedom-to-operate questions
- Regulatory triggers — which regulators will care (FDA, FCC, CE, UKCA, ISO, etc.)
- DFM (Design for Manufacturability) — what makes this manufacturable at scale
- TRL / SRL / BRL assessment — Technology / System / Business Readiness Levels (0-9 scale)
- The
first-principles angle is added to the default team_angles list (replacing one of the
weaker angles for deep-tech)
- The
heat_check mode additionally queries GDELT for TECH_* themes tied to the invention
category
- The arbiter adds a
deep_tech_concerns section to its notes
See references/deep-tech-mode.md for the full overlay specification.
Reference Files
references/team-lenses.md — detailed specs for problem-first / asset-first / trend-first /
contrarian, how to feed data into each, expected output shape per lens
references/data-integration.md — how to call reddit-signal-mining and gdelt-event-mining
from within this skill, how to pass data to team spawns, what to do on data gathering failure
references/deep-tech-mode.md — TRL/SRL/BRL overlay, IP landscape questions, regulatory trigger
list, DFM considerations
references/business-idea-prompts.md — prompt templates per biz_type (software / service /
marketplace / hardware / deep-tech / physical-retail / other)
references/kill-criteria-library.md — standard kill criteria library: distribution gap,
unit econ negative, regulatory block, saturated market, no switching cost, no compounding moat,
etc. Arbiter falls back to these when teams don't produce sharper ones.
Data Integration Pattern
The skill is the OWNER of the call to data-mining skills. See references/data-integration.md
for the full contract. Summary:
- Determine which subreddits to mine — either from user input, from venture-brief, or via
reddit-signal-mining:discover_subs with the niche
- Determine which GDELT themes to query — via the
theme-taxonomy.md industry-mapping table
(reddit-signal-mining doesn't provide these — founder-ideation's own knowledge)
- Invoke both in parallel:
- Spawn a subagent for
reddit-signal-mining operation
- Spawn a subagent for
gdelt-event-mining operation
- Time-bound: 90 seconds wall clock, return partial results on timeout
- If both fail:
- For
generate_ideas / evaluate_idea / find_niches: DEGRADE. Run adversarial brainstorm
with context: {}. Arbiter will cap confidence at speculative. Mark the output with
data_source: "ungrounded_degraded".
- For
heat_check: HALT. Heat check without data is meaningless.
- If one fails and one succeeds: continue with the partial grounding and note the gap.
Cross-Skill Invocation Flow (Phase 1)
founder (parent)
│ intake populated → route to founder-ideation
▼
founder-ideation (this skill)
│ read venture-brief
│
├──parallel──▶ reddit-signal-mining (mine_pains or heat_scan)
│ │
│ ▶ returns pain records or heat tier
│
└──parallel──▶ gdelt-event-mining (inflection_scan or events_by_theme)
│
▶ returns inflection records or events
│
▼
adversarial-team-brainstorm
├──Round 1──▶ 4 parallel teams (each gets its own slice of data)
├──Round 2──▶ cross-fire (each team attacks 3 other teams)
├──Round 3──▶ refine (each team absorbs / rejects attacks)
└──Round 4──▶ arbiter (synthesize, rank, kill-criteria, confidence)
│
▼
founder-ideation (this skill)
│ write to venture-brief.ideas_considered[]
│ return structured output
▼
founder (parent)
│ display to user
Failure Modes
| Failure |
Detection |
Response |
| No venture-brief / missing intake |
Parent should have caught; if not, halt and return error |
Return to parent with "intake missing: biz_type/geography/niche"; parent asks the user |
| Reddit data mining fails entirely |
reddit-signal-mining returns empty + gap list |
Continue with GDELT only; mark reddit: "unavailable"; arbiter caps grounded confidence |
| GDELT data mining fails entirely |
Same for GDELT |
Continue with Reddit only; same cap |
| Both data sources fail |
Detected in parallel fetch |
For modes needing grounding: degrade to ungrounded, cap all confidence at speculative, warn user; for heat_check: halt |
| Adversarial brainstorm Round 2 (cross-fire) fails |
No attacks from 2+ teams |
Rerun Round 2 once; if still fails, halt and mark FAILED per HR (refuse to output ranked list without cross-fire) |
| Contrarian team produces pseudo-contrarian output |
Arbiter validator flags it |
Reject, re-spawn contrarian with sharper prompt; max 1 retry |
| Arbiter cannot produce 2+ kill criteria per output |
Arbiter validator fails |
Drop the output from the final list (HR-4 enforcement) |
| Venture-brief write fails (disk full, perms) |
IO error |
Return the output to the user anyway, but mark venture_brief_updated: false and warn |
deep_tech_mode outputs missing IP / reg / DFM answers |
Validator fails |
Re-spawn the team with stricter prompt; max 1 retry; drop output if still missing |
Anti-Patterns
| Anti-Pattern |
Why It Fails |
Correct Approach |
Running generate_ideas without first mining Reddit/GDELT data |
Teams produce LLM-vs-LLM consensus with no grounding; HR-5 violated |
Always mine data first, pass to teams via context, fail gracefully if data unavailable |
| Using the same 4 angles for every mode |
Different modes need different lenses (attack modes should skew contrarian + first-principles) |
generate_ideas uses problem/asset/trend/contrarian; evaluate_idea uses contrarian/first-principles/arbitrage/constraint-inverted |
| Ignoring the contrarian team because it produces harsh output |
Harsh output IS the point; harshness is the anti-groupthink mechanism |
Preserve contrarian outputs in the ranked list even if they contradict the other teams |
| Hiding kill criteria in appendices to make ideas look more compelling |
Defeats HR-4; user makes decisions with false confidence |
Kill criteria are first-class output, alongside the idea content, not footnoted |
| Returning raw Reddit quotes with identifying details to illustrate pain |
Violates HR-11; privacy breach |
reddit-signal-mining paraphrases by default; re-enforce at output formatting |
Running heat_check and treating signals as investable ideas |
Signals are hypotheses, not validated ideas; no kill criteria attached |
Heat check output explicitly says "to turn signals into ideas, run generate_ideas"; user must take the next step |
Skipping deep_tech_mode overlay for hardware / invention requests |
Loses critical IP / regulatory / DFM grounding; produces software-shaped advice for non-software problems |
Parent intake detects deep-tech intent and passes deep_tech_mode: true; check venture-brief on entry |
Running with n_ideas > 30 |
Team output quality degrades dramatically above ~30; cross-fire becomes noise |
Cap at 30; tell the user to run multiple rounds if they need more |
When NOT to Use This Skill
- User wants to validate an idea with real users (not just attack it with LLMs) — Phase 2
founder-validation will do that. For Phase 1, evaluate_idea is the closest substitute.
- User wants business model / unit economics work — Phase 2
founder-business-model; for
Phase 1, explain that it's coming and offer to help prepare the inputs.
- User wants to write a pitch deck — Phase 1 has
presentation-builder + yc-pitch /
sequoia-pitch flow stubs (WP-F8); route there via parent
- User wants to start building — hand off to
forge via the Scope→Launch gate (parent
handles the routing)
- Pure market research without ideation intent — use
reddit-signal-mining + gdelt-event-mining
directly; this skill's overhead (adversarial brainstorm) is wasted
- Legal / tax / valuation / fundraising questions — REFUSED by parent (HR-1, HR-2, HR-3)
1---2name: founder-ideation3description: Use when the user asks to generate business ideas, evaluate an existing idea adversarially, find underserved niches, or check what's heating up in an industry. Phase 1 flagship subskill of the founder family. Runs adversarial team brainstorm (4 parallel founding lenses with cross-fire) grounded in real Reddit pain data and GDELT inflection data. Modes: generate_ideas, evaluate_idea, find_niches, heat_check. Optional deep_tech_mode flag for inventor / hardware / patent work. Routes via parent `founder` skill. Trigger on: "generate N ideas", "business ideas generator", "what should I build", "attack my idea", "underserved niches in X", "what's hot in Y industry".4---56# Founder Ideation (Phase 1 Flagship)78Child of `founder`. This skill is the flagship of the founder family — the most differentiated9subskill. It generates (or attacks) business ideas via adversarial team brainstorm grounded in10real Reddit pain data and GDELT event velocity data.1112**Scope:** Pre-execution ideation. Produces ideas with kill criteria, first experiments, data13citations, and cross-fire attack histories. Writes results to `.founder/venture-brief.yaml`.1415**Siblings (parent = `founder`):**16- `founder-validation` — Phase 2 — Mom Test, assumption ledger, experiment sequencing17- `founder-business-model` — Phase 2 — unit economics calculator mode18- `founder-gtm` — Phase 2 — positioning, distribution, channel selection19- `founder-sprint` — Phase 2 — stage machine coordinating all of the above, forge handoff2021---2223<HARD-RULE>24**Every idea MUST have ≥1 real data source citation.** Reddit (subreddit + post date), GDELT25(event id), or user-supplied input. This enforces founder HR-5. The arbiter in26`adversarial-team-brainstorm` is configured to reject outputs without grounding.27</HARD-RULE>2829<HARD-RULE>30**Every idea MUST have ≥2 kill criteria AND a non-empty first experiment.** Enforces founder31HR-4. This is the anti-"polished guru" mechanism. Without kill criteria, every idea is equally32defendable and equally useless.33</HARD-RULE>3435<HARD-RULE>36**Parent intake required before routing.** `founder-ideation` refuses to run without37`venture-brief.yaml` populated with minimum intake (biz_type + geography + niche). If the parent38forgot to capture intake, halt and return to parent with a clear error. Do NOT run on partial39context.40</HARD-RULE>4142<HARD-RULE>43**Contrarian team CANNOT produce "just be better" ideas.** The contrarian lens must find44structural counter-positioning — why does the obvious idea NOT already exist, what consensus is45wrong, where's the arbitrage. "Same thing but with better UX" is pseudo-contrarianism and the46arbiter rejects it.47</HARD-RULE>4849<HARD-RULE>50**Arbiter refuses to output ranked list if Round 2 cross-fire did not happen.** If for any reason51cross-fire was skipped (timeouts, agent spawn failures), the whole ideation run is marked FAILED52and returned with a degraded-mode warning. Cross-fire is not optional — it IS the value53proposition of the skill.54</HARD-RULE>5556<HARD-RULE>57**`deep_tech_mode: true` activates mandatory IP + regulatory + DFM questions.** When a caller58passes `deep_tech_mode`, every team output must include answers to: (1) IP landscape —59existing patents / prior art, (2) regulatory triggers — which regulators will care, (3) DFM60considerations — what makes this manufacturable at scale. Outputs without these are rejected.61</HARD-RULE>6263<HARD-RULE>64**HR-4/HR-5 applicability by output class.** The `generate_ideas`, `evaluate_idea`, and65`find_niches` modes emit outputs classed as **"ideas"** — HR-4 (kill criteria + first experiment)66AND HR-5 (data provenance) apply. The `heat_check` mode emits **"signals"** (hypotheses attached67to raw data) — HR-5 applies but HR-4 does NOT (kill criteria + first experiment are not meaningful68for a raw heat reading). The mode wiring to adversarial-team-brainstorm sets `output_class`69accordingly.70</HARD-RULE>7172---7374## Modes7576### 1. `generate_ideas`7778"Give me N business ideas for niche X" — the primary mode.7980**Input:**81```yaml82mode: "generate_ideas"83niche: string # from venture-brief intake, or user override84n_ideas: int # default 10, max 3085biz_type: enum # from venture-brief (software | service | marketplace | ...)86user_assets: map # from venture-brief (skills, networks, distribution, unique_access)87deep_tech_mode: bool # default false88team_model_overrides: map # optional; default {contrarian: codex}89```9091**Flow:**92931. **Read `venture-brief.yaml`** — load intake, existing ideas, user assets. Refuse if missing.942. **Parallel data gathering (before team spawn):**95 - Invoke `reddit-signal-mining` with `operation: mine_pains` + niche → pain records96 - Invoke `gdelt-event-mining` with `operation: inflection_scan` + theme-map(niche) → inflection records97 - Both run in parallel, time-bounded (default 90s total)983. **Run `adversarial-team-brainstorm` with:**99 - `question: "Generate {n_ideas + 4} {biz_type} ideas for {niche}"` (extra budget for arbiter trim)100 - `team_angles: ["problem-first", "asset-first", "trend-first", "contrarian"]`101 - `rounds: 4`102 - `n_per_team: ceil((n_ideas + 4) / 4)`103 - `context`:104 - `reddit_pain_data`: mined pain records105 - `gdelt_inflection_data`: inflection records106 - `user_assets`: from venture-brief107 - `kill_criteria_required: true`108 - `team_model_override`: `{contrarian: codex}` (default) unless caller overrides109 - `output_class: "ideas"` (enforces HR-4 + HR-5 in arbiter)1104. **Arbiter returns ranked outputs** with kill criteria, first experiments, attack histories1115. **Trim to `n_ideas`** (arbiter already ranked; take top-N)1126. **Write to `venture-brief.yaml.ideas_considered[]`** — each idea as a new record with113 `status: candidate`, full attack history, refinement history, data sources1147. **Return structured output** for display to user115116**Output (to user):**117```yaml118mode: generate_ideas119ideas:120 - rank: 1121 content: string122 source_team: string123 confidence: enum124 kill_criteria: list[string]125 first_experiment: string126 data_sources: list[string]127 attack_history: list[...]128 revisions:129 before: string130 after: string131 critique_absorbed: list[string]132arbiter_notes: string # synthesis patterns, minority reports, confidence distribution133data_grounding:134 reddit:135 subreddits_queried: list[string]136 pains_extracted: int137 gdelt:138 themes_queried: list[string]139 inflections_detected: int140venture_brief_path: string141```142143### 2. `evaluate_idea`144145"I have this idea. Attack it."146147**Input:**148```yaml149mode: "evaluate_idea"150idea: string # the user's proposed idea151biz_type: enum # from intake152niche: string # from intake153user_assets: map154deep_tech_mode: bool155```156157**Flow:**1581591. Read venture-brief. Refuse on missing intake.1602. Parallel data gathering (same as generate_ideas)1613. Run `adversarial-team-brainstorm` with:162 - `question: "Attack this idea: {idea}. Find flaws, kill criteria, first experiments, hybrid variants."`163 - `team_angles: ["contrarian", "first-principles", "arbitrage", "constraint-inverted"]`164 (different angles for attack-mode)165 - `rounds: 4` (same structure — teams first propose attacks, then cross-fire each other's attacks, then refine, then arbiter)166 - `n_per_team: 3` (fewer outputs per team, but deeper attacks)167 - `context`:168 - `user_idea: idea`169 - `reddit_pain_data`: mined pain records170 - `gdelt_inflection_data`: inflection records171 - `user_assets`172 - `kill_criteria_required: true`173 - `output_class: "ideas"` (HR-4 + HR-5 still apply — attack outputs must cite data)1744. Arbiter produces a single structured attack report:175 - Surviving-or-not verdict for the original idea176 - Top 3-5 most severe attacks177 - Suggested pivots (if any) — hybrid ideas that absorb the attacks178 - Suggested first experiment to validate the core claim1795. Write to `venture-brief.yaml.ideas_considered[]` with the original idea + refined pivots as180 separate entries181182**Output:**183```yaml184mode: evaluate_idea185verdict: enum # "survives_with_pivot" | "survives_as_is" | "killed" | "needs_data"186original_idea:187 content: string188 status: enum # candidate | validated | killed189 attack_history: list[...]190 unabsorbed_critical_attacks: list[...] # if any — these are the deal-breakers191pivots:192 - content: string # pivot that absorbs the attacks193 delta_from_original: string # what changed194 kill_criteria: list[string]195 first_experiment: string196 data_sources: list[string]197recommended_next: string # "run the first experiment", "validate with N users", "pivot to X"198```199200### 3. `find_niches`201202"What underserved niches exist in [broader space X]?"203204**Input:**205```yaml206mode: "find_niches"207broader_space: string # e.g. "B2B fintech", "home construction", "elderly care"208biz_type: enum209user_assets: map210n_niches: int # default 5211```212213**Flow:**2142151. Read venture-brief2162. Heavy data gathering:217 - `reddit-signal-mining` with `discover_subs` to find all sub-communities in the broader space218 - `reddit-signal-mining` with `mine_pains` across discovered subs219 - `gdelt-event-mining` with `events_by_theme` + `inflection_scan` for the broader space2203. Run `adversarial-team-brainstorm` with:221 - `question: "Identify {n_niches + 3} underserved niches within {broader_space}"`222 - `team_angles: ["problem-first", "trend-first", "contrarian", "constraint-inverted"]`223 (no asset-first — niche discovery isn't about leveraging user assets yet)224 - `rounds: 4`225 - `n_per_team: ceil((n_niches + 3) / 4)`226 - `output_class: "ideas"` (niches are structured with kill criteria — HR-4 still applies)2274. Arbiter returns ranked niches with:228 - Why each niche is underserved (evidence from Reddit + GDELT)229 - Who the customer is230 - Why incumbents aren't serving them231 - What would kill the niche (consolidation, regulation, etc.)2325. Write to venture-brief; don't generate ideas yet — that's a follow-up `generate_ideas` call233234**Output:** ranked niches with provenance + kill criteria + "why underserved" rationale.235236### 4. `heat_check`237238"What's getting hot in [industry Y] right now?"239240**Input:**241```yaml242mode: "heat_check"243industry: string244lookback_days: int # default 7245baseline_days: int # default 30246```247248**Flow:**2492501. Read venture-brief (minimal — heat_check is read-only for venture state)2512. Data mining ONLY:252 - `reddit-signal-mining` with `heat_scan` on industry subreddits253 - `gdelt-event-mining` with `inflection_scan` on industry themes2543. **NO adversarial brainstorm.** Heat check is pure data mining with LLM hypothesis attachment.2554. For each HOT / FIRE signal, invoke a single LLM pass to generate a 1-sentence hypothesis256 (prefixed `hypothesis:` so callers know it's interpretive).2575. Return structured heat report. Do NOT write to `ideas_considered[]` — heat check produces258 `signals`, not ideas. Signals don't need kill criteria or first experiments.259260**Output:**261```yaml262mode: heat_check263reddit_heat:264 - subreddit: string265 tier: enum # WARM | HOT | FIRE266 ratio: float267 top_trending_posts: list[...]268 hypothesis: string # "hypothesis: ..."269gdelt_heat:270 - theme: string271 tier: enum272 ratio: float273 top_events: list[...]274 hypothesis: string275caveat: >276 Heat check signals are hypotheses attached to raw data, not ideas.277 They are NOT validated, not kill-criteria-attached, and NOT first-experiment-ready.278 To turn a hot signal into an investable idea, run `generate_ideas` with the hot279 niche as input.280```281282### 5. `deep_tech_mode` (flag, not a standalone mode)283284Overlays all four modes with inventor-specific frameworks. Activated via `deep_tech_mode: true`.285286When active:287288- Team outputs must additionally include:289 - **IP landscape** — existing patents / prior art / freedom-to-operate questions290 - **Regulatory triggers** — which regulators will care (FDA, FCC, CE, UKCA, ISO, etc.)291 - **DFM (Design for Manufacturability)** — what makes this manufacturable at scale292 - **TRL / SRL / BRL assessment** — Technology / System / Business Readiness Levels (0-9 scale)293- The `first-principles` angle is added to the default team_angles list (replacing one of the294 weaker angles for deep-tech)295- The `heat_check` mode additionally queries GDELT for `TECH_*` themes tied to the invention296 category297- The arbiter adds a `deep_tech_concerns` section to its notes298299See `references/deep-tech-mode.md` for the full overlay specification.300301---302303## Reference Files304305- `references/team-lenses.md` — detailed specs for problem-first / asset-first / trend-first /306 contrarian, how to feed data into each, expected output shape per lens307- `references/data-integration.md` — how to call `reddit-signal-mining` and `gdelt-event-mining`308 from within this skill, how to pass data to team spawns, what to do on data gathering failure309- `references/deep-tech-mode.md` — TRL/SRL/BRL overlay, IP landscape questions, regulatory trigger310 list, DFM considerations311- `references/business-idea-prompts.md` — prompt templates per biz_type (software / service /312 marketplace / hardware / deep-tech / physical-retail / other)313- `references/kill-criteria-library.md` — standard kill criteria library: distribution gap,314 unit econ negative, regulatory block, saturated market, no switching cost, no compounding moat,315 etc. Arbiter falls back to these when teams don't produce sharper ones.316317---318319## Data Integration Pattern320321The skill is the OWNER of the call to data-mining skills. See `references/data-integration.md`322for the full contract. Summary:3233241. **Determine which subreddits to mine** — either from user input, from venture-brief, or via325 `reddit-signal-mining:discover_subs` with the niche3262. **Determine which GDELT themes to query** — via the `theme-taxonomy.md` industry-mapping table327 (reddit-signal-mining doesn't provide these — founder-ideation's own knowledge)3283. **Invoke both in parallel:**329 - Spawn a subagent for `reddit-signal-mining` operation330 - Spawn a subagent for `gdelt-event-mining` operation331 - Time-bound: 90 seconds wall clock, return partial results on timeout3324. **If both fail:**333 - For `generate_ideas` / `evaluate_idea` / `find_niches`: DEGRADE. Run adversarial brainstorm334 with `context: {}`. Arbiter will cap confidence at `speculative`. Mark the output with335 `data_source: "ungrounded_degraded"`.336 - For `heat_check`: HALT. Heat check without data is meaningless.3375. **If one fails and one succeeds:** continue with the partial grounding and note the gap.338339---340341## Cross-Skill Invocation Flow (Phase 1)342343```344founder (parent)345 │ intake populated → route to founder-ideation346 ▼347founder-ideation (this skill)348 │ read venture-brief349 │350 ├──parallel──▶ reddit-signal-mining (mine_pains or heat_scan)351 │ │352 │ ▶ returns pain records or heat tier353 │354 └──parallel──▶ gdelt-event-mining (inflection_scan or events_by_theme)355 │356 ▶ returns inflection records or events357 │358 ▼359adversarial-team-brainstorm360 ├──Round 1──▶ 4 parallel teams (each gets its own slice of data)361 ├──Round 2──▶ cross-fire (each team attacks 3 other teams)362 ├──Round 3──▶ refine (each team absorbs / rejects attacks)363 └──Round 4──▶ arbiter (synthesize, rank, kill-criteria, confidence)364 │365 ▼366founder-ideation (this skill)367 │ write to venture-brief.ideas_considered[]368 │ return structured output369 ▼370founder (parent)371 │ display to user372```373374---375376## Failure Modes377378| Failure | Detection | Response |379|---|---|---|380| No venture-brief / missing intake | Parent should have caught; if not, halt and return error | Return to parent with "intake missing: biz_type/geography/niche"; parent asks the user |381| Reddit data mining fails entirely | `reddit-signal-mining` returns empty + gap list | Continue with GDELT only; mark `reddit: "unavailable"`; arbiter caps grounded confidence |382| GDELT data mining fails entirely | Same for GDELT | Continue with Reddit only; same cap |383| Both data sources fail | Detected in parallel fetch | For modes needing grounding: degrade to ungrounded, cap all confidence at `speculative`, warn user; for `heat_check`: halt |384| Adversarial brainstorm Round 2 (cross-fire) fails | No attacks from 2+ teams | Rerun Round 2 once; if still fails, halt and mark FAILED per HR (refuse to output ranked list without cross-fire) |385| Contrarian team produces pseudo-contrarian output | Arbiter validator flags it | Reject, re-spawn contrarian with sharper prompt; max 1 retry |386| Arbiter cannot produce 2+ kill criteria per output | Arbiter validator fails | Drop the output from the final list (HR-4 enforcement) |387| Venture-brief write fails (disk full, perms) | IO error | Return the output to the user anyway, but mark `venture_brief_updated: false` and warn |388| `deep_tech_mode` outputs missing IP / reg / DFM answers | Validator fails | Re-spawn the team with stricter prompt; max 1 retry; drop output if still missing |389390---391392## Anti-Patterns393394| Anti-Pattern | Why It Fails | Correct Approach |395|---|---|---|396| Running `generate_ideas` without first mining Reddit/GDELT data | Teams produce LLM-vs-LLM consensus with no grounding; HR-5 violated | Always mine data first, pass to teams via context, fail gracefully if data unavailable |397| Using the same 4 angles for every mode | Different modes need different lenses (attack modes should skew contrarian + first-principles) | `generate_ideas` uses problem/asset/trend/contrarian; `evaluate_idea` uses contrarian/first-principles/arbitrage/constraint-inverted |398| Ignoring the contrarian team because it produces harsh output | Harsh output IS the point; harshness is the anti-groupthink mechanism | Preserve contrarian outputs in the ranked list even if they contradict the other teams |399| Hiding kill criteria in appendices to make ideas look more compelling | Defeats HR-4; user makes decisions with false confidence | Kill criteria are first-class output, alongside the idea content, not footnoted |400| Returning raw Reddit quotes with identifying details to illustrate pain | Violates HR-11; privacy breach | `reddit-signal-mining` paraphrases by default; re-enforce at output formatting |401| Running `heat_check` and treating signals as investable ideas | Signals are hypotheses, not validated ideas; no kill criteria attached | Heat check output explicitly says "to turn signals into ideas, run generate_ideas"; user must take the next step |402| Skipping `deep_tech_mode` overlay for hardware / invention requests | Loses critical IP / regulatory / DFM grounding; produces software-shaped advice for non-software problems | Parent intake detects deep-tech intent and passes `deep_tech_mode: true`; check venture-brief on entry |403| Running with `n_ideas > 30` | Team output quality degrades dramatically above ~30; cross-fire becomes noise | Cap at 30; tell the user to run multiple rounds if they need more |404405---406407## When NOT to Use This Skill408409- **User wants to validate an idea with real users** (not just attack it with LLMs) — Phase 2410 `founder-validation` will do that. For Phase 1, `evaluate_idea` is the closest substitute.411- **User wants business model / unit economics work** — Phase 2 `founder-business-model`; for412 Phase 1, explain that it's coming and offer to help prepare the inputs.413- **User wants to write a pitch deck** — Phase 1 has `presentation-builder` + `yc-pitch` /414 `sequoia-pitch` flow stubs (WP-F8); route there via parent415- **User wants to start building** — hand off to `forge` via the Scope→Launch gate (parent416 handles the routing)417- **Pure market research without ideation intent** — use `reddit-signal-mining` + `gdelt-event-mining`418 directly; this skill's overhead (adversarial brainstorm) is wasted419- **Legal / tax / valuation / fundraising questions** — REFUSED by parent (HR-1, HR-2, HR-3)