A round-based idea iteration system that treats ideas as competing organisms — scoring, selecting, crossing, and evolving them through structured rounds to surface the strongest concepts.
The metaphor is Darwinian selection: ideas that score well survive and evolve; weak ideas get flagged for the user to decide on; crossbreeding produces novel offspring. This prevents the common failure mode of brainstorming where all ideas stay equally vague forever.
| Command | Description |
|---|---|
| /idea-darwin init | Initialize: parse ideas.md, create directory structure, config, and initial cards (optional params below) |
| /idea-darwin round | Execute the next iteration round |
| /idea-darwin round N | Execute N consecutive rounds |
| /idea-darwin status | View idea pool status and rankings |
| /idea-darwin dormant IDEA-XXXX | Put a specific idea into dormancy |
| /idea-darwin wake IDEA-XXXX | Wake a dormant idea |
| /idea-darwin | No arguments: show brief status and suggest next step |
Arguments are extracted from $ARGUMENTS. If no arguments are provided, show current status and suggestions.
| Parameter | Description | Default |
|---|---|---|
| --budget | Max ideas to process per round | 12 |
| --actions | Max actions per idea per round | 2 |
| --disruption | Introduce external stimulus every N rounds (disruption round) | 3 |
Example: /idea-darwin init --budget 8 --actions 3 --disruption 5
These parameters are written to config.yaml and can be manually edited later. Unspecified parameters use defaults.
The system maintains this structure in the working directory (created during initialization):
project/
├── ideas.md # User's raw ideas (read-only — never modify this file)
├── config.yaml # System configuration and state
├── stimuli.md # External stimulus entries (user-editable, system read-only)
├── cards/ # Idea cards
│ ├── IDEA-0001.md
│ └── ...
├── rounds/ # Round reports
│ ├── round-000.md
│ └── ...
├── reports/ # Leaderboard and cluster reports
│ └── leaderboard.md
└── graph/ # Relationship graph
└── relations.json
IDEA-XXXX (4-digit zero-padded, starting from 0001)
config.yaml tracks the next available number in next_idea_id
parent_ids and child_ids
seed → exploring → refining → crossing → validated → dormant
| State | Meaning | Available Actions |
|---|---|---|
| seed | Just entered the pool | Tagging, card generation, deepen, quick cross-validation |
| exploring | Exploration phase | Deepen, derive, critique, preliminary cross |
| refining | Polishing phase | Logic reinforcement, feasibility analysis, risk check |
| crossing | High-cross phase | Merge with complementary ideas, evaluate fusion quality |
| validated | Verified | Output MVP plan, generate execution roadmap |
| dormant | Hibernating | Passive participation in cross and similarity matching only |
State transitions are recommended by the system based on scores and action results, but the user always has final say.
| Dimension | Weight | Meaning |
|---|---|---|
| Novelty | 0.10 | Is there a genuine breakthrough, or just repetition? |
| Feasibility | 0.20 | Is this technically, resource-wise, and path-wise achievable? |
| Value | 0.20 | How much impact would this create if successful? |
| Logic | 0.20 | Is it internally consistent, with no obvious gaps? |
| CrossPotential | 0.10 | How likely is this to spark something new when combined with other ideas? |
| Verifiability | 0.20 | Can we design an experiment or minimum validation path? |
The scoring is layered so that each layer captures a different strategic lens — Survival measures standalone quality, Development measures growth potential, and Priority blends both with recency and diversity bonuses to prevent the pool from stagnating.
Survival = 0.10×Novelty + 0.20×Feasibility + 0.20×Value
+ 0.20×Logic + 0.10×CrossPotential + 0.20×Verifiability
Development = 0.30×Novelty + 0.30×CrossPotential
+ 0.20×VariationPotential + 0.20×Freshness
Priority = 0.50×Survival + 0.30×Development
+ 0.10×NewIdeaBoost + 0.10×DiversityBonus
When scoring, refer to the prompt templates in references/prompts.md.
When the user runs /idea-darwin init:
AskUserQuestion to ask for the path
source:
ideas_file: "./ideas.md"
counter:
next_idea_id: 1
current_round: 0
schedule:
max_ideas_per_round: 12 # --budget
max_actions_per_idea: 2 # --actions
disruption:
trigger_every_n_rounds: 3 # --disruption
wildcard_budget_ratio: 0.10
stimuli.md (external stimulus file in the project root) with an initial template and editing instructions
assets/card-template.md format
stimuli.md and how to use it:
> stimuli.md has been created in the project root. Every N rounds, the system randomly selects up to 5 enabled entries as external stimuli to break mental ruts.
> You can edit this file anytime to add/modify/disable entries. Each entry follows this format:
> ```
> ## [Entry Title]
> - status: enabled / disabled
> - [Content description]
> ```
When the user runs /idea-darwin round, execute these 9 steps strictly in order:
source.ideas_file in config.yaml
stage: seed and receive the NewIdeaBoost
Distribute slots according to max_ideas_per_round:
Select ideas by Priority Score descending. Each idea gets at most max_actions_per_idea actions.
For each selected idea, assign actions based on the state machine (see table above).
When the state machine is insufficient, use score-driven rules:
High Novelty + Low Verifiability → deepen
High Novelty + High CrossPotential → cross
High Value + Low Feasibility → critique + refine
High Feasibility + Low Logic → deepen
High duplication → merge
Process each selected idea in turn. Refer to references/actions.md for detailed execution specs, and references/prompts.md for prompt templates.
Execution flow per idea:
Newly derived ideas also require full card generation and initial scoring.
validated: false, lower priority, report to user
Write to rounds/round-XXX.md, including:
After all file updates are complete, output a round briefing directly in the conversation (not written to file) so the user can understand the full picture without opening any files. Format:
## Round N Briefing
### Actions Taken
| ID | Title | Action | Key Output |
|---|---|---|---|
| IDEA-XXXX | ... | deepen/derive/cross/critique/... | One-line summary |
### Card Changes
| ID | Title | Score Change | State Change | Notes |
|---|---|---|---|---|
| IDEA-XXXX | ... | Priority X.XX→X.XX | seed→exploring | Reason for change |
### New Ideas (Detail)
For each newly produced idea this round:
#### IDEA-XXXX: [Title]
- **Source**: [cross/derive/stimulus] from IDEA-XXXX + IDEA-XXXX
- **Core Question**: [one paragraph]
- **Key Insight**: [what's most valuable about this idea]
- **Initial Score**: Priority X.XX (Survival X.XX / Development X.XX)
- **Current Tension**: [biggest unresolved question]
- **Suggested Next Step**: [deepen/derive/cross/critique + specific direction]
### Current Rankings
| Rank | ID | Title | Priority | Stage |
|---|---|---|---|---|
### Next Round Preview
- [Suggested priority actions]
- [Whether a disruption round is coming soon]
### Decisions Needed
> List key decisions the user needs to make this round. Each item **must include the idea's full title** (not just the ID) along with context and suggested options.
> Examples:
> 1. **IDEA-0002 "Learn Coding Agent Tutorial Site" overlaps with IDEA-0004 "Progressive Unboxing Pedagogy"** — Merge or reposition? Suggestion: [...]
> 2. **IDEA-0006 "Auto-Diagnostic Thread" failed validation** — Dormant, pivot, or keep observing?
> 3. **IDEA-0003 "Thermal Management Ontology" downgraded** — Accept downgrade from ontology to structured Excel as first step?
>
> If no user decisions are needed this round, write "No decisions needed this round."
This briefing is the primary interface between the user and the system — keep it complete and readable. The "Decisions Needed" section is the most important interaction point: the system should clearly list decision items with recommendations, rather than leaving the user to discover issues from reports.
current_round in config.yaml
next_idea_id
Every trigger_every_n_rounds rounds (default 3), external stimuli are introduced in a "disruption round." The purpose is to prevent the idea pool from converging on a local optimum by forcing fresh perspectives.
stimuli.md lives in the project root. It is created during initialization and maintained by the user. Format:
## Industry Trend: Embodied AI Accelerating to Production
- status: enabled
- Embodied AI moving from lab to production line in 2026, robot operating costs down 60%
## Tech Shift: Unified Multimodal Model Architecture
- status: enabled
- Vision, language, and code unified into single models, API paradigm changing
## Contrarian View: SaaS Is Dead
- status: disabled
- Open-source + self-hosted deployments replacing traditional SaaS subscriptions
## heading + status field + content description
enabled = participates in random selection; disabled = skipped
Each round also reserves wildcard_budget_ratio (default 10%) of slots for non-optimal-path exploration.
/idea-darwin dormant IDEA-XXXX
dormant
/idea-darwin wake IDEA-XXXX
exploring)
The system never auto-dormants any idea. Only the user can make that call.
/idea-darwin status
Read config.yaml and all cards, then output:
assets/card-template.md
references/actions.md: Detailed specs and use cases for each standard action
references/prompts.md: Prompt templates for each action
assets/card-template.md: Card file template
共 1 个版本