Install
openclaw skills install laosi-brainstorm结构化头脑风暴 - 4视角拆解问题:约束/方案/边界/优先级,自动归档到知识库
openclaw skills install laosi-brainstorm激活词: 头脑风暴 / brainstorm / 想一下
人的思维天然有偏见:确认偏误、锚定效应、可用性启发。固定4视角拆解能强迫大脑跳出惯性轨道。
import json
from datetime import datetime
from dataclasses import dataclass, field, asdict
from typing import List, Optional
@dataclass
class BrainstormSession:
topic: str
constraints: List[str] = field(default_factory=list)
alternatives: List[str] = field(default_factory=list)
edge_cases: List[str] = field(default_factory=list)
priorities: List[str] = field(default_factory=list)
created: str = ""
def __post_init__(self):
if not self.created:
self.created = datetime.now().isoformat()
def add_constraint(self, item: str):
self.constraints.append(item)
def add_alternative(self, item: str):
self.alternatives.append(item)
def add_edge_case(self, item: str):
self.edge_cases.append(item)
def add_priority(self, item: str):
self.priorities.append(item)
def summarize(self) -> dict:
return {
"topic": self.topic,
"counts": {
"constraints": len(self.constraints),
"alternatives": len(self.alternatives),
"edge_cases": len(self.edge_cases),
"priorities": len(self.priorities),
},
"total_ideas": sum(len(v) for v in [
self.constraints, self.alternatives,
self.edge_cases, self.priorities
]),
"created": self.created
}
def to_markdown(self) -> str:
lines = [f"# 头脑风暴: {self.topic}\n"]
lines.append("## 🚧 约束条件")
for c in self.constraints:
lines.append(f"- {c}")
lines.append("\n## 💡 备选方案")
for a in self.alternatives:
lines.append(f"- {a}")
lines.append("\n## ⚡ 边界情况")
for e in self.edge_cases:
lines.append(f"- {e}")
lines.append("\n## 🎯 优先级")
for p in self.priorities:
lines.append(f"- {p}")
return "\n".join(lines)
# 使用示例
s = BrainstormSession(topic="为个人博客添加AI搜索功能")
s.add_constraint("不能增加服务器成本")
s.add_constraint("搜索延迟必须<2秒")
s.add_constraint("必须支持中文分词")
s.add_alternative("使用Meilisearch自托管全文搜索")
s.add_alternative("调用OpenAI Embedding API + 向量数据库(Pinecone)")
s.add_alternative("纯前端TF-IDF + 倒排索引")
s.add_alternative("使用Cloudflare Workers + Workers AI")
s.add_edge_case("博客内容为空时搜索返回什么")
s.add_edge_case("用户输入特殊字符/正则注入")
s.add_edge_case("并发大量搜索请求时")
s.add_edge_case("索引更新延迟导致搜到旧内容")
s.add_priority("MVP: 纯前端TF-IDF搜索现有文章")
s.add_priority("Phase 2: 接入LLM做语义搜索")
s.add_priority("Phase 3: 中文纠错提示")
print(s.to_markdown())
print(f"\n总计 {s.summarize()['total_ideas']} 个想法")
┌─────────────┐ ┌─────────────┐
│ 约束条件 │ │ 备选方案 │
│ 不可逾越 │ │ 跳出惯性 │
├─────────────┤ ├─────────────┤
│ - 硬限制 │ │ - 3+方案 │
│ - 不能做的 │ │ - 反直觉的 │
└─────────────┘ └─────────────┘
↑ ↑
输入 发散
──────────────────→
←──────────────────
收敛 选择
↓ ↓
┌─────────────┐ ┌─────────────┐
│ 边界情况 │ │ 优先级 │
│ 测试极限 │ │ MVP排序 │
├─────────────┤ ├─────────────┤
│ - 极端值 │ │ - 先做什么 │
│ - 静默失败 │ │ - 依赖关系 │
└─────────────┘ └─────────────┘
python -c "
from brainstorm import BrainstormSession
s = BrainstormSession('test')
s.add_constraint('time limit: 2hrs')
s.add_alternative('approach A')
print(s.to_markdown())
"