Generates, stress-tests, and iteratively evolves ideas for a stated problem — product concepts, features, solution options, strategies — using research-grounded divergent/convergent agent loops: parallel persona generators (nominal-group simulation), independent judges scoring novelty, feasibility, impact, and fit on separate axes, and bounded recombination rounds gated by /confidence. Auto-triages run depth (quick in-context vs deep multi-agent; override with quick|deep). Use when brainstorming, exploring solution options, or pressure-testing a concept. Triggers on "brainstorm", "give me ideas", "help me come up with", "ideate on", "what could we build", "/ideate".
Turns a problem statement into a small set of validated, evolved ideas by simulating a nominal group of independent generators, scoring with independent judges, and breeding the winners — instead of asking one context for a list and polishing it.
This SKILL.md is a thin index. Phase procedures live in rules/*.md and load on demand.
The evidence behind every numerical default lives in references/ideation-research.md — section references below (§) point there, and its defaults tables flag which numbers are study values vs the skill's own operationalizations.
Optional cap on the Lead-finalists list. Unset by default — the finalist count is emergent from the quality bar (see idea-scoring.md § Selection rules). --n only narrows; it never manufactures finalists the bar did not admit.
--no-framing
off
Skip Phase 1 (problem is already well-framed).
Everything else in $ARGUMENTS is the problem statement.
If it is missing, ask for it — never ideate on a guessed problem.
Depth triage (auto mode)
First match wins:
#
Signal
Depth
1
User asks for thorough / extensive / "really new" ideas, or the problem combines ≥ 2 domains ("X meets Y").
deep
2
Outcome is a product, business, strategy, or roadmap decision.
deep
3
Problem is a local decision: naming, small feature shape, workaround, single component.
quick
4
User is mid-conversation and wants options fast ("any ideas?", "what do you think?").
quick
5
Unsure.
quick, and name the escalation path: "run /ideate deep <problem> for the full pipeline".
Cost expectation: a deep run with a typical 2–4-idea finalist band dispatches ~17 subagents (2 bursts × 5 generators, 1 pool judge, 1 breeder, 1 variant judge, 3 panel judges, 1 pre-mortem) — prefer quick for casual or budget-sensitive asks. A richer pool that admits more finalists adds only panel-judge cost, not generation cost.
Workflow
Phase
Name
Rule file
Gate
0
Intake & triage
(inline below)
Problem restated in one sentence; success criterion named; depth chosen; lessons read.
1
Frame
(inline below)
3–5 "How Might We" framings at different widths; one selected and logged.
Lessons written — mechanics only, never idea content.
Phase 0 — Intake & triage
Read lessons (advisory input for mechanics only — see the hard invariant under Self-Improvement).
Narrow-to-broad LoreKit fan-out; skips silently if memory.* is not connected:
Restate the problem in one sentence and name the success criterion — what makes an idea "good" here (cheapest, most novel, shippable this week, …).
Run the depth triage table unless a mode token was given.
If the user supplied seed ideas, add them to the pool unlabeled — judges must not know which ideas are the user's.
Phase 1 — Frame
Problem framing measurably shapes ideation breadth and direction (§2.5) — skip only with --no-framing.
Generate 3–5 "How Might We" framings at deliberately different widths, from the literal ask to the underlying job-to-be-done — the width variation is the evidenced part (§2.5); the HMW phrasing is convention.
Interactive session → ask the user to pick one (a single batched question).
Autonomous or backgrounded → pick the framing one step wider than the literal ask, and log the choice in the report.
Quick vs deep
Aspect
quick
deep
Generation
In-context, 2 bursts × 8 ideas, operators rotated per burst.
5 parallel persona subagents × 6 ideas per burst, ≥ 2 bursts (§1.4, §4.4).
Fixation guard
Operator switch + "what has NOT been said yet" reseed (§1.5).
Independent contexts — the structural fix (§4.3).
Judging
Separate in-context pass with rubric, order-swapped pairwise.
Fresh judge subagent; panel of 3 judges for finalists (§4.7).
Evolution
≤ 1 round.
≤ 3 rounds (§5.1).
Report
Inline.
Inline + written to .agent/ideate/<yyyy-mm-dd>-<slug>.md.
Composition
Skill
When
Call
confidence
Phase 5, on the finalist recommendation.
Skill("confidence", "analysis")
critical
Deep mode, top finalist (automatic); any finalist on request.
Skill("critical", "analysis") — run inside a fresh subagent so the pre-mortem stays adversarial and the main context stays lean.
ux
Finalists that are UI/UX or product-surface concepts.
confidence is required; the others are optional — skip silently if not installed / not connected.
Core Principles
Simulate a nominal group, not a meeting. Independent generation contexts, pooled afterwards — never one long list from one context (§1.2, §4.3).
Strictly separate generation from evaluation. The one Osborn rule that survives scrutiny; no feasibility talk inside a generation pass (§3.1).
Diversity comes from personas and prompts, not temperature. Temperature is a weak novelty lever with a coherence cost (§4.6).
The judge is never the generator. Self-scoring amplifies self-bias per iteration (§4.7, §5.1).
Protect novelty at selection. Default selection sacrifices originality for feasibility and performs near-randomly; always carry one high-novelty pick (§3.2).
Gate finalists on quality, not quantity. The finalist count is emergent: report every idea that clears the admission bar, not a fixed top-3. A fixed count drops deserving ideas from a rich pool and pads a thin one (§3.2).
Iterate by recombination across lineages, not polishing. Cap at 3 rounds; stop on flat external scores (§5.1–§5.3).
The obvious ideas come first. Always run a second burst seeded with "what has NOT been said yet" (§1.5).
Pre-execution novelty is inflated. Every finalist needs a concrete first-step probe before it is recommended (§4.2).
Hard invariant: divergence runs lessons-blind.
Lessons may inform mechanics — depth triage, operator effectiveness, judge calibration, stopping behavior — and must never seed, filter, or steer idea content.
"What kinds of ideas the user tends to pick" is on the never-store list: it would entrench homogenization, the exact failure this skill exists to avoid.
Anti-patterns
One 30-idea list from a single context — within-context fixation makes the last 20 near-duplicates.
Scoring or feasibility talk during a generation pass.
Letting the generation context judge its own output.
Averaging the four axes into one number before selection, then picking the top-n — this silently discards every high-novelty idea.
Capping the report at a fixed 3–4 finalists regardless of how many ideas cleared the quality bar — the count is emergent, not a target.
Treating the "Ideas worth revisiting" section as a throwaway list — it must name why each near-miss missed and what would flip it; that is the inspiring part.
A 4th evolution round because it "still feels like it's improving" — self-assessed improvement is the signal that lies.
Storing user idea-taste as a lesson.
Definition of Done
Problem restated and success criterion named before any generation.
Generation and evaluation never co-occurred in one pass.
Pool met the unique-idea gate for the chosen depth.
Every finalist has all four axis scores, an executability probe, and the confidence gate result.
The finalist count reflects the quality bar, not a fixed target — every idea that cleared the admission bar is reported (or capped only by an explicit --n).
Report includes the high-novelty wildcard, the run stats (bursts, non-duplicate yield, evolution rounds, score trajectory), and an "Ideas worth revisiting" section that names, per near-miss, why it missed and what would flip it.
User verdict requested; lessons written per the loop contract.
1---2name: ideate3description: Generates, stress-tests, and iteratively evolves ideas for a stated problem — product concepts, features, solution options, strategies — using research-grounded divergent/convergent agent loops: parallel persona generators (nominal-group simulation), independent judges scoring novelty, feasibility, impact, and fit on separate axes, and bounded recombination rounds gated by /confidence. Auto-triages run depth (quick in-context vs deep multi-agent; override with quick|deep). Use when brainstorming, exploring solution options, or pressure-testing a concept. Triggers on "brainstorm", "give me ideas", "help me come up with", "ideate on", "what could we build", "/ideate".4license: MIT5---67# Ideate89Turns a problem statement into a small set of validated, evolved ideas by simulating a nominal group of independent generators, scoring with independent judges, and breeding the winners — instead of asking one context for a list and polishing it.1011> **This `SKILL.md` is a thin index.** Phase procedures live in `rules/*.md` and load on demand.12> The evidence behind every numerical default lives in [`references/ideation-research.md`](./references/ideation-research.md) — section references below (§) point there, and its defaults tables flag which numbers are study values vs the skill's own operationalizations.1314## Contents1516- [Mode Detection](#mode-detection)17- [Workflow](#workflow)18- [Quick vs deep](#quick-vs-deep)19- [Composition](#composition)20- [Core Principles](#core-principles)21- [Self-Improvement](#self-improvement)22- [Anti-patterns](#anti-patterns)23- [Definition of Done](#definition-of-done)2425---2627## Mode Detection2829Parse `$ARGUMENTS`:3031| Mode | Default | Trigger |32| ------- | ------- | ---------------------------------------------------- |33| `quick` | | `quick` token, or auto-triage says small. |34| `deep` | | `deep` token, or auto-triage says open-ended. |35| auto | **yes** | No mode token — run the depth triage table below. |3637| Flag | Default | Meaning |38| -------------- | ------- | -------------------------------------------------------- |39| `--n <count>` | unset | Optional **cap** on the Lead-finalists list. Unset by default — the finalist count is emergent from the quality bar (see [`idea-scoring.md`](./rules/idea-scoring.md) § Selection rules). `--n` only narrows; it never manufactures finalists the bar did not admit. |40| `--no-framing` | off | Skip Phase 1 (problem is already well-framed). |4142Everything else in `$ARGUMENTS` is the problem statement.43If it is missing, ask for it — never ideate on a guessed problem.4445### Depth triage (auto mode)4647First match wins:4849| # | Signal | Depth |50| - | ----------------------------------------------------------------------------------------------------- | ------- |51| 1 | User asks for thorough / extensive / "really new" ideas, or the problem combines ≥ 2 domains ("X meets Y"). | `deep` |52| 2 | Outcome is a product, business, strategy, or roadmap decision. | `deep` |53| 3 | Problem is a local decision: naming, small feature shape, workaround, single component. | `quick` |54| 4 | User is mid-conversation and wants options fast ("any ideas?", "what do you think?"). | `quick` |55| 5 | Unsure. | `quick`, and name the escalation path: "run `/ideate deep <problem>` for the full pipeline". |5657Cost expectation: a deep run with a typical 2–4-idea finalist band dispatches ~17 subagents (2 bursts × 5 generators, 1 pool judge, 1 breeder, 1 variant judge, 3 panel judges, 1 pre-mortem) — prefer `quick` for casual or budget-sensitive asks. A richer pool that admits more finalists adds only panel-judge cost, not generation cost.5859---6061## Workflow6263| Phase | Name | Rule file | Gate |64| ----- | ---------------- | ---------------------------------------------------------------------- | ------------------------------------------------------------------------------------------ |65| 0 | Intake & triage | (inline below) | Problem restated in one sentence; success criterion named; depth chosen; lessons read. |66| 1 | Frame | (inline below) | 3–5 "How Might We" framings at different widths; one selected and logged. |67| 2 | Diverge | [`rules/divergence.md`](./rules/divergence.md) | Pool ≥ 12 (quick) / ≥ 25 (deep) unique ideas; zero evaluation happened during generation. |68| 3 | Score | [`rules/idea-scoring.md`](./rules/idea-scoring.md) | Every pooled idea scored on 4 independent axes by a non-generator judge. |69| 4 | Evolve | [`rules/evolution-loop.md`](./rules/evolution-loop.md) | ≤ 3 rounds; stopped on flat external scores, never on self-assessed improvement. |70| 5 | Validate | [`rules/idea-scoring.md`](./rules/idea-scoring.md) § Finalist validation | Every finalist has an executability probe; `confidence(analysis)` ≥ 70 on the recommendation. |71| 6 | Report | [`templates/ideation-report.md`](./templates/ideation-report.md) | Report emitted; finalist count reflects the quality bar; high-novelty wildcard included; "Ideas worth revisiting" filled; verdict question asked. |72| 7 | Learn | [`rules/self-improvement-loop.md`](./rules/self-improvement-loop.md) | Lessons written — mechanics only, never idea content. |7374### Phase 0 — Intake & triage75761. Read lessons (advisory input for *mechanics only* — see the hard invariant under Self-Improvement).77 Narrow-to-broad LoreKit fan-out; skips silently if `memory.*` is not connected:7879 ```text80 memory.list { scope: "repo::{owner}/{repo}", tags: ["loop::ideate-lessons"], limit: 50 }81 memory.list { scope: "global", tags: ["loop::ideate-lessons"], limit: 50 }82 ```83842. Restate the problem in one sentence and name the success criterion — what makes an idea "good" here (cheapest, most novel, shippable this week, …).853. Run the depth triage table unless a mode token was given.864. If the user supplied seed ideas, add them to the pool unlabeled — judges must not know which ideas are the user's.8788### Phase 1 — Frame8990Problem framing measurably shapes ideation breadth and direction (§2.5) — skip only with `--no-framing`.91921. Generate 3–5 "How Might We" framings at deliberately different widths, from the literal ask to the underlying job-to-be-done — the width variation is the evidenced part (§2.5); the HMW phrasing is convention.932. Interactive session → ask the user to pick one (a single batched question).94 Autonomous or backgrounded → pick the framing one step wider than the literal ask, and log the choice in the report.9596---9798## Quick vs deep99100| Aspect | `quick` | `deep` |101| --------------- | ---------------------------------------------------------------- | --------------------------------------------------------------------------- |102| Generation | In-context, 2 bursts × 8 ideas, operators rotated per burst. | 5 parallel persona subagents × 6 ideas per burst, ≥ 2 bursts (§1.4, §4.4). |103| Fixation guard | Operator switch + "what has NOT been said yet" reseed (§1.5). | Independent contexts — the structural fix (§4.3). |104| Judging | Separate in-context pass with rubric, order-swapped pairwise. | Fresh judge subagent; panel of 3 judges for finalists (§4.7). |105| Evolution | ≤ 1 round. | ≤ 3 rounds (§5.1). |106| Report | Inline. | Inline + written to `.agent/ideate/<yyyy-mm-dd>-<slug>.md`. |107108---109110## Composition111112| Skill | When | Call |113| ------------------- | --------------------------------------------------------------- | ----------------------------------------------------------- |114| `confidence` | Phase 5, on the finalist recommendation. | `Skill("confidence", "analysis")` |115| `critical` | Deep mode, top finalist (automatic); any finalist on request. | `Skill("critical", "analysis")` — run inside a fresh subagent so the pre-mortem stays adversarial and the main context stays lean. |116| `ux` | Finalists that are UI/UX or product-surface concepts. | `Skill("ux")` as a lens on the finalist. |117| `lorekit-memory` (LoreKit `memory.*` tools) | Phases 0 and 7. | See [`rules/self-improvement-loop.md`](./rules/self-improvement-loop.md). |118119`confidence` is required; the others are optional — skip silently if not installed / not connected.120121---122123## Core Principles1241251. **Simulate a nominal group, not a meeting.** Independent generation contexts, pooled afterwards — never one long list from one context (§1.2, §4.3).1262. **Strictly separate generation from evaluation.** The one Osborn rule that survives scrutiny; no feasibility talk inside a generation pass (§3.1).1273. **Diversity comes from personas and prompts, not temperature.** Temperature is a weak novelty lever with a coherence cost (§4.6).1284. **The judge is never the generator.** Self-scoring amplifies self-bias per iteration (§4.7, §5.1).1295. **Protect novelty at selection.** Default selection sacrifices originality for feasibility and performs near-randomly; always carry one high-novelty pick (§3.2).1306. **Gate finalists on quality, not quantity.** The finalist count is emergent: report every idea that clears the admission bar, not a fixed top-3. A fixed count drops deserving ideas from a rich pool and pads a thin one (§3.2).1317. **Iterate by recombination across lineages, not polishing.** Cap at 3 rounds; stop on flat external scores (§5.1–§5.3).1328. **The obvious ideas come first.** Always run a second burst seeded with "what has NOT been said yet" (§1.5).1339. **Pre-execution novelty is inflated.** Every finalist needs a concrete first-step probe before it is recommended (§4.2).134135---136137## Self-Improvement138139Two-tier loop, scope `ideate-lessons` — full contract in [`rules/self-improvement-loop.md`](./rules/self-improvement-loop.md), diagnostic surface in [`rules/diagnostic-surface.md`](./rules/diagnostic-surface.md).140141**Hard invariant: divergence runs lessons-blind.**142Lessons may inform mechanics — depth triage, operator effectiveness, judge calibration, stopping behavior — and must never seed, filter, or steer idea *content*.143"What kinds of ideas the user tends to pick" is on the never-store list: it would entrench homogenization, the exact failure this skill exists to avoid.144145---146147## Anti-patterns148149- One 30-idea list from a single context — within-context fixation makes the last 20 near-duplicates.150- Scoring or feasibility talk during a generation pass.151- Letting the generation context judge its own output.152- Averaging the four axes into one number before selection, then picking the top-n — this silently discards every high-novelty idea.153- Capping the report at a fixed 3–4 finalists regardless of how many ideas cleared the quality bar — the count is emergent, not a target.154- Treating the "Ideas worth revisiting" section as a throwaway list — it must name why each near-miss missed and what would flip it; that is the inspiring part.155- A 4th evolution round because it "still feels like it's improving" — self-assessed improvement is the signal that lies.156- Storing user idea-taste as a lesson.157158---159160## Definition of Done161162- [ ] Problem restated and success criterion named before any generation.163- [ ] Generation and evaluation never co-occurred in one pass.164- [ ] Pool met the unique-idea gate for the chosen depth.165- [ ] Every finalist has all four axis scores, an executability probe, and the confidence gate result.166- [ ] The finalist count reflects the quality bar, not a fixed target — every idea that cleared the admission bar is reported (or capped only by an explicit `--n`).167- [ ] Report includes the high-novelty wildcard, the run stats (bursts, non-duplicate yield, evolution rounds, score trajectory), and an "Ideas worth revisiting" section that names, per near-miss, why it missed and what would flip it.168- [ ] User verdict requested; lessons written per the loop contract.
Run npx skillmds@latest add mthines/ideate in your terminal (requires Node.js), paste this page's agent-chat prompt into Claude, Cursor, or any MCP-connected agent, or download the SKILL.md file and copy it into your agent's skills directory.
Generates, stress-tests, and iteratively evolves ideas for a stated problem — product concepts, features, solution options, strategies — using research-grounded divergent/convergent agent loops: parallel persona generators (nominal-group simulation), independent judges scoring novelty, feasibility, impact, and fit on separate axes, and bounded recombination rounds gated by /confidence. Auto-triages run depth (quick in-context vs deep multi-agent; override with quick|deep). Use when brainstorming, exploring solution options, or pressure-testing a concept. Triggers on "brainstorm", "give me ideas", "help me come up with", "ideate on", "what could we build", "/ideate". It is listed under AI & ML on SkillMD.
This skill has not completed SkillMD's automated safety review yet. SkillMD never runs a skill's scripts for you; review the SKILL.md before installing.
This skill is tagged as working with Claude Code, Claude.ai, OpenAI Codex. SKILL.md is an open format, so most agents that read a skills directory can load it too.
Yes. Installing skills from SkillMD is free. This skill is licensed under MIT.
mthines (@mthines) published this skill. Their other Agent Skills are listed on their SkillMD profile.