CtrlK
BlogDocsLog inGet started
Tessl Logo

ideate

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

74

Quality

93%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

SKILL.md
Quality
Evals
Security

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.

Contents

  • Mode Detection
  • Workflow
  • Quick vs deep
  • Composition
  • Core Principles
  • Self-Improvement
  • Anti-patterns
  • Definition of Done

Mode Detection

Parse $ARGUMENTS:

ModeDefaultTrigger
quickquick token, or auto-triage says small.
deepdeep token, or auto-triage says open-ended.
autoyesNo mode token — run the depth triage table below.
FlagDefaultMeaning
--n <count>unsetOptional 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-framingoffSkip 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:

#SignalDepth
1User asks for thorough / extensive / "really new" ideas, or the problem combines ≥ 2 domains ("X meets Y").deep
2Outcome is a product, business, strategy, or roadmap decision.deep
3Problem is a local decision: naming, small feature shape, workaround, single component.quick
4User is mid-conversation and wants options fast ("any ideas?", "what do you think?").quick
5Unsure.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

PhaseNameRule fileGate
0Intake & triage(inline below)Problem restated in one sentence; success criterion named; depth chosen; lessons read.
1Frame(inline below)3–5 "How Might We" framings at different widths; one selected and logged.
2Divergerules/divergence.mdPool ≥ 12 (quick) / ≥ 25 (deep) unique ideas; zero evaluation happened during generation.
3Scorerules/idea-scoring.mdEvery pooled idea scored on 4 independent axes by a non-generator judge.
4Evolverules/evolution-loop.md≤ 3 rounds; stopped on flat external scores, never on self-assessed improvement.
5Validaterules/idea-scoring.md § Finalist validationEvery finalist has an executability probe; confidence(analysis) ≥ 70 on the recommendation.
6Reporttemplates/ideation-report.mdReport emitted; finalist count reflects the quality bar; high-novelty wildcard included; "Ideas worth revisiting" filled; verdict question asked.
7Learnrules/self-improvement-loop.mdLessons written — mechanics only, never idea content.

Phase 0 — Intake & triage

  1. Read lessons (advisory input for mechanics only — see the hard invariant under Self-Improvement). Narrow-to-broad LoreKit fan-out; skipped with one report line if memory.* is not connected:

    memory.list { scope: "repo::{owner}/{repo}", tags: ["loop::ideate-lessons"], limit: 50 }
    memory.list { scope: "global",               tags: ["loop::ideate-lessons"], limit: 50 }
  2. Restate the problem in one sentence and name the success criterion — what makes an idea "good" here (cheapest, most novel, shippable this week, …).

  3. Run the depth triage table unless a mode token was given.

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

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

Aspectquickdeep
GenerationIn-context, 2 bursts × 8 ideas, operators rotated per burst.5 parallel persona subagents × 6 ideas per burst, ≥ 2 bursts (§1.4, §4.4).
Fixation guardOperator switch + "what has NOT been said yet" reseed (§1.5).Independent contexts — the structural fix (§4.3).
JudgingSeparate 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).
ReportInline.Inline + written to .agent/ideate/<yyyy-mm-dd>-<slug>.md.

Composition

SkillWhenCall
confidencePhase 5, on the finalist recommendation.Skill("confidence", "analysis")
criticalDeep 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.
uxFinalists that are UI/UX or product-surface concepts.Skill("ux") as a lens on the finalist.
lorekit-memory (LoreKit memory.* tools)Phases 0 and 7.See rules/self-improvement-loop.md.

confidence is required; the others are optional — a missing one never blocks, and is reported in one line (<name> — skipped (not installed | not connected)), never silently.


Core Principles

  1. Simulate a nominal group, not a meeting. Independent generation contexts, pooled afterwards — never one long list from one context (§1.2, §4.3).
  2. Strictly separate generation from evaluation. The one Osborn rule that survives scrutiny; no feasibility talk inside a generation pass (§3.1).
  3. Diversity comes from personas and prompts, not temperature. Temperature is a weak novelty lever with a coherence cost (§4.6).
  4. The judge is never the generator. Self-scoring amplifies self-bias per iteration (§4.7, §5.1).
  5. Protect novelty at selection. Default selection sacrifices originality for feasibility and performs near-randomly; always carry one high-novelty pick (§3.2).
  6. 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).
  7. Iterate by recombination across lineages, not polishing. Cap at 3 rounds; stop on flat external scores (§5.1–§5.3).
  8. The obvious ideas come first. Always run a second burst seeded with "what has NOT been said yet" (§1.5).
  9. Pre-execution novelty is inflated. Every finalist needs a concrete first-step probe before it is recommended (§4.2).

Self-Improvement

Two-tier loop, scope ideate-lessons — full contract in rules/self-improvement-loop.md, diagnostic surface in rules/diagnostic-surface.md.

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.
Repository
mthines/agent-skills
Last updated
First committed

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.