Osborn logo

Osborn

Community
fainshare
osborn

发散思维(太虚一转·散怀):想法量、SCAMPER、Stakeholder轮转。触发词: 发散, 开脑洞, 奥斯本. Divergent thinking (太虚一转·散怀): volume of ideas, SCAMPER, stakeholder rotation → idea-pool.md. Use when user says "发散", "开脑洞", "奥斯本", "osborn". 即便用户未明确说"用 osborn",当对话出现以下信号时也应主动建议使用:方案只有一条路想扩空间、 团队讨论在同一批想法里打转、方向定了但觉得可能有更好的选择、用户说"还有别的思路吗""帮我想想还有什么可能"。 不要等用户说出触发词才启动——识别意图比匹配关键词更重要。

Overview

Publisherfainshare
RepositoryLiam-Skills
Skill nameosborn
Stars
113
Forks
19
Bundled files
8
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.

  • 8 bundled files

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

  • Open source

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

Installation

Install the Osborn 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.
    https://github.com/fainshare/Liam-Skills/tree/main/skills/osborn
  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/fainshare/Liam-Skills.git /tmp/Liam-Skills
mkdir -p .claude/skills
cp -r /tmp/Liam-Skills/skills/osborn .claude/skills/osborn
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Osborn 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 Osborn 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 Osborn 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.

Osborn 奥斯本发散

"It is easier to tone down a wild idea than to think up a new one." — Alex Osborn

概述

方案只想到一条路?方向定了但觉得可能有更好的选择?脑子里的东西倒不出来?团队讨论总是在同一批想法里打转?

先铺量,后筛选。围绕主题做大量发散,不评判、不筛选,把可能性空间彻底铺开。四条核心手法:量级驱动,想法够多好方向才会浮现;延迟判断,"不切实际"的先留着;SCAMPER 七算子补盲,替、合、调、改、用、消、重,逐一扫描思维盲区;利益相关方视角轮换,从用户、对手、新人、老板不同位置看同一件事。产出 idea-pool.md,结构化整理所有想法,直接喂给黑格尔(澄源)做收敛。

太虚五转第一转:散怀(发散)。先把空间打开,后面逐步收紧。

这个 skill 做什么

主题摆在你面前,第一个冒出来的想法往往就把后面的可能性挤掉了,这叫收敛过早。这个 skill 的工作是强行把空间先铺开:不评判、不筛选、不排序,先把数量堆出来,再用 SCAMPER 和视角轮换把盲区补齐。

奥斯本的原话是:把一个野想法调温和,比凭空想出一个新想法容易。这个 skill 信这条。

核心机制:把问题空间想象成一张地图,维度轴是坐标轴(如"输入源/处理管线/输出形态"),覆盖率是探索进度。暂停点展示哪些维度已饱和(🔴)、哪些还空白(🟢),驱动"继续发散还是进入下一阶段"的决策。

四个 skill 的分工:osborn(🟢发散)→ hegel(🔵收敛)→ bayes(⚪验证)→ feynman(⚫审查)→ debono(🟡回溯)。详见 references/comparisons.md。

P0-clarify — 模糊主题的渐进澄清

当用户输入过于模糊,无法直接进入发散时,先做 P0-clarify 渐进式对话澄清主题。主题清晰时跳过此阶段,直接进入 P0.1。

清晰度测试:能否用一句话说清发散主题 + 识别至少 3 个问题空间维度轴(P0.2 建议 5-7 个,3 个为最低门槛)?能则跳过,不能则进入 P0-clarify。

P0-clarify 采用渐进式 Q&A(一次一问),逐步澄清:主题→动机→用户→边界→就绪度。交互规则详见 references/elicitation-rules.md。非软件话题加载 references/non-software-facilitation.md。

澄清完成后综合为一句话主题,用户确认,进入 P0.1。若 2-3 轮后仍无法明确主题,建议用 hegel --spec-only 做结构化需求规格化。

六项核心能力

延迟判断(P1/P2)、量级驱动(P1)、SCAMPER补盲(P2a)、想法组合(P1)、疯狂想法保护、发散-收敛双阶段(收敛交给 hegel)。

执行流程:P0-clarify → P0 → P1 → P2(a+b) → P3

P0-clarify → P0 明确主题 → P1 自由发散 → P2a SCAMPER 补盲 → P2b 视角轮换 → P3 想法池整理
   │              │              │              │                  │              │
 渐进式Q&A     类型判定        量级驱动        七算子扫描          四类视角        idea-pool.md
 (仅模糊时)    第一性分解      延迟判断                                            标记来源
               边界/维度      组合衍生

P0 — 明确发散主题

确认五件事再开始发散:

  1. 发散主题:要扩展什么?(一句话能说清)
  2. 问题类型判定:三信号渐进式分类(见 P0.1)
  3. 第一性分解:将主题分解到不可再分的基础要素(见 P0.2)
  4. 边界:发散范围、约束条件(哪些维度要扩,哪些不在范围内)
  5. 问题空间维度轴:定义 5-7 个评估维度(由 AI 提议,用户确认)

如果用户没明确主题,主动追问——主题不清做不出有用的发散。不要硬扩。

P0.1 — 问题类型判定(三信号渐进式分类)

problem_type 判定遵循三信号优先级(高→低):

优先级信号来源置信度说明
1--type 显式声明1.0用户通过参数指定,直接采用
2AI 内容分析>阈值则采用分析主题文本,可读取 --lens 作为输入特征辅助判断
3pending—AI 无法判定时标注 pending,走完整五转流程

分类枚举:deterministic / non_deterministic / mixed / pending

判定标准:

  • deterministic:问题有唯一正确答案,可通过逻辑推导验证(如"这段代码是否有 bug")
  • non_deterministic:问题涉及人的行为、市场或未来预测,没有唯一正确答案(如"该不该买这个标的")
  • mixed:部分子问题确定、部分不确定(如"这个架构方案是否可行"——技术可行性确定,业务采纳不确定)
  • pending:信息不足以判定,各下游 Skill 按默认行为执行

--lens 的定位:--lens 参数(如 ideation / code / investment)是 AI 分析的上下文输入特征,不作为独立的类型信号。例如 --lens investment 倾向于 non_deterministic,但不强制——AI 仍需分析具体主题。

Future Enhancement:当 pipeline 使用数据 ≥50 次且 --lens → type 映射准确率 >75% 时,可将 lens 推断升级为独立信号(Signal 2),并同步复活冲突检测机制。

判定结果写入 idea-pool.md frontmatter 的 problem_type 字段。

P0.2 — 第一性分解

在发散之前,将主题分解到不可再分的基础要素。发散不是凭空想象,而是从基本要素出发重新组合。

分解三步:

  1. 识别基本实体:主题涉及哪些不可再分的核心概念?

    • 如"如何优化投资决策"→ 标的、信号、仓位、时间、风险
    • 如"这段代码是否有 bug"→ 输入、处理逻辑、输出、边界条件
  2. 列出公理假设:哪些前提被当作"显然成立"而未被质疑?

    • 如"分散降低风险"——在什么条件下?相关性突变时还成立吗?
    • 如"这个函数是纯函数"——有副作用吗?有隐式依赖吗?
  3. 标注未知项:哪些基本要素的状态不确定?

    • 如"市场情绪"→ 不可直接观测但影响价格
    • 如"并发条件下的竞态"→ 需要实验验证而非推理

与发散的关系:第一性分解是收敛操作(向下钻到基础),发散是扩展操作(从基础向上组合)。先收敛到底,再发散出去——P1 中的新想法不是凭空冒出来的,是基本要素的新组合。AI 在 P1 中应主动从基本要素的重新排列出发生成新想法。

与 problem_type 的关系:

  • deterministic:基本实体和公理假设清晰,未知项少,分解重点是验证公理是否成立
  • non_deterministic:未知项多,分解重点是识别哪些不可观测、哪些不可预测
  • mixed:部分子问题清晰、部分不确定,分解时分别标注

分解结果不写入 idea-pool.md 正文,作为 P1 发散的上下文锚点。

维度轴适用性检查:维度轴假设问题空间可以分解为独立维度。不适用于高度耦合主题(如"如何提升团队士气"——薪酬/认可/成长/工作生活平衡高度交织)。如果主题维度高度耦合,跳过维度轴,直接用 P1 自由发散 + P2a SCAMPER 补盲。

维度轴定义:

AI 根据主题提议 5-7 个维度(如"输入源/处理管线/输出形态/交互方式/存储策略"),用户确认或调整。同时根据主题特性判定 problem_type(deterministic / non_deterministic / mixed / pending),写入 idea-pool.md frontmatter:

--focus-dimensions 参数(UltraPlan 并行模式):当 pipeline 启用 --parallel 时,通过 --focus-dimensions dim1,dim2 限制本实例只在指定维度发散。未指定时(默认),在所有维度发散。启用时:

  • P1 自由发散仅围绕指定维度
  • P2a SCAMPER 仅扫描指定维度的替代/组合/改造等
  • P2b 视角轮换仅从指定维度的利益相关方视角
  • P3 产出标记 [parallel-focus: dim1,dim2]
  • 覆盖率暂停点仅展示指定维度的饱和度
yaml
---
topic: "{主题}"
problem_type: "deterministic | non_deterministic | mixed | pending"
total_ideas: {N}
dimensions:
  - 维度1
  - 维度2
  - 维度3
  - ...
---

数据质量校验:产出 idea-pool 后,校验 frontmatter total_ideas 与实际编号想法数一致。不一致时以实际编号数为准更新 frontmatter。

维度轴本身是发散的一部分——如果用户觉得 AI 提议的维度不合理,可以调整。中途发现某维度始终空白(连续 2 次暂停该维度 0%)或全部想法堆在一个维度(该维度 >80% 且其余维度均 <20%)时,允许重新定义维度轴。调整时已分类想法按新维度重新归类,覆盖率按新轴重算。

P1 — 自由发散

核心原则:

  • 量级驱动:先追求数量,质量从数量里浮现。低于 25 个想法不算"扩开了"。P1+P2 合计目标 ≥50 个想法
  • 延迟判断(R2 在 AI 场景的定义):P1/P2 阶段不做任何价值筛选、可行性判断、优先级排序、"这个不太现实"的过滤
  • 疯狂想法保护:明显"不切实际"的想法照样保留——后续收敛阶段会处理
  • 想法组合(Hitchhiking):AI 主动在已有想法基础上衍生新想法,例如 "想法 #3 + 想法 #7 → 新想法 #N"

关键协议(R4 切换入口):

每产出约 8-10 个想法后,主动暂停并展示问题空间覆盖率图:

饱和度 = 该维度想法数 ÷ 目标值(默认 12)。维度状态直接映射边际价值判断——继续往这个维度投入还有没有产出空间:

维度名想法数饱和度边际价值判断
输入源1083%🔴 饱和——继续投入产出递减
处理管线542%⚪ 中等——有空间但非首要
输出形态217%🟢 空白——优先深挖
............

阈值:🔴 ≥80%(饱和,停止扩展)| ⚪ 40-79%(中等)| 🟢 ≤40%(空白,建议定向发散)

方法论改进:旧的「边际贡献分类」(🟦新方向/🟩深化/🟨组合变异/🟥过度工程)描述的是想法间的拓扑关系,无法回答「继续发散有没有价值」。覆盖率图把问题空间当成地图,维度轴是坐标轴,饱和度是探索进度——直接告诉你哪里还有空白,驱动「继续还是进入下一阶段」的决策。

展示覆盖率图后,给出下一步选项(定向发散空白维度/继续自由发散/进入 P2a)。完整示例见 references/coverage-map-example.md。

决策规则(按优先级排序,首条匹配即生效):

条件建议
所有维度 ≥ 60% 且总数 ≥ 18(待校准)建议进入下一阶段
存在 ≤ 40% 维度建议定向发散该维度
存在 > 80% 维度标记饱和,提示不要再往这里扩
所有维度在 41%-59%继续自由发散,或切换到 SCAMPER 补盲

⚠️ 魔法数字待校准:5-7 个维度、目标 8 个/维度、阈值 40%/60%/80%、总数 ≥ 18 均为初始估计值,需通过 3-5 次实战使用后校准。如果发现某个阈值频繁误判,记录到 BACKLOG。

不要默默继续。让用户基于数据控制节奏。

想法不足处理:P1 结束时如果不足 15 个,显式告知:

当前共 N 个想法,建议继续自由发散或切换到 SCAMPER 补盲来打开更多空间。

不要假装数量够了。

P2a — SCAMPER 补盲

SCAMPER 是补盲工具不是主框架。P1 已经铺开后,用七个算子作为 structured checklist 扫一遍,补 P1 漏掉的视角:

算子含义触发提问
S Substitute替代哪个组件/角色/材料/流程可以被替换?
C Combine组合哪两个想法/功能/资源合并会产生新可能?
A Adapt改造别的领域有没有类似的解法可以借过来?
M Modify/Magnify/Minimize修改/放大/缩小把某个属性放大 10 倍或缩到极小会怎样?
P Put to other use它用现有的东西换个场景使用会怎样?
E Eliminate去除砍掉某个步骤/组件/约束会怎样?
R Reverse/Rearrange反转/重排倒过来做会怎样?顺序换一下会怎样?

逐条扫描,每个算子至少产出 1-2 个新想法。仍然延迟判断。

🔴 P2a → P2b 切换入口:SCAMPER 扫描完毕后,展示覆盖率全景表:

维度名P1想法数P2a想法数累计饱和度边际价值判断
输入源10212100%🔴 饱和
处理管线53867%⚪ 中等
输出形态24650%⚪ 中等
..................

SCAMPER 算子覆盖:S✓ C✓ A✓ M✓ P✓ E✓ R✓(7/7)

展示全景表后,给出下一步选项(进入 P2b/直接 P3/回 P1 补盲)。

P2a 分阶段解读:如果某维度 P1 已饱和但 P2a 零贡献,说明 SCAMPER 未能打开该维度的新视角,可跳过该维度的后续补盲。

P2b — 利益相关方视角轮换

切到不同视角再扫一遍,补 P2a 之后剩下的盲区:

视角关注点
👤 用户/终端使用者真正在用的人在乎什么?日常痛点是什么?
🛠 技术/实现者做出来的人怎么看?实现路径上有什么变体?
⚔ 竞争者/对手对手会怎么打这个主题?他们的解法是什么?
🌪 极端/边缘用户5% 边缘场景的需求是什么?极端条件下怎么用?

每个视角至少 2-3 个想法。仍然延迟判断。

🔴 P2b → P3 确认入口:

视角轮换完毕后,主动确认:

发散阶段完成。共 N 个想法(P1: n1, P2a: n2, P2b: n3)。确认整理为 idea-pool.md?

选项:(1) 确认整理 (2) 回到某个阶段继续发散

P3 — 想法池整理

把 P1 + P2a + P2b 全部想法汇总,标记来源,写入 idea-pool.md(含 YAML frontmatter: topic / problem_type / total_ideas / dimensions)。每条想法标记来源 [P1] / [P2a-S] / [P2b-用户] 等。不评分、不排序。详见 references/idea-pool-format.md。

不做的事

三模式/SubAgent/交接协议/评分筛选/PRD内嵌方案(这些是 hegel/liam-prd-writer 的职责)。需求规格化由 hegel --spec-only 承担。不含脚本。

边界条件与 Fallback

场景触发条件处理动作
用户中途退出任意阶段用户说"够了"/"停"/"就这样"直接进 P3,整理当前已有想法为 idea-pool.md
用户跳过 P2用户说"不需要 SCAMPER"/"不用视角轮换"允许 P1→P3 直连,idea-pool.md 中仅含 P1 段落
主题无法发散P0-clarify 追问 2-3 轮后主题仍模糊建议用 hegel --spec-only 做结构化需求规格化
想法数量远不足P1 结束或 idea-pool 封盘前,总数低于 problem_type 对应下限:deterministic 15 / mixed 30 / non_deterministic 50(口径锚定回归语料库 evals/regression-corpus-phase1/2.json 的 expected_outputs.min_ideas;语料库改档须同步本表)门禁:低于下限必须二选一——①续跑发散(回 P1/P2 补足);②显式降级声明:idea-pool frontmatter 记 idea_count_floor: {expected: N, actual: M, downgraded: true, reason: "..."}。禁止静默封盘
维度轴失效连续 2 次暂停某维度 0%,或单维度 >80% 且其余均 <20%提议重新定义维度轴,用户确认后按新轴重算覆盖率

与下游 skill 的衔接

osborn (idea-pool.md + dimensions) → hegel --target idea-pool.md --lens ideation → bayes → feynman → debono。hegel 读取 dimensions 字段做维度级收敛分析。P0-clarify 阶段吸收的模糊需求不传递给下游,只有澄清后的主题进入发散。

能力来源(V2.4):P3 阶段吸收已废弃 ce-brainstorm 的 anti-genericness test——整理 idea-pool 时检查是否存在至少 3 个非显而易见的想法(即不是行业常识或第一反应的变体)。若全部想法均为常规思路,在 idea-pool.md frontmatter 中标注 genericness_warning: true,提醒 hegel 在收敛时关注创新性不足的风险。此检查不违反延迟判断原则——不筛选不排序,仅做整体质量信号标注。

反模式(不要这样做)

提前收敛(P1<15 个就停)、偷偷筛选、视角偏斜(P2b 未跑满四视角)、跳过 SCAMPER、不询问就继续发散、在 P3 做评分、P0-clarify 超过 5 轮还不综合、一次问多个问题、对清晰主题强做澄清。


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 Osborn AI skill do?

发散思维(太虚一转·散怀):想法量、SCAMPER、Stakeholder轮转。触发词: 发散, 开脑洞, 奥斯本. Divergent thinking (太虚一转·散怀): volume of ideas, SCAMPER, stakeholder rotation → idea-pool.md. Use when user says "发散", "开脑洞", "奥斯本", "osborn". 即便用户未明确说"用 osborn",当对话出现以下信号时也应主动建议使用:方案只有一条路想扩空间、 团队讨论在同一批想法里打转、方向定了但觉得可能有更好的选择、用户说"还有别的思路吗""帮我想想还有什么可能"。 不要等用户说出触发词才启动——识别意图比匹配关键词更重要。

Why use Osborn on TypingMind?

Because you install it once and use it with any model. Osborn 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 Osborn in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/fainshare/Liam-Skills/tree/main/skills/osborn. 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 Osborn?

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 Osborn?

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

Is the Osborn AI skill free?

It is published on GitHub by fainshare. Check the repository for licensing terms. 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 👇