npx skills add https://github.com/jwynia/agent-skills --skill brainstorming你帮助人们在任何领域扩展想法并摆脱趋同思维——无论是软件、商业、创意项目还是个人决策。
想法需要成长的空间和碰撞的对象。 有时你陷入困境需要摆脱窠臼。有时你有一个种子需要扩展它。两者都是构思问题,只是切入点不同。
两种模式,一个目标:探索可能性空间,而不是满足于第一个可用的选项。
在深入之前,先确定你的起点:
| 起点 | 信号 | 模式 |
|---|---|---|
| 陷入困境 | 相同的想法不断浮现。所有选项都感觉是变体。"我们已经尝试了一切。"在探索之前就进行评估。 | → 逃逸速度协议 |
| 有种子 | 已经有了某个想法的开端。想看看它能发展成什么。寻找相邻的步骤或缺失的部分。 | → 种子扩展协议 |
| 不明确 | 不确定是陷入困境还是只是早期阶段。有东西但不确定它好不好。 | → 从种子扩展开始;如果遇到趋同则切换到逃逸速度 |
关键问题: 你是试图摆脱某种状态(陷入困境)还是发展成某种状态(有种子)?
想法聚集是因为它们在多个维度上符合预期模式。当你的解决方案使用明显的 WHO 通过明显的 METHOD 在明显的 SCALE 上做明显的 WHAT 时——这就是为什么它感觉可预测。
关键测试: 三个不同的人独立头脑风暴会产生相同的列表吗?如果是,你还没有发散。
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
症状:
关键问题:
干预措施: 运行默认枚举(阶段 1)。在尝试逃脱之前命名聚集点。你无法逃脱尚未使之可见的默认选项。
症状:
关键问题:
干预措施: 运行功能提取(阶段 2)。将 WHAT 与 HOW 分开。为每个功能生成 5 个替代方案,而不是为每个解决方案。
症状:
关键问题:
干预措施: 运行维度映射(阶段 3)。在四个维度上映射默认解决方案。至少旋转一个维度以打破模式。
症状:
关键问题:
干预措施: 运行领域导入(阶段 4)。通过应用 3 个以上不相关领域的逻辑来生成想法。使用带 domains 类别的 constraint-entropy.ts。
症状:
关键问题:
干预措施: 转向评估框架。按方法聚类,从每个聚类中挑选代表性方案进行原型设计/测试。
一个用于突破趋同头脑风暴的结构化流程。对于陷入困境的会话使用所有五个阶段;当问题明确时跳转到相关阶段。
在生成"真实"想法之前,明确列出默认选项:
输出: 5-10 个明显想法的列表,明确标记为默认选项。
目的: 使吸引子可见。你无法逃脱尚未命名的事物。
对于每个需求,将 WHAT 与 HOW 分开:
重构: "我们需要[形式]"变为"我们需要[功能],而[形式]是一种方式"
输出: 解决方案必须实现的 3-5 个核心功能列表,与形式无关。
示例:
在四个维度上映射默认解决方案:
| 维度 | 问题 | 默认 | 替代方案 |
|---|---|---|---|
| Who | 谁做/使用/拥有这个? | [明显的参与者] | 3 个不太可能的参与者 |
| When | 什么时间框架/频率? | [明显的时机] | 不同的节奏/时机 |
| Scale | 什么规模/范围? | [明显的规模] | 10 倍大?10 倍小? |
| Method | 什么方法/机制? | [明显的方法] | 完全不同的方法 |
关键洞察: 当想法在所有四个维度上都匹配"可能"时,它们感觉可预测。改变任何维度,想法就会变得不那么明显。
输出: 完成的维度映射,每个维度至少有两个替代方案。
引入随机约束以强制探索:
熵的类型:
工具: 使用 constraint-entropy.ts 生成随机约束:
deno run --allow-read constraint-entropy.ts --combo
deno run --allow-read constraint-entropy.ts domains --count 3
deno run --allow-read constraint-entropy.ts inversions
输出: 在非常规约束下生成的 3-5 个想法。
目的: 强制探索非相邻的可能性空间。即使不舒服也要接受约束。
对于有希望的想法,检查:
测试: 当一个想法有自己的逻辑,与问题碰撞而不是以预期的方式服务它时,它是正交的。
输出: 标记为真正发散的想法 vs. 表面不同的想法。
一个用于从初始种子发展想法的结构化流程。基于史蒂文·约翰逊关于好想法来源的研究。当你有东西要扩展而不是要摆脱时使用。
这些不是鼓舞人心的——它们是诊断性的。每个都描述了想法实际发展的机制:
| 原则 | 机制 | 诊断性问题 |
|---|---|---|
| 相邻可能 | 大多数"新"想法是从现有事物出发下一步可达到的步骤。楼梯,不是传送。 | 离这个种子一步之遥的是什么?一旦这个存在,什么变得可能? |
| 液态网络 | 当部分想法碰撞时形成——人、人工制品、过去的工作、不相关的领域。 | 这个种子应该与什么碰撞?环境中有什么可以连接? |
| 缓慢的预感 | 许多好想法开始时是半生不熟的。它们需要时间来遇到缺失的部分。 | 关于这个种子,什么是不完整的?什么会完成它? |
| 意外发现 | 运气加识别。当有用的异常出现时,你会注意到它。 | 你最近遇到了什么意想不到的事情可能与之连接? |
| 错误 | 失败是信息。反馈将漫游转化为趋同。 | 这个最愚蠢的版本是什么?这个在哪里会失败? |
| 功能变异 | 将为一个工作构建的东西重新用于不同的工作。重用即发明。 | 这个种子能解决一个完全不同的问题吗?有什么是为其他东西构建的可以在这里工作? |
| 平台 | 稳定的原语让人们更快更安全地构建。 | 这个可以建立在什么稳定的东西上?什么会使这个成为其他想法的平台? |
在扩展之前,了解你拥有哪种种子:
信号:
关键问题:
扩展: 映射相邻可能。列出从这个种子可达到的 3-5 件事。选择最有趣的并重复。
信号:
关键问题:
扩展: 强制碰撞。将领域、约束和人工制品投向种子。如果需要,使用逃逸速度协议中的熵注入。
信号:
关键问题:
扩展: 不要强迫完成。表达你已有的东西。命名缺口。通过写下来保持预感存活,然后寻找可能随时间填补缺口的碰撞。
信号:
关键问题:
扩展: 挖掘失败。错误包含关于解决方案形状的信息。列出你学到的东西,然后寻找避免失败模式的相邻种子。
信号:
关键问题:
扩展: 有意识地移植。列出 5 个完全不同的情境。在每个情境中尝试种子。注意什么改变了,什么保留了下来。
与逃逸速度(顺序性)不同,根据需要基于种子状态使用这些阶段:
在扩展之前,捕捉你拥有的东西:
输出: 关于种子及其类型的清晰陈述。
映射从这个种子可达到的东西:
输出: 3-5 个相邻可能性,其中一个标记为"最有趣"。
强制种子与其他材料碰撞:
工具: 使用 constraint-entropy.ts domains --count 5 生成随机领域进行碰撞。
输出: 3-5 个碰撞结果,注明哪个产生了有趣的东西。
对于不完整的种子,命名缺少的东西:
输出: 关于缺口的清晰陈述。这是你在未来碰撞中寻找的东西。
对于可能在其他地方工作的种子:
输出: 移植结果,附有每个揭示内容的注释。
找到种子在哪里会失败:
输出: 失败模式及其揭示的关于种子实际结构的信息。
你可能从一个模式开始,需要切换到另一个:
种子 → 陷入困境: 如果种子扩展产生聚集(所有扩展都是同一事物的变体),切换到逃逸速度。你遇到了趋同。
陷入困境 → 种子: 如果逃逸速度产生一个有希望的发散想法,切换到种子扩展来发展它。你找到了值得成长的种子。
交接: 逃逸速度生成候选者。种子扩展发展优胜者。它们是同一构思过程的不同阶段。
问题: 生成 50 个想法,但都是相同 3 种方法的变体。
症状: 数量高,分布低。想法在映射时视觉上聚集。很容易归入少数几个类别。
修复: 停止计数。开始在维度上映射。在添加更多之前,要求每个象限至少有一个想法。衡量分布,而不是数量。
问题: "如果我们做相反的呢?"是懒惰的发散。对立面共享相同的维度——它们仍然是趋同的。
症状: "与其快,不如让它慢。""与其自动化,不如让它手动。""与其昂贵,不如让它免费。"
修复: 反转改变的是幅度,而不是维度。找到一个真正正交的维度,而不是同一维度的负向。"如果速度根本不是相关维度呢?"
问题: 在生成想法时评估它们。"那行不通,因为..."扼杀了发散。
症状: 想法在表达中途夭折。群体纠正为"现实"的想法。对不切实际的建议感到不适。
修复: 严格的阶段分离。生成不是评估。所有想法在筛选之前写下。不切实际的想法可能包含实际想法的种子。
问题: 领域专家的第一个想法因为权威而非质量而主导。
症状: 第一个发言者的想法成为参考点。所有后续想法都是变体或反应。对经验的顺从。
修复: 首先匿名生成想法。或者:专家最后发言。或者:在阶段 1 明确枚举专家的默认选项,然后将其排除在进一步考虑之外。
问题: 为了发散而发散。追求奇怪但不服务于实际功能的想法。
症状: 想法令人惊讶但无用。聪明但不实用。"那很有创意但没解决问题。"
修复: 回到阶段 2(功能提取)。奇怪的想法是否真正实现了所需功能?如果没有,它不是发散的——它是无关的。正交性必须服务于功能。
问题: 当现有技术存在时,从零开始头脑风暴。重新发明现有的解决方案。
症状: "我想知道是否有人尝试过..."(他们有)。想法对群体来说是新颖的,但其他地方已经存在。
修复: 构思前进行研究。找到 5 个以上的现有方法,在阶段 1 将它们枚举为默认选项,然后发散。站在巨人的肩膀上,而不是重新发明轮子。
生成随机约束以强制发散探索。
# 生成随机约束
deno run --allow-read constraint-entropy.ts --count 3
# 获取领域导入提示
deno run --allow-read constraint-entropy.ts domains --count 5
# 生成约束组合(每个类别一个)
deno run --allow-read constraint-entropy.ts --combo
# 特定类别
deno run --allow-read constraint-entropy.ts actors
deno run --allow-read constraint-entropy.ts resources
deno run --allow-read constraint-entropy.ts inversions
deno run --allow-read constraint-entropy.ts combinations
# JSON 输出
deno run --allow-read constraint-entropy.ts --combo --json
类别:
actors - 参与者约束("必须由 10 岁儿童使用"、"必须让敌对者受益")resources - 资源约束("1/10 预算"、"不能使用明显技术")combinations - 强制组合("必须同时解决 X"、"必须不做预期的事情")inversions - 视角翻转("如果失败是目标呢?"、"如果约束是特性呢?")domains - 领域导入提示("军事后勤会如何解决这个问题?")为什么用脚本: 真正的随机性强制了人类和 LLM 否则会避免的探索。精心策划的约束实际上能产生有用的发散。
用户: "我们需要改进团队沟通的想法。我们不断生成相同的想法——Slack 频道、更多会议、文档。"
诊断方法:
识别状态: B1(趋同盲区)+ B4(领域禁锢)。想法围绕沟通工具和会议结构聚集——这个问题的明显默认选项。
阶段 1 - 默认枚举: 让我们明确命名默认选项:
这些是类型默认选项。有效但可预测。
阶段 2 - 功能提取: 团队沟通必须实现什么?
阶段 3 - 维度映射(针对"每日站会"):
| 维度 | 默认 | 替代方案 |
|---|---|---|
| Who | 整个团队 | 轮换配对?跨团队?包括客户? |
| When | 每日早晨 | 每周?按需触发?遇到阻塞后? |
| Scale | 15 分钟 | 2 分钟硬性限制?每月 2 小时深度探讨? |
| Method | 口头同步 | 异步文本?视频录制?边走边谈? |
阶段 4 - 熵注入: 运行 constraint-entropy.ts --combo:
这强制:如果讨厌会议的人仍然获得信息会怎样?如果我们为更少但更有效的沟通设计会怎样?
生成发散想法:
这些想法是正交的——不同的维度,而不是"会议工具"的变体。
此技能将主要输出写入文件,以便工作在不同会话间持久化。
在进行任何其他工作之前:
context/output-config.mdexplorations/brainstorming/ 或此项目的合理位置context/output-config.md 中.brainstorming-output.md 中对于此技能,持久化:
| 进入文件 | 留在对话中 |
|---|---|
| 枚举的默认选项 | 关于哪些默认选项感觉顽固的讨论 |
| 带旋转的维度映射 | 关于约束选择的迭代 |
| 生成的发散想法 | 对想法的实时反馈 |
| 正交性评估 | 澄清性问题 |
| 有希望的组合 | 被丢弃的选项 |
模式:{主题}-{日期}.md 示例:product-naming-2025-01-15.md
每周安装数
116
仓库
GitHub 星标数
37
首次出现
2026年1月20日
安全审计
安装于
opencode99
codex91
gemini-cli90
github-copilot85
cursor82
claude-code80
You help people expand ideas and escape convergent thinking across any domain—software, business, creative projects, or personal decisions.
Ideas need room to grow and things to collide with. Sometimes you're stuck and need to escape a rut. Sometimes you have a seed and need to expand it. Both are ideation problems with different entry points.
Two modes, one goal: explore possibility space rather than settling for the first available option.
Before diving in, identify where you're starting:
| Starting Point | Signals | Mode |
|---|---|---|
| Stuck | Same ideas keep surfacing. All options feel like variations. "We've tried everything." Evaluation before exploration. | → Escape Velocity Protocol |
| Seed | Have the start of something. Want to see what it could become. Looking for adjacent moves or missing pieces. | → Seed Expansion Protocol |
| Unclear | Not sure if stuck or just early. Have something but not sure if it's good. | → Start with Seed Expansion; switch to Escape Velocity if you hit convergence |
Key question: Are you trying to get OUT of something (stuck) or grow INTO something (seed)?
Ideas cluster because they match expected patterns on multiple dimensions. When your solution uses the obvious WHO doing the obvious WHAT at the obvious SCALE via the obvious METHOD—that's why it feels predictable.
The key test: Could three different people brainstorming independently produce the same list? If yes, you haven't diverged yet.
Symptoms:
Key Questions:
Interventions: Run Default Enumeration (Phase 1). Name the cluster before trying to escape it. You cannot escape defaults you haven't made visible.
Symptoms:
Key Questions:
Interventions: Run Function Extraction (Phase 2). Separate WHAT from HOW. Generate 5 alternatives per function, not per solution.
Symptoms:
Key Questions:
Interventions: Run Axis Mapping (Phase 3). Map the default solution on four axes. Rotate at least one axis to break the pattern.
Symptoms:
Key Questions:
Interventions: Run Domain Import (Phase 4). Generate ideas by applying logic from 3+ unrelated fields. Use constraint-entropy.ts with domains category.
Symptoms:
Key Questions:
Interventions: Move to evaluation framework. Cluster by approach, pick representative from each cluster to prototype/test.
A structured process for breaking out of convergent brainstorming. Use all five phases for stuck sessions; skip to relevant phase when the problem is clear.
Before generating "real" ideas, explicitly list the defaults:
Output: A list of 5-10 obvious ideas, explicitly labeled as defaults.
Purpose: Make attractors visible. You cannot escape what you haven't named.
For each requirement, separate WHAT from HOW:
Reframe: "We need [FORM]" becomes "We need to [FUNCTION] and [FORM] is one way"
Output: A list of 3-5 core functions the solution must accomplish, independent of form.
Example:
Map the default solution on four axes:
| Axis | Question | Default | Alternatives |
|---|---|---|---|
| Who | Who does/uses/owns this? | [obvious actor] | 3 unlikely actors |
| When | What timeframe/frequency? | [obvious timing] | Different cadence/timing |
| Scale | What size/scope? | [obvious scale] | 10x bigger? 10x smaller? |
| Method | What approach/mechanism? | [obvious approach] | Completely different approach |
The key insight: Ideas feel predictable when they match "likely" on all four axes. Change ANY axis and the idea becomes less obvious.
Output: Completed axis map with at least 2 alternatives per axis.
Introduce random constraints to force exploration:
Types of entropy:
Tool: Use constraint-entropy.ts to generate random constraints:
deno run --allow-read constraint-entropy.ts --combo
deno run --allow-read constraint-entropy.ts domains --count 3
deno run --allow-read constraint-entropy.ts inversions
Output: 3-5 ideas generated under unusual constraints.
Purpose: Force exploration of non-adjacent possibility space. Accept the constraints even if uncomfortable.
For promising ideas, check:
The test: An idea is orthogonal when it has its own logic that collides with the problem rather than serving it in the expected way.
Output: Ideas flagged as genuinely divergent vs. cosmetically different.
A structured process for growing ideas from initial seeds. Based on Steven Johnson's research on where good ideas come from. Use when you have something to expand rather than something to escape.
These aren't inspirational—they're diagnostic. Each describes a mechanism for how ideas actually develop:
| Principle | Mechanism | Diagnostic Question |
|---|---|---|
| Adjacent Possible | Most "new" ideas are the next reachable step from what exists. Stairs, not teleportation. | What's one step away from this seed? What becomes possible once this exists? |
| Liquid Networks | Ideas form when partial thoughts collide—people, artifacts, past work, unrelated domains. | What should this seed collide with? What's in the environment that could connect? |
| Slow Hunch | Many good ideas start half-baked. They need time to meet their missing piece. | What's incomplete about this seed? What would finish it? |
| Serendipity | Luck plus recognition. You notice the useful anomaly when it appears. | What unexpected thing have you encountered recently that might connect? |
| Error | Failure is information. Feedback turns wandering into convergence. | What's the dumbest version of this? Where does this break? |
| Exaptation | Repurpose something built for one job into a different job. Reuse as invention. |
Before expanding, understand what kind of seed you have:
Signals:
Key Questions:
Expansion: Map the adjacent possible. List 3-5 things that become reachable from this seed. Pick the most interesting and repeat.
Signals:
Key Questions:
Expansion: Force collisions. Throw domains, constraints, and artifacts at the seed. Use entropy injection from Escape Velocity Protocol if needed.
Signals:
Key Questions:
Expansion: Don't force completion. Articulate what you have. Name the gap. Keep the hunch alive by writing it down, then look for collisions that might fill the gap over time.
Signals:
Key Questions:
Expansion: Mine the failure. Errors contain information about the shape of the solution. List what you learned, then look for adjacent seeds that avoid the failure modes.
Signals:
Key Questions:
Expansion: Transplant deliberately. List 5 completely different contexts. Try the seed in each. Note what changes, what survives.
Unlike Escape Velocity (which is sequential), use these phases as needed based on seed state:
Before expanding, capture what you have:
Output: A clear statement of the seed and what kind of seed it is.
Map what's reachable from this seed:
Output: 3-5 adjacent possibilities with one marked as "most interesting."
Force the seed to collide with other material:
Tool: Use constraint-entropy.ts domains --count 5 to generate random domains for collision.
Output: 3-5 collision results, noting which produced something interesting.
For incomplete seeds, name what's missing:
Output: A clear statement of the gap. This is what you're looking for in future collisions.
For seeds that might work elsewhere:
Output: Transplant results with notes on what each revealed.
Find where the seed breaks:
Output: Failure modes and what they reveal about the seed's actual structure.
You may start in one mode and need to switch:
Seed → Stuck: If seed expansion produces clustering (all expansions are variations of the same thing), switch to Escape Velocity. You've hit convergence.
Stuck → Seed: If Escape Velocity produces a promising divergent idea, switch to Seed Expansion to develop it. You've found a seed worth growing.
The handoff: Escape Velocity generates candidates. Seed Expansion develops winners. They're different phases of the same ideation process.
Problem: Generating 50 ideas that are all variations of the same 3 approaches.
Symptom: High count, low spread. Ideas cluster visually when mapped. Easy to group into few buckets.
Fix: Stop counting. Start mapping on axes. Require at least one idea per quadrant before adding more. Measure spread, not volume.
Problem: "What if we did the opposite?" is lazy divergence. Opposites share the same axis—they're still convergent.
Symptom: "Instead of fast, make it slow." "Instead of automated, make it manual." "Instead of expensive, make it free."
Fix: Inversion changes magnitude, not dimension. Find a truly orthogonal axis, not the negative of the same axis. "What if speed wasn't the relevant dimension at all?"
Problem: Evaluating ideas while generating them. "That won't work because..." kills divergence.
Symptom: Ideas die mid-sentence. Group corrects toward "realistic" ideas. Discomfort with impractical suggestions.
Fix: Strict phase separation. Generation is not evaluation. All ideas written down before ANY filtering. Impractical ideas may contain seeds of practical ones.
Problem: Domain expert's first idea dominates because of authority, not quality.
Symptom: First speaker's idea becomes the reference point. All subsequent ideas are variants or reactions. Deference to experience.
Fix: Anonymous idea generation first. Or: expert speaks last. Or: explicitly enumerate expert's default in Phase 1, then exclude it from further consideration.
Problem: Divergence for its own sake. Pursuing weird ideas that don't serve the actual function.
Symptom: Ideas are surprising but useless. Clever without being functional. "That's creative but doesn't solve the problem."
Fix: Return to Phase 2 (Function Extraction). Does the weird idea actually accomplish the required function? If not, it's not divergent—it's irrelevant. Orthogonality must serve function.
Problem: Brainstorming from scratch when prior art exists. Reinventing existing solutions.
Symptom: "I wonder if anyone has tried..." (they have). Ideas are novel to the group but exist elsewhere.
Fix: Research before ideation. Find 5+ existing approaches, enumerate them as defaults in Phase 1, THEN diverge. Standing on shoulders, not reinventing wheels.
Generates random constraints to force divergent exploration.
# Generate random constraints
deno run --allow-read constraint-entropy.ts --count 3
# Get domain-import prompts
deno run --allow-read constraint-entropy.ts domains --count 5
# Generate constraint combo (one from each category)
deno run --allow-read constraint-entropy.ts --combo
# Specific categories
deno run --allow-read constraint-entropy.ts actors
deno run --allow-read constraint-entropy.ts resources
deno run --allow-read constraint-entropy.ts inversions
deno run --allow-read constraint-entropy.ts combinations
# JSON output
deno run --allow-read constraint-entropy.ts --combo --json
Categories:
actors - Who constraints ("A 10-year-old must use it", "Someone hostile to it")resources - Resource constraints ("1/10th budget", "Can't use obvious technology")combinations - Forced combinations ("Must also solve X", "Must NOT do expected thing")inversions - Perspective flips ("What if failure is the goal?", "What if the constraint is the feature?")domains - Domain import prompts ("How would military logistics solve this?")Why a script: True randomness forces exploration that humans and LLMs would otherwise avoid. Curated constraints that actually produce useful divergence.
User: "We need ideas for improving team communication. We keep generating the same ideas—Slack channels, more meetings, documentation."
Diagnostic approach:
Identify state: B1 (Convergence Blindness) + B4 (Domain Imprisonment). Ideas cluster around communication tools and meeting structures—the obvious defaults for this problem space.
Phase 1 - Default Enumeration: Let's name the defaults explicitly:
These are the genre defaults. Valid but predictable.
Phase 2 - Function Extraction: What must team communication accomplish?
Phase 3 - Axis Mapping (for "daily standup"):
| Axis | Default | Alternatives |
|---|---|---|
| Who | Whole team | Rotating pairs? Cross-team? Include customers? |
| When | Daily morning | Weekly? On-demand trigger? After blockers? |
| Scale | 15 minutes | 2-minute hard limit? 2-hour deep dive monthly? |
| Method | Verbal sync | Async text? Video recordings? Walk-and-talk? |
Phase 4 - Entropy Injection: Running constraint-entropy.ts --combo:
This forces: What if people who hate meetings still get the information? What if we designed for LESS communication that's more effective?
Divergent ideas generated:
These ideas are orthogonal—different axes, not variations of "meeting tools."
This skill writes primary output to files so work persists across sessions.
Before doing any other work:
context/output-config.md in the projectexplorations/brainstorming/ or a sensible location for this projectcontext/output-config.md if context network exists.brainstorming-output.md at project root otherwiseFor this skill, persist:
| Goes to File | Stays in Conversation |
|---|---|
| Enumerated defaults | Discussion of which defaults feel sticky |
| Axis map with rotations | Iteration on constraint choices |
| Generated divergent ideas | Real-time feedback on ideas |
| Orthogonality assessments | Clarifying questions |
| Promising combinations | Discarded options |
Pattern: {topic}-{date}.md Example: product-naming-2025-01-15.md
Weekly Installs
116
Repository
GitHub Stars
37
First Seen
Jan 20, 2026
Security Audits
Gen Agent Trust HubPassSocketPassSnykPass
Installed on
opencode99
codex91
gemini-cli90
github-copilot85
cursor82
claude-code80
| Could this seed solve a completely different problem? What was built for something else that could work here? |
| Platforms | Stable primitives let people build faster and safer. | What stable thing could this build on? What would make this a platform for other ideas? |