Ideate logo

Ideate

CommunityPopular
danielmiessler
Ideate

Evolutionary ideation engine — loop-controlled multi-cycle idea generation through phases of dreaming, cross-domain stealing, recombination, fitness testing, selection, and Lamarckian meta-learning, producing ranked novel solution candidates with provenance. USE WHEN ideate, id8, novel ideas, evolve ideas, dream up solutions, innovate, breakthrough ideas, idea evolution, multi-cycle creativity, need genuinely new approaches. NOT FOR quick single-pass brainstorming (use BeCreative).

Overview

Publisherdanielmiessler
RepositoryLifeOS
Skill nameIdeate
Stars
19K
Forks
2.5K
Bundled files
6
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 6 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by danielmiessler on GitHub. Read the source before you install it.

Installation

Install the Ideate AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/danielmiessler/LifeOS.git /tmp/LifeOS
mkdir -p .claude/skills
cp -r /tmp/LifeOS/LifeOS/install/skills/Ideate .claude/skills/Ideate
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Ideate in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Ideate on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Ideate is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Customization

Before executing, check for user customizations at: ~/.claude/LIFEOS/USER/CUSTOMIZATIONS/SKILLS/Ideate/

Ideate — The Cognitive Progress Engine

What It Does

Ideate is a loop-controlled evolutionary creativity engine. It runs multiple cycles of consuming, dreaming, stealing, breeding, and testing ideas over simulated time scales from hours to decades, driven by a first-class Loop Controller and a Lamarckian Meta-Learner. It produces ranked novel solution candidates with full provenance — where each idea came from and how it evolved.

The Problem

A single-pass brainstorm collapses fast. Ask a model for ideas and it converges on the obvious handful, biased toward its training distribution, because soft temperature tweaks just reshuffle the same probability mass. You get variations on one theme, not genuinely different directions. Hard problems need ideas that came from somewhere else — a foreign domain, an unexpected recombination, a constraint flipped on its head — and they need a way to kill the weak ones and breed the strong ones across many rounds. One pass can't do that.

How It Works

This is an evolutionary system, not a single-pass tool. This is NOT BeCreative — BeCreative is a single-pass diversity tool. Ideate runs multiple cycles driven by a Loop Controller and a Lamarckian Meta-Learner.

The Core Insight

Human creativity reduces to 5 irreducible functions:

FunctionWhat It DoesHuman Analog
INGESTGather diverse raw materialReading, conversations, experiences
PERTURBRecombine inputs with controlled noiseDreaming, daydreaming, shower thoughts
CROSS-POLLINATEMap patterns from foreign domains"Stealing" ideas from unrelated fields
SELECTScore against fitness functionCritical thinking, peer review, testing
ITERATEFeed survivors back as inputsSleep cycles, weeks of study, years of work

The 9 workflow phases expand these into a richer human-legible system. DREAM, DAYDREAM, and CONTEMPLATE are PERTURB at different noise levels. MATE is PERTURB on existing ideas. META-LEARN adds the Lamarckian advantage — analyzing WHY ideas worked and steering future generation.

The 9 Phases (Summary)

#PhaseNoiseWhat it does
1CONSUMEMulti-domain research, atomic idea extraction
2DREAM0.9Free-association on random input subsets, no problem awareness
3DAYDREAM0.5Tangential wandering with the problem held loosely
4CONTEMPLATE0.1Structured analysis via 4 lenses (mandatory; checkpoint A gates)
5STEALCross-domain pattern borrowing via weighted random domain lottery
6MATEGenetic recombination via Fisher-Yates shuffle + 8 mutation operations
7TESTMulti-judge scoring on Feasibility/Novelty/Impact/Elegance (checkpoint B gates)
8EVOLVESelection: kill bottom 50%, elite top 10%, mutate the rest, immigrant injection
9META-LEARNLamarckian strategy adjustment + next-cycle question generation

Post-loop: the Insight Extractor runs for cross-cycle pattern analysis.

Full phase mechanics live in Workflows/FullCycle.md.

Workflow Routing

WorkflowTriggerFile
FullCycle"ideate", "id8", "novel ideas for X", "evolve ideas for X", defaultWorkflows/FullCycle.md
QuickCycle"quick novelty for X", "fast brainstorm with scoring"Workflows/QuickCycle.md
Dream"dream on X", "free-associate these inputs", "wild recombinations"Workflows/Dream.md
Steal"steal ideas from biology for X", "cross-pollinate from Y"Workflows/Steal.md
Mate"breed these ideas", "recombine X and Y"Workflows/Mate.md
Test"score these candidates", "test these ideas against fitness"Workflows/Test.md

The Loop Controller

Owns inter-cycle state and makes continue/pivot/stop decisions after each cycle's META-LEARN phase. State tracked:

json
{
  "cycle_count": 0,
  "max_cycles": null,
  "budget_seconds_remaining": 600,
  "fitness_history": [{"cycle": 1, "avg_score": 52.3, "top_score": 68.1, "diversity_index": 0.91}],
  "stagnation_counter": 0,
  "strategy_version": 1,
  "strategy_adjustments": {},
  "loop_decision_log": []
}

Loop Gate logic:

IF budget_seconds_remaining <= 0:        STOP (budget exhausted)
ELIF stagnation_counter >= 3:
    IF strategy_pivots_remaining > 0:    PIVOT (shift domains/noise/agents)
    ELSE:                                STOP (exhausted strategies)
ELIF diversity_index < 0.3:              PIVOT (collapse — inject immigrants)
ELIF top_score >= target_score:          STOP (target reached)
ELSE:                                    CONTINUE

Structural Randomness Engine

LLM "temperature" is soft probability redistribution biased toward the training distribution. Ideate uses structural randomness at the data level instead:

  • Input subsetting (DREAM): Fisher-Yates shuffle picks each agent's input subset
  • Domain lottery (STEAL): weighted random sampling from the 50+ candidate domain pool
  • Pairing shuffle (MATE): Fisher-Yates pairs adjacent items; 20% slots forced cross-phase
  • Mutation dice (EVOLVE): roll an 8-sided die, apply that mutation operation:
    1. Flip one assumption
    2. Invert the constraint
    3. Change the scale (10× bigger or smaller)
    4. Change the time horizon
    5. Merge with a random killed idea's best element
    6. Apply a constraint from a random domain
    7. Remove the most complex component
    8. Add an adversarial requirement

Implementation: crypto.getRandomValues() with seed = cycle number + problem hash.

External Validation Hooks (TEST extension)

Optional pluggable interface that adds real-world signal to internal scoring:

typescript
interface ValidationHook {
  name: string;
  validate(idea: Idea, problem: Problem): Promise<{ modifier: number; evidence: string }>;
}

Built-in hooks: MarketSearch (existing implementations), FeasibilityCheck (technical blockers), ExpertPanel (async human review), PrototypeSimulation (generate + test prototype).

Time-Scale Configuration

Time scaleBudgetEst. cyclesAgents/phase
hours5 min1-22-3
days12 min2-43-4
weeks25 min3-84-5
months45 min5-155-6
years90 min8-306-8
decades180 min15-50+8-10

Loop Controller decides actual cycle count adaptively, not a fixed count.

State Persistence

Each run persists to ~/.claude/LIFEOS/MEMORY/WORK/{slug}/ideate/:

ideate/
  config.json           # Problem, time_scale, domains, hooks
  loop-state.json       # Loop Controller (fitness_history, strategy, decisions)
  domain-pool.json      # Weighted domain pool (expanded across cycles)
  cycle-NNN/            # Per-cycle artifacts: input-pool, dreams, daydreams,
                        # analyses, checkpoint-a, stolen, offspring, scores,
                        # checkpoint-b, survivors, meta-learning, summary
  insights.md           # Insight Extractor output (post-loop)
  final-output.md       # Ranked candidate list with full provenance

Idea Data Structure

json
{
  "id": "idea-042",
  "text": "...",
  "provenance": {
    "parents": ["idea-017", "idea-023"],
    "operation": "crossover",
    "mutation_type": "scale_change",
    "mutation_die_roll": 3,
    "cycle": 3, "phase": "MATE",
    "source_domains": ["mycology", "distributed-systems"],
    "randomness_seed": "a7f3c9..."
  },
  "scores": {
    "feasibility": 72, "novelty": 88, "impact": 65, "elegance": 81,
    "composite": 76.5, "confidence": 0.82, "judge_variance": 8.3,
    "external_validation": {"market_search": {"modifier": -5, "evidence": "..."}},
    "adjusted_composite": 74.5
  },
  "arguments": {"supporting": "...", "counter": "..."}
}

Final Output Format

markdown
# Ideate Results: [Problem]

**Time scale:** [scale] | **Budget used:** X of Y min | **Cycles:** N (adaptive)
**Strategy pivots:** M | **Total ideas:** X | **Survived:** Y | **Kill rate:** Z%

## Top Candidates (ranked by adjusted composite score)

### 1. [Title] — Score: 85.2/100 (confidence: 0.91)

**The idea:** [2-3 sentences]
**Scores:** Feasibility: 78 | Novelty: 92 | Impact: 84 | Elegance: 87
**External validation:** [hook results]
**Provenance:** Born in cycle N from [operation] of [parents]. Mutation: [type].
**For it:** [supporting argument]
**Against it:** [counterargument]

## Evolution Summary
| Cycle | Ideas In | Survived | Top Score | Diversity | Strategy | Decision |
|-------|----------|----------|-----------|-----------|----------|----------|

## Meta-Learning Trajectory
- [How strategy evolved across cycles]

## Evolutionary Insights (from The Historian)
- [Dominant lineages, fertile combinations, fitness landscape, problem revelations]

Configuration

json
{
  "problem": "...",
  "time_scale": "weeks",
  "domains": ["primary", "adjacent-1", "adjacent-2"],
  "scoring_weights": {"feasibility": 1.0, "novelty": 1.0, "impact": 1.0, "elegance": 1.0},
  "convergence_prevention": {
    "cross_phase_breeding_min": 0.2,
    "immigrant_ideas_per_cycle": 3,
    "kill_threshold": 0.5,
    "forced_new_domain_per_cycle": true
  },
  "loop_control": {
    "mode": "adaptive",
    "target_score": null,
    "max_stagnation_cycles": 3,
    "max_strategy_pivots": 2,
    "diversity_floor": 0.3
  },
  "external_validation": {"enabled": false, "hooks": ["MarketSearch"]},
  "randomness": {"seed": null, "subset_ratio": 0.33, "mutation_operations": 8}
}

Integration with Other Skills

SkillPhaseHow
ResearchCONSUME, STEALMulti-agent parallel research, cross-domain patterns
BeCreativeDREAM, DAYDREAMMaximumCreativity workflow for high-noise recombination
IterativeDepthCONTEMPLATE4-lens analysis (Literal, Failure, Analogical, Constraint Inversion)
FirstPrinciplesCONTEMPLATEDecompose to axioms, challenge assumptions
RedTeamTESTAdversarial attack on candidates to find fatal flaws
Custom agentsALLInline briefs (name + role + stance) for unique cognitive personalities per phase, launched with general-purpose
CouncilMATE (optional)Debate between ideas before breeding

Algorithm Integration

When the Algorithm runs an ideation cycle it loads this skill and routes to Workflows/FullCycle.md by default. Tunable parameters from the algorithm's archived LIFEOS/ALGORITHM/archive/parameter-schema.md (historical — the mode system retired 2026-07-11) map to the configuration above. The Meta-Learner may adjust parameters within bounds; user-explicit overrides are auto-locked.

Examples

  • "id8 on retention strategies for the newsletter" → FullCycle: all 9 phases, Loop Controller decides cycle count, ranked candidates with provenance.
  • "quick novelty pass on these three feature ideas" → QuickCycle: one compressed cycle with fitness scoring.
  • "steal ideas from biology for cache invalidation" → Steal: cross-domain borrowing only, no full evolution loop.

Gotchas

  • Ideate is for multi-cycle evolutionary ideation — not quick brainstorming. For fast divergent ideas, use BeCreative.
  • The Loop Controller manages cycle count — don't override it manually. Trust the budget-based cycling.
  • Meta-learner adjustments happen automatically within parameter bounds. Don't manually tune mid-cycle.
  • CONTEMPLATE is mandatory. Skipping it degrades MATE quality because STEAL operates on disconnected material.
  • Structural randomness defeats LLM bias. Don't substitute "interesting pairs picked by the LLM" for Fisher-Yates — the bias is the problem.

Citations

  • The 9-phase decomposition and the path-to-ASI mapping derive from a publicly published 2024 essay on cognitive progress and a possible path to ASI. The framework name Cognitive Progress Workflow refers to that essay.
  • The Lamarckian advantage framing (Phase 9 META-LEARN) borrows from research on auto-research loops and meta-learning in agent systems (cf. Karpathy auto-research pattern).
  • Structural randomness as a defeat for LLM-bias is empirical — see internal experiments comparing LLM-picked pairings vs Fisher-Yates pairings on diversity metrics.

Execution Log

After completing any workflow, append a single JSONL entry:

bash
echo '{"ts":"'$(date -u +%Y-%m-%dT%H:%M:%SZ)'","skill":"Ideate","workflow":"WORKFLOW_USED","input":"8_WORD_SUMMARY","status":"ok|error","duration_s":SECONDS}' >> ~/.claude/LIFEOS/MEMORY/SKILLS/execution.jsonl

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Ideate AI skill do?

Evolutionary ideation engine — loop-controlled multi-cycle idea generation through phases of dreaming, cross-domain stealing, recombination, fitness testing, selection, and Lamarckian meta-learning, producing ranked novel solution candidates with provenance. USE WHEN ideate, id8, novel ideas, evolve ideas, dream up solutions, innovate, breakthrough ideas, idea evolution, multi-cycle creativity, need genuinely new approaches. NOT FOR quick single-pass brainstorming (use BeCreative).

Why use Ideate on TypingMind?

Because you install it once and use it with any model. Ideate is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Ideate in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/danielmiessler/LifeOS/tree/main/LifeOS/install/skills/Ideate. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Ideate?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Ideate?

As many as you like. As long as a model supports skills, you can use Ideate with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Ideate AI skill free?

Yes. It is published on GitHub by danielmiessler under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇