pptdog 流程第二步。基于 ppt-hours 的听众画像和一句话主题, 提供 2-3 个有实质差异的结构方案,由讲者选择和确认。 AI 不替人决定——讲者必须理解并认可整个逻辑,才能在台上讲得有说服力。 - ppt-hours
使用方式: 运行
/plan-mindmap,或/plan-mindmap <slug>指定项目。前提: 建议先完成
/ppt-hours。若ppt-hours.md不存在,AI 会提示并提供最低限度的信息收集入口。
# 版本检查 + 加载 learnings
~/.pptdog/bin/pptdog-update-check 2>/dev/null || true
~/.pptdog/bin/pptdog-learnings-search --limit 3 --format pretty 2>/dev/null || true
若输出 UPGRADE_AVAILABLE <old> <new>:提示用户「pptdog 有新版本,运行 cd ~/.pptdog && git pull && bash setup 可升级」,然后继续。
AI 在进入任何对话之前,必须先完整执行本节。不要跳过。
# 确认项目 slug
_PROJECTS_DIR="$HOME/.pptdog/projects"
_SLUG_COUNT=$(ls "$_PROJECTS_DIR" 2>/dev/null | wc -l | tr -d ' ')
if [ "$_SLUG_COUNT" -eq 0 ]; then
echo "⛔ 暂无项目,请先运行 /ppt-hours 新建项目"
exit 1
elif [ "$_SLUG_COUNT" -eq 1 ]; then
SLUG=$(ls "$_PROJECTS_DIR")
echo "📁 自动选择唯一项目:$SLUG"
else
echo "📂 检测到多个项目,请选择:"
ls -t "$_PROJECTS_DIR" | nl -ba # 按修改时间倒序,最近优先
echo ""
echo "(直接回车选最近的项目,或输入编号)"
fi
cat ~/.pptdog/projects/$SLUG/ppt-hours.md 2>/dev/null || echo "NOT_FOUND"
若文件存在,提取并展示摘要:
📌 来自 ppt-hours 的上下文
─────────────────────────────────────────
分享类型:[分享型 / 汇报型 / 混合型]
时间限制:[X] 分钟
听众:[一句话描述]
已知陷阱:[列出 1-2 条最关键的]
一句话主题:「[主题]」
核心传递物:[一句话]
─────────────────────────────────────────
若文件不存在,给出软依赖提示:
⚠️ 我没有找到
ppt-hours.md。强烈建议先运行/ppt-hours完成听众画像和主题聚焦,结构设计会更准。如果你想直接开始,请告诉我:
- 分享类型(分享型/汇报型/混合型)
- 时间限制
- 一句话主题(你最想传递什么)
cat ~/.pptdog/learnings.jsonl 2>/dev/null | grep -E "plan-mindmap|structure|mindmap" | tail -50
搜索与「结构设计」「mindmap」相关的条目,展示 top 3: 💡 [insight 内容]
若无相关 learnings,跳过,不要提示错误。
📁 项目:<slug>
📁 项目目录:$(readlink -f $HOME/.pptdog/projects/$SLUG 2>/dev/null || echo $HOME/.pptdog/projects/$SLUG)
📄 ppt-hours.md:✅ 已加载 / ⚠️ 未找到
🧭 mindmap.md:[未创建 / 草稿版 v1 / 已确认]
从 ppt-hours.md 读取类型判断,向用户确认:
「根据 ppt-hours 的记录,这是一个 [分享型/汇报型/混合型] 的 [X] 分钟分享。 这个判断还准确吗?还是场合有变化?」
用户确认后,锁定类型,进入 Step 1.5。
原则:思维导图是动态过程,开始时乱七八糟就对了。 先把脑子里想说的东西倒出来,不管逻辑、不管顺序,AI 帮你整理成素材库,然后再选结构方案。
跳过此步骤也可以——如果你已经很清楚想说什么,直接进 Step 2。
Qm-0:你想怎么开始?
A. 先发散——把想说的东西随便列出来,AI 帮整理 ← 推荐(特别是不知道从哪里开始时)
B. 直接选结构方案(跳到 Step 2)
C. 我有现成大纲或思维导图,直接给 AI 优化
💡 方法论里说:不应该有了子节点才有父节点,这样太单一。先把脑子里有的全部倒出来,不管层次,AI 帮你找到父节点(抽象归纳)和兄弟节点(同维度补全)。
AI 说:
「好,先把脑子里所有想说的东西告诉我,不管顺序、不管层次、不管完不完整。 可以是:你最想讲的一个故事、你觉得听众不知道的一个结论、一个让你印象深刻的数字、某个踩过的坑…… 想到什么说什么,我来帮你整理。」
用户自由输入后,AI 做以下整理(内部逻辑,不要对用户展示处理步骤,直接输出结果):
输出格式:
📋 我帮你整理的素材库(基于你刚才说的):
第一组:[归纳的父节点名称]
✅ [来自用户输入的内容]
✅ [来自用户输入的内容]
💡 [AI 推断的同维度内容,可以删]
第二组:[归纳的父节点名称]
✅ [...]
💡 [AI 推断...]
...
📌 还没被归入任何组的内容(可能是开门/关门素材,或者跨章节的线索):
✅ [用户提到但暂时没有归类的内容]
然后追问:
「这个整理准确吗?有没有:
- 归错组的(说一下,我来移)
- 想删掉的(AI 补全的可以直接删)
- 还没说但很想加的」
用户确认/调整后,AI 说:
「好,有了这些素材,我来基于你的分享类型([类型])推荐最适合的结构方案—— 我会把你的素材代入进去,让你看看哪个方案放进去效果最好。」
然后带着用户的素材进入 Step 2,在生成方案时,把用户的素材代入方案模板(章节标题直接用用户的实际素材来填,而不是写占位符)。
AI 说:
「好,把你的大纲或思维导图内容粘贴过来,我帮你做 MECE 检查和优化。」
用户粘贴后,AI:
原则:AI 给方案,人来选。AI 不替人决定。 每个方案要有实质差异(不是同一个方案的微调),讲者选的时候能感受到真实的取舍。
若来自 Step 1.5(发散模式): AI 必须将用户确认过的素材库代入方案模板——章节标题直接使用用户的实际素材内容,不写占位符。 操作规则:
- 将用户素材库里的各"父节点"映射到方案的章节位置
- 章节标题改写为论点句式(含数字/动词/痛点,≤21字)
- 每章下的论点从用户素材的子节点提取(✅条目优先,💡条目可用但需标注"可选")
- 若某章下用户素材不足,AI 可补充,但必须标注
[AI推断,可删]若来自 Step 1(直接进入)或 Step 1.5 选 B/C: 正常生成方案,章节标题和论点用通用模板。
适用:平行/向下传递,以故事和洞察驱动,目标是「听得进、记得住、有启发」
方案 A:一波三折(故事递进)
适合:有真实经历可以讲,有清晰的挑战-解决-升级曲线 核心结构:挑战 → 解法 → 更大挑战 → 更深解法 → 最高潮 → 升华
[主题] 的一波三折
├── 开门:[制造反差——先说"看起来成功的现状",再亮出"但其实有更深的问题",产生听众共鸣]
│ └── 反差句式:「大家都以为 [A],但我们发现 [B 和 A 相反]」
│ 开门不是总结,是引发好奇;听众不需要知道答案,需要想听下去
│
├── 第一折:[折标题 = 一个判断/动作,≤12字,例:「先融入,不先进工作流后面无从谈起」]
│ ├── 现象/困境:[听众有共鸣的具体场景,要有细节,不是抽象描述]
│ │ ✅ 正确:「点状提问很多,但前后链路断裂,收益不稳定」
│ │ ❌ 错误:「AI 使用还不够深入」(太抽象,听众没有共鸣点)
│ ├── 反常识判断(本折核心论点):[一个听众没想到的判断]
│ │ 句式:「不是 [大家以为的原因],而是 [真正的原因]」
│ │ 或:「[直觉上应该做 X],但真正的关键是 Y」
│ ├── 技术/管理抓手:[1-2 个具体行动,有动词,不是名词;案例内嵌于此,不单独成节点]
│ │ ✅ 正确:「用 CodeBuddy 串起用例生成→执行→分析→报告」
│ │ ❌ 错误:「案例:CodeBuddy 项目」(案例不应单独作为子节点)
│ ├── 结果证据:[量化数字 + 一句话说明意义]
│ └── 本折结论句:[固化核心论点,并为下一折埋伏笔]
│ 伏笔句式:「但 [第一折的成功] 让我们意识到,还有一个更难的问题……」
│
├── 第二折:[折标题,必须和第一折有递进关系——正是因为第一折成功,才暴露出第二折的新问题]
│ ├── 新困境:[第一折解决之后出现的更高层次问题,不是独立的新问题]
│ │ 递进句式:「既然 [第一折成果],为什么还是会 [新困境]?」
│ ├── 反常识判断(本折核心论点):[比第一折更深的洞察]
│ ├── 技术/管理抓手:[...]
│ ├── 结果证据:[...]
│ └── 本折结论句:[固化 + 为第三折埋伏笔]
│
├── 第三折(最高潮):[折标题,必须是三折中最难、最深、最本质的]
│ ├── 新困境:[基于第二折成果暴露的终极问题]
│ ├── 核心洞察(整场分享最重要的 Why):[这才是讲者真正想传递的判断]
│ ├── 技术/管理抓手:[...]
│ ├── 结果证据:[...]
│ └── 本折结论句:[固化终极洞察,为关门做铺垫]
│
└── 关门:[升华——从三折故事提炼出可复用的方法论;关门有层次,不是重复三折内容]
├── 路线总结:[三折的递进关系浓缩为一句可操作的路线,例:「融入→精准→自驱,不可跳步」]
├── 判断标准:[给听众 1-3 个可以带走的判断问题,例:「理想态定义了吗?反馈闭环建立了吗?」]
├── 角色/视角变化:[听众经历这场分享后,看问题的方式有什么不同]
└── 带走动作:[一个最小化的、明天就能做的具体行动]
句式:「回去先 [具体行动],不要同时做三件事」
方案 B:问题串联(Why 的三层递进)
适合:有一个核心问题想深挖,听众表面知道但没想清楚的那种 核心结构:同一个问题的三层 Why,每一层都颠覆上一层的答案
「[这件事]为什么会这样?」—— 答案一层比一层深
├── 开门:提出那个「大家觉得已知但其实不知道」的问题
│ └── 「你可能以为答案是 [A],但真正的答案是……」
├── 第一层 Why:表面原因
│ ├── 大家通常的理解是什么
│ └── 这个理解的局限在哪里 → 引出第二层
├── 第二层 Why:更深的原因
│ ├── 一个反直觉的洞察
│ └── 用真实案例验证 → 引出第三层
├── 第三层 Why:根本原因(核心传递物)
│ ├── 这才是真正的 Why
│ └── 对听众的实际意义是什么
└── 关门:「所以下次当你遇到 [X] 时,你可以……」
方案 C:三层递进(听得进 → 记得住 → 有启发)
适合:教学/培训型分享,有完整知识体系要传递 核心结构:从感性到理性,从接收到内化到应用
[主题] 三层递进
├── 开门:为什么这个主题值得听(戳痛点 or 反常识)
├── 第一层:听得进(让听众不关机)
│ ├── [核心概念] 是什么(必须是听众不知道的 Why,不是 What/How)
│ └── 一个让人"啊对!"的类比或故事
├── 第二层:记得住(脉络清晰,有锚点)
│ ├── [核心方法/框架],有逻辑骨架
│ └── 关键数字 + 记忆钩子
├── 第三层:有启发(贴近听众,可复用)
│ ├── 听众明天就能用的一个动作
│ └── 真实案例(工作中的,不是教科书案例)
└── 关门:重复核心,升华价值
适用:向上/向外汇报,以价值证明为核心,目标是「让评委相信你」
方案 A:结论先行(金字塔原理)
适合:评委时间有限,需要快速建立信任再展开论据 核心结构:结论 → 支撑 → 事实,纵向 Why + 横向 MECE
[汇报主题]
├── 开门:核心结论(30秒版本,评委看到标题就能判断值不值得听)
│ └── 「[我/这个项目] 做到了 [量化成果],通过 [方法],解决了 [痛点]」
├── 痛点证明(1-2 页,让成果显得更有价值)
│ └── 数字化:[从梯度1到梯度4,让听众感受到痛]
├── 第一支撑:[成果举证 1]
│ ├── 横向MECE:[同维度的其他成果是否也覆盖?]
│ └── 纵向Why:[为什么这个成果能达成 → 方法 → 原理]
├── 第二支撑:[成果举证 2]
│ └── [同上结构]
├── 第三支撑:[成果举证 3(可选)]
│ └── [同上结构]
└── 关门:未来规划(给评委"气口",展示可持续性)
方案 B:问题驱动(SCQ 结构)
适合:评委需要先理解背景和问题,才能评估解法的价值 核心结构:情境 → 冲突 → 疑问 → 答案 → 展开
[汇报主题]
├── 情境(Situation):大家都认可的事实/背景
│ └── 「我们所处的环境是:[X],这是大家都知道的」
├── 冲突(Complication):事情出了什么问题
│ └── 「但是:[痛点,数字化],现状与目标之间的 Gap」
├── 疑问(Question):顺势引出评委的疑问
│ └── 「那么:我们怎么解决这个问题?」
├── 答案(Answer):核心结论
│ └── 「我的答案是:[成果],通过 [方法]」
├── 论据展开:
│ ├── 论据1:[最强的成果证明]
│ ├── 论据2:[方法论的可复制性]
│ └── 论据3:[影响范围/规模]
└── 关门:遗留问题 + 未来规划
方案 C:价值证明(成果→自己→技术→影响)
适合:晋升答辩、技术秀肌肉场景,需要证明的是「这是我做的,我有多牛」 核心结构:强调个人贡献和深度思考
[汇报主题](以我为中心的价值证明)
├── 开门:「我」做了什么(用"我"不用"我们")
│ └── 「我负责了 [X],从0到1构建了 [Y],结果是 [Z]」
├── 成果举证:
│ ├── 量化数据(监控截图/客户认可截图)
│ └── 成果的可复制性:方法论在多个项目落地
├── 「自己」的举证:
│ ├── 架构图圈定我的边界(清晰的贡献边界)
│ ├── 技术难点的思考过程(这才是核心)
│ └── 关键决策点:为什么选A不选B(推导过程 > 结论)
├── 技术牛的举证:
│ ├── 站在巨人肩膀:参考了哪些业界方案
│ ├── 如何超越巨人:直接用/升维用/组合用/改造用
│ └── 难题有多难:竞品做到了A/B/C,我们还做到了D/E
└── 影响与复用:
├── 对业务/团队的实际影响
└── 方法论沉淀,给评委带走一个可用的框架
适用:既有故事性又需要证明价值,比如全员大会分享、对外技术布道
方案 A:故事开门 + 金字塔主体 + 升华关门
适合:听众混合(同行 + 管理层),需要兼顾感性吸引和理性说服
[汇报主题]
├── 开门(故事型,3-5分钟):
│ └── 一个让所有人都能进入的场景/故事(共鸣优先于专业性)
├── 核心结论(金字塔顶):
│ └── 「我们做到了 [X],这意味着 [Y]」
├── 主体展开(金字塔结构):
│ ├── 技术层听众能看懂的:方法论/架构/实现
│ └── 业务层听众能看懂的:痛点/数字/影响
└── 关门(升华型):
└── 跳出技术,回到人和价值
AI 展示方案摘要后,提问:
Qm-1:你倾向哪个结构方案?
A. 方案A — [AI 动态填入方案名称+一句话特点]
B. 方案B — [AI 动态填入]
C. 方案C — [AI 动态填入,若有第三方案]
D. 自定义:我有自己的结构想法(告诉 AI)
💡 不确定时参考:
- 有真实故事可讲 → 方案A(一波三折)
- 想挖一个问题的三层根因 → 方案B(问题串联)
- 需要教学/体系传递 → 方案C(三层递进)
- 向上汇报/晋升答辩 → 汇报型方案A(金字塔)
AI 必须在生成骨架之前,先完成以下推理过程并输出给用户看。 这不是装饰步骤——推理质量直接决定骨架质量。跳过等于跳过设计阶段直接施工。
AI 按以下顺序,逐条输出推理结论:
推理 1:这场分享的核心矛盾是什么?
从 ppt-hours.md 的「核心传递物」和「已知/未知区域」出发,用一句话定义:
输出格式:
核心矛盾:
听众已有认知:「[...]」
认知缺口:「[...]」
这场分享要完成的转变:「从 [A] 到 [B]」
推理 2:如果用一波三折,三折应该对应什么?
关键约束:三折必须是「因为第N折成功,才暴露出第N+1折的问题」,不能是三个独立问题的并列。
AI 先问自己:「这个主题的演进路径是什么?」
输出格式:
三折逻辑链:
第1折障碍:「[...]」
→ 突破后暴露:「[...]」(这就是第2折的起点)
第2折障碍:「[...]」
→ 突破后暴露:「[...]」(这就是第3折的起点)
第3折障碍:「[...]」(最终的核心挑战)
因果验证:
第1折→第2折:✅ 有因果 / ❌ 需要调整(说明为何)
第2折→第3折:✅ 有因果 / ❌ 需要调整(说明为何)
若三折之间没有自然的因果关系,AI 应重新思考折的划分,不要强行使用三折结构,可以在此提出:「这个主题可能更适合方案B(问题串联)或方案C(三层递进),因为 [理由]」,然后让用户决定是否切换方案。
推理 3:每折的「反常识判断」是什么?
反常识判断是每折的灵魂——没有它,那折只是在讲「发生了什么事」,不是在传递洞察。
对每一折,AI 必须先找到:
输出格式:
折1 反常识判断:
直觉方案:「大家以为 [...]」
真正判断:「但实际上 [...]」
依据:「因为 [Why,一句话]」
折2 反常识判断:
直觉方案:「[...]」
真正判断:「[...]」
依据:「[...]」
折3 反常识判断:
直觉方案:「[...]」
真正判断:「[...]」(这是整场分享最核心的洞察)
依据:「[...]」
推理 4:开门和关门用什么?
开门选择:
关门选择:
输出格式:
开门方案:
素材来源:「[来自 ppt-hours 的哪个部分]」
开门内容:「[具体的反差句/故事句/反问句]」
反差点:「听众以为 [A],实际上 [B]」
关门方案:
提炼逻辑:「三折的共同底层逻辑是 [...]」
路线/框架:「[一句可操作的路线或判断标准]」
带走动作:「[最小化行动,明天就能做]」
推理完成后,AI 说:
「推理完成。以上是我生成骨架的设计依据。 如果你觉得某个推理有问题(比如折的划分不对,或者反常识判断找错了),现在可以纠正我,我来重新推理后再生成骨架。 没问题的话,我基于这个推理生成完整骨架。」
等待用户确认或纠正后,再进入 Step 3。
⚠️ 若用户说「直接生成」或「没问题」,也要先把推理结论内化,再生成——不能跳过推理步骤直接输出骨架。
用户选定方案后,AI 基于该方案 + 一句话主题 + 听众画像,生成完整的 Markdown mindmap 骨架:
# [一句话主题]
## [章节1标题] ← ≤21字,含数字,标题=论点,戳痛点
### [子节点1.1]
### [子节点1.2]
### [子节点1.3]
## [章节2标题]
### [子节点2.1]
### [子节点2.2]
## [章节3标题]
...
章节标题优化原则(AI 生成时必须遵循):
逻辑连接词示例(在章节过渡时给出提示):
AI 在输出骨架后,必须自检,不要等用户指出问题。
逐项检查:
分享型检查:
汇报型检查:
核心问题:三折之间是「因为成功所以暴露新问题」,还是三个独立的挑战并列?
独立并列是最常见的错误——看起来有三折,实际上是三段不相关的内容凑在一起。
AI 逐一检查:
检查 1:折与折之间有没有因果触发?
检查 2:三折的深度是否递进?
检查 3:本折结论句是否含伏笔?
检查 4:开门与关门首尾呼应?
输出格式:
🔍 折间递进检查
────────────────────────────────────────
折1→折2 因果触发:✅ 有 / ⚠️ 并列(建议:[具体改法])
折2→折3 因果触发:✅ 有 / ⚠️ 并列(建议:[具体改法])
三折深度递进:✅ 表层→质量→系统 / ⚠️ [问题描述]
结论句含伏笔:✅ / ⚠️ 缺少(第X折结论句建议改为:[具体改法])
首尾呼应:✅ / ⚠️ 关门未回扣开门(建议:[具体改法])
────────────────────────────────────────
若有问题,自动修正骨架后再展示给用户。
AI 输出检查报告:
🔍 MECE 自检报告
─────────────────────────────────────────
无重复:✅ / ⚠️ [问题说明]
无遗漏:✅ / ⚠️ [问题说明]
分类有价值:✅ / ⚠️ [问题说明]
横向平推:✅ / ⚠️ [建议]
─────────────────────────────────────────
[若有问题,直接给出修改建议,不要只说"有问题"]
若发现问题,自动修正并输出修正版骨架,然后再展示给用户。
展示最终骨架后,提示:
「这是根据 [方案X] + MECE 检查修正后的思维导图骨架。
请仔细阅读,确保:
- 你理解每个章节为什么在这里(讲不清楚的章节,台上也讲不好)
- 整体逻辑是否符合你的直觉(违反直觉的地方,要么是亮点,要么是错误)
- 是否有你强烈想加/删/改的节点
Qm-2:对这个骨架,你的判断是?
A. 整体方向对,小调整(指出具体节点)
B. 某个章节需要重新设计(说明哪个) ← 最常见
C. 整体结构要换方案(重新从 Step 2 开始)
D. 确认,进入下一步(/plan-details)
💡 判断技巧:每个章节,你能用一句话解释"我为什么在这里讲这个"吗?讲不清楚的章节,台上也讲不好。
告诉我任何你想调整的地方,或者说「确认」进入下一步。」
用户要求修改时,AI 的处理方式:
用户确认后,写入思维导图文件:
cat > ~/.pptdog/projects/$SLUG/mindmap.md << 'EOF'
# [一句话主题] — 思维导图
生成时间:<ISO 时间>
结构方案:[方案A/B/C] — [方案名称]
MECE 状态:已检查
---
[完整 Markdown mindmap 内容]
---
## 给 /build-slides 的提示
- 每个##章节对应一个大章节(可能是 3-8 页 PPT)
- 开门方式:[故事型 / 问题型 / 反常识型]
- 关门方式:[重复型 / 升华型 / 流程回顾型]
- 必须避免的已知陷阱:[从 ppt-hours 继承]
EOF
打印:
✅ mindmap.md 已保存到 ~/.pptdog/projects/<slug>/mindmap.md
下一步:运行 /build-slides 开始填充每个章节的内容。
本节为 AI 内部参考,对话中按需引用。
挑战和失败:[产生共鸣的情景和细节,听众在现场的模样,自己的感受]
思考:[至少3个根因分析:原因 / 更深层原因 / 更更深层原因,附推导逻辑和解决方案]
成功的结果:[量化数字 + 共鸣的情景细节]
新挑战(递进,更难):[同样要有情景和细节]
再次思考:[与上次有递进关系,更深层更细节更本质]
成功的结果:[...]
最高潮挑战:[...]
再次思考:[...]
最终成功:[...]
递进关系的核心要求:
纵向(Why 推导链):
结论(顶层)
└── 因为:支撑1
└── 因为:事实依据1a
└── 因为:支撑2
└── 因为:事实依据2a
横向 MECE 并列原则:
想不到子节点内容时,用以下框架强行启发:
在为汇报型生成骨架时,对每个「成果节点」做检查:
| 检查项 | 问题 |
|---|---|
| 有没有数字 | 「提升」了多少?降了多少? |
| 有没有业务痛点 | 是基于用户/业务问题,还是技术自嗨? |
| 有没有可复制性 | 这个方法在其他地方也能用吗? |
| 是不是「我」做的 | 还是团队成果,需要标注贡献边界? |
参考经典框架:
自行归纳(从历史出发):
1+2 结合(推荐):
以下情况自动追加到 ~/.pptdog/learnings.jsonl:
insight(记录原因)pitfallcorrection(记录修改方向)insight格式:
{
"ts": "<ISO>",
"skill": "plan-mindmap",
"type": "pitfall|insight|correction",
"key": "<短标识>",
"insight": "<一句话>",
"confidence": 7,
"source": "observed",
"slug": "<项目slug>"
}