ui-ux-pro-max-skill 幻灯片文案公式体系详解:25 个说服公式库与 BM25 检索实现
本文以 ui-ux-pro-max-skill 仓库中 design 技能内置的幻灯片文案参考文档 references/slides-copywriting-formulas.md 为主体,完整讲解其中 5 个核心文案公式、25 公式到幻灯片类型的映射规则、标题句式模板,并深入仓库中的 slide-copy.csv 公式数据库与 search-slides.py 检索脚本,说明这些公式如何被结构化存储、通过 BM25 算法按关键词与情绪触发词检索,以及上下文模式(--context)如何把"文案公式"进一步扩展为"版式+字体+配色+动画"的整套推荐。读完后你可以直接在终端检索任意公式、理解其底层匹配原理,并在构建 HTML 演示文稿时有章可循地套用文案结构。
一、这份参考文档在项目中的位置
在 ui-ux-pro-max-skill 中,slides(HTML 演示文稿)能力由 design 技能统一路由。技能入口 SKILL.md 定义了"Slides Knowledge Base"知识表,将演示文稿创作拆为 5 份参考文档:
| Topic | File |
|---|---|
| Creation Guide | references/slides-create.md |
| Layout Patterns | references/slides-layout-patterns.md |
| HTML Template | references/slides-html-template.md |
| Copywriting | references/slides-copywriting-formulas.md |
| Strategies | references/slides-strategies.md |
工作流(见 slides.md 的 Workflow 一节)是:先解析演示类型 → 加载创作指南 → 选版式 → 套用本文档中的文案公式 → 使用 HTML 模板 → 应用策略。也就是说,本文讨论的文案公式文档处于"内容说服力"这一环:它决定每页幻灯片上的文字如何组织,与版式、模板、策略文档正交配合。
值得一提的是,slides 独立技能目录下还有一份同名的 copywriting-formulas.md,与 slides-copywriting-formulas.md 内容一致,分别服务于两个技能入口。
文档开篇声明"25 formulas for persuasive slide copy",但正文只详解 5 个核心公式。完整的 25 个公式存放在机器可读的数据文件 slide-copy.csv 中,本文会将两者对应起来完整呈现。
二、5 个核心公式(Core Formulas)
文档正文按"适用场景(Use)→ 组成结构(Components)→ 可填空模板(Template)"三段式详解了 5 个公式。以下完整继承原文,并结合数据文件中的记录补充情绪链与来源。
1. PAS(Problem-Agitate-Solution)
- 适用:问题页、痛点页(Problem slides, pain points)
- 结构:Problem → Agitate → Solution
- 模板:
"[Pain point]? Every [time frame], [consequence]. [Solution] fixes this."
在数据文件中,PAS 记录(slide-copy.csv 第 3 行)的更完整模板是 "You're struggling with {problem}. It's costing you {agitation}. {Solution} fixes this.",情绪链为 Frustration → Fear → Relief,标注来源为 Dan Kennedy,用途备注为"Sales pages problem slides, most reliable"——即被该库标记为最可靠的问题页公式。
2. AIDA(Attention-Interest-Desire-Action)
- 适用:CTA 页、结尾页
- 结构:Attention → Interest → Desire → Action
- 模板:
"[Bold statement]. [Benefit detail]. [Social proof]. [CTA]."
数据记录(slide-copy.csv)将其情绪链展开为 Curiosity → Engagement → Want → Urgency,模板形式化为 {Attention hook} → {Interesting detail} → {Desirable outcome} → {Action step},来源标注为 1898 年的经典文案方法论。
3. FAB(Features-Advantages-Benefits)
- 适用:功能页、产品能力展示页
- 结构:Feature → Advantage → Benefit
- 模板:
"[Feature] lets you [advantage], so you can [benefit]."
对应数据记录(slide-copy.csv)的模板为 "{Feature name}: {What it does} → {Why that matters} → {How it helps you}",情绪链 Curiosity → Understanding → Desire,来源标注为 "Sales training classic"。
4. Cost of Inaction(不作为的代价)
- 适用:激化矛盾页、制造紧迫感
- 结构:Status Quo → Loss → Time Decay
- 模板:
"Without [solution], you're losing [amount] every [timeframe]."
数据记录(slide-copy.csv)中该公式的结构字段是 "Current cost + Future cost + Comparison",模板为 "Every {timeframe} without {solution} costs you {quantified loss}. That's {larger number} per year."——注意它强调把损失放大到年度维度。情绪链为 Loss aversion → Urgency,理论来源是损失厌恶心理学(Loss aversion psychology)。
5. Before-After-Bridge(BAB)
- 适用:转变类页面、案例研究页
- 结构:Before → After → Bridge
- 模板:
"[Pain point before]. [Desired state after]. [Your solution] is the bridge."
数据记录(slide-copy.csv)的模板是 "Before: {old state}. After: {new state}. Bridge: {how to get there}",情绪链 Pain → Pleasure → Path,适用 "Transformation case studies"。
三、完整 25 公式速览表
文档标题声明的 25 个公式全部落在 slide-copy.csv(表头为 id, formula_name, keywords, components, use_case, example_template, emotion_trigger, slide_type, source)。除上述 5 个核心公式外,完整清单如下:
| # | 公式 | 结构(components) | 适用场景 | 情绪链 | 幻灯片类型 | 来源 |
|---|---|---|---|---|---|---|
| 1 | AIDA | Attention→Interest→Desire→Action | 线索型 CTA、通用说服 | Curiosity→Engagement→Want→Urgency | CTA slides | Classic copywriting 1898 |
| 2 | PAS | Problem→Agitate→Solution | 销售页问题页 | Frustration→Fear→Relief | Problem slides | Dan Kennedy |
| 3 | 4Ps | Promise→Picture→Proof→Push | 首页、获客页 | Hope→Vision→Trust→Action | Solution slides | Ray Edwards |
| 4 | Before-After-Bridge | Before→After→Bridge | 转变类案例 | Pain→Pleasure→Path | Before/after slides | Copywriting classic |
| 5 | QUEST | Qualify→Understand→Educate→Stimulate→Transition | 方案与受众匹配 | Recognition→Empathy→Learning→Excitement | Educational slides | Michel Fortin |
| 6 | Star-Story-Solution | Star→Story→Solution | 人格化品牌、信息产品 | Connection→Empathy→Hope | Case study slides | CopyHackers |
| 7 | Feature-Advantage-Benefit | Feature→Advantage→Benefit | 功能讲解 | Curiosity→Understanding→Desire | Feature slides | Sales training classic |
| 8 | What If | What if + Possibility | 开场钩子、愿景页 | Wonder→Possibility | Title/problem slides | Headline formula |
| 9 | How To | How to + Specific outcome | 可执行的教育内容 | Curiosity→Empowerment | Educational slides | Headline formula |
| 10 | Number List | Number + Topic + Promise | 可扫读的利益点清单 | Curiosity→Completeness | Feature summary slides | Content marketing |
| 11 | Question Hook | Question that implies answer | 开场互动页 | Recognition→Curiosity | Opening slides | Rhetorical technique |
| 12 | Proof Stack | Stat→Source→Implication | 建立可信度 | Trust→Validation | Traction proof slides | Social proof theory |
| 13 | Future Pacing | Imagine + Future state | 愿景与渴望页 | Aspiration→Desire | Solution/CTA slides | NLP technique |
| 14 | Social Proof | Who + Result + Quote | 借他人背书 | Trust→FOMO | Testimonial slides | Robert Cialdini |
| 15 | Scarcity Urgency | Limited + Deadline + Consequence | 驱动行动紧迫感 | Fear of loss→Action | CTA closing slides | Cialdini influence |
| 16 | Cost of Inaction | Current cost + Future cost + Comparison | 推动改变 | Loss aversion→Urgency | Problem agitation slides | Loss aversion psychology |
| 17 | Simple Benefit | You get + Specific benefit | 清晰传达价值 | Clarity→Desire | Any slide | Direct response |
| 18 | Objection Preempt | Objection + Response + Proof | 主动处理顾虑 | Doubt→Resolution | FAQ/objection slides | Sales training |
| 19 | Comparison Frame | Us vs Them + Specific difference | 竞争定位 | Evaluation→Preference | Comparison slides | Positioning strategy |
| 20 | Pain-Claim-Gain | Pain→Bold claim→Specific gain | 简洁的价值主张 | Frustration→Hope→Excitement | Problem/solution slides | Copywriting framework |
| 21 | One Thing | The one thing + Why it matters | 聚焦与清晰 | Focus→Clarity | Key message slides | Gary Keller concept |
| 22 | Riddle Open | Mystery + Reveal + Implication | 好奇心式互动 | Mystery→Insight | Opening slides | Storytelling technique |
| 23 | Hero Journey | Ordinary→Call→Challenge→Triumph | 整套叙事结构 | Identification→Tension→Triumph | Full deck structure | Joseph Campbell |
| 24 | Value Stack | Component + Value → Total value | 价格/投入合理化 | Value perception | Pricing offer slides | Info product marketing |
| 25 | Power Statement | Bold declaration + Supporting fact | 权威与信心 | Confidence→Trust | Key message slides | Thought leadership |
几个值得注意的结构化设计:keywords 列(如 AIDA 的 "aida, attention, interest, desire, action")是检索系统的分词来源;emotion_trigger 列(情绪链)既服务于检索时按情绪筛选,也被上下文模式的"情绪对比"逻辑消费;slide_type 列与文档中"Formula-to-Slide Mapping"表一一对应。
四、公式到幻灯片类型的映射
文档给出的主映射表如下,构建 deck 时可按"页类型 → 公式 → 情绪"逐页选料:
| Slide Type | Primary Formula | Emotion |
|---|---|---|
| Title/Hook | AIDA, Hook | curiosity |
| Problem | PAS, Agitate | frustration |
| Cost/Risk | Cost of Inaction | fear |
| Solution | FAB, BAB | hope |
| Features | FAB | confidence |
| Traction | Proof Stack | trust |
| Social Proof | Testimonial | trust |
| Pricing | Value Stack | confidence |
| CTA | AIDA, Urgency | urgency |
这 9 种页类型正好对应 slide-copy.csv 各行 slide_type 字段的典型取值。映射表中 "Hook"、"Urgency"、"Testimonial" 等名称对应 CSV 中的 Question Hook、Scarcity Urgency、Social Proof 等公式记录。
五、标题句式库(Headline Patterns)
文档提供了三类可直接填空的标题模式:
Power Words(力量词句式)
- "Stop [bad thing]"
- "Get [desired result] in [timeframe]"
- "The [adjective] way to [action]"
- "Why [audience] choose [product]"
- "[Number] ways to [achieve goal]"
Contrast Patterns(对比句式)
- "[Old way] is dead. Meet [new way]."
- "Don't [bad action]. Instead, [good action]."
- "From [pain point] to [benefit]."
Social Proof Patterns(社会证明句式)
- "[Number]+ [users/companies] trust [product]"
- "Join [notable company] and [notable company]"
- "As seen in [publication]"
这些句式与 CSV 中 Number List("{Number} {Ways/Reasons/Tips} to {achieve outcome}")、What If("What if you could {desirable outcome} without {common obstacle}?")、Question Hook("{Question that reader answers yes to}? Here's how.")等公式模板互相印证——参考文档负责"怎么读",CSV 负责"怎么搜"。
六、检索命令:按页类型与情绪查找公式
文档给出的两条示例命令(原样保留):
# Find formula for slide type
python .claude/skills/design-system/scripts/search-slides.py "problem agitation" -d copy
# Get emotion-appropriate formula
python .claude/skills/design-system/scripts/search-slides.py "urgency cta" -d copy
在仓库中实际执行第一条命令,返回了与文档意图一致的前 3 名结果(按 BM25 相关度排序):
- PAS — Problem→Agitate→Solution,模板 "You're struggling with {problem}...",情绪 Frustration→Fear→Relief,Problem slides;
- Cost of Inaction — "Every {timeframe} without {solution} costs you {quantified loss}...",Problem agitation slides;
- What If — "What if you could {desirable outcome} without {common obstacle}?",Title problem slides。
可见 "problem agitation" 这类自然语言查询确实能精准命中问题页/激化页公式。
完整 CLI 参数说明
search-slides.py 的 argparse 定义(L118-L157)支持:
| 参数 | 说明 |
|---|---|
query |
检索词(位置参数) |
-d, --domain |
指定领域:strategy / layout / copy / chart,缺省时自动探测 |
-n, --max-results |
返回条数上限,默认 3 |
--all |
跨所有领域检索 |
--json |
以 JSON 输出 |
--context |
上下文模式:附带版式/字体/配色推荐 |
--position |
当前幻灯片位置(1 起始,默认 1) |
--total |
总页数(默认 9) |
--prev-emotion |
上一页情绪,用于对比计算 |
脚本开头(L16-L24)还有一段 Windows 兼容处理:当 stdout 非 UTF-8(如 cp1252 控制台)时强制包装为 UTF-8,因为输出中包含 emoji(如上下文模式的 📐/🎨 图标)。输出格式化函数 format_result 对 copy 领域会打印公式名、结构、用途、模板、情绪、页类型与来源 7 个字段——与 CSV 的 output_cols 配置严格一致。
领域自动探测
不指定 -d 时,detect_domain 用关键词计分决定领域:copy 领域的触发词包括 headline, copy, formula, aida, pas, hook, cta, benefit, objection, proof, testimonial, urgency, scarcity——所以 "urgency cta" 这类查询即使不带 -d copy 也会落到 copy 域;无任何命中时回退到 strategy 域。
七、底层实现:BM25 检索引擎
slide_search_core.py 是整个公式库的检索核心,关键实现如下:
1. 数据挂载。DATA_DIR 指向脚本上一级的 data/ 目录(L14),即 .claude/skills/design-system/data/。copy 域的配置(L28-L32)声明:
- 数据文件:
slide-copy.csv - 参与打分的列(search_cols):
formula_name, keywords, use_case, emotion_trigger, slide_type - 返回的列(output_cols):在此之上追加
components, example_template, source
检索时把每行的 search_cols 拼接成一篇"文档"(L121),因此查 "problem agitation" 时,"Problem agitation slides" 出现在 Cost of Inaction 的 slide_type 列里,该行自然获得高分。
2. BM25 算法。BM25 类采用经典参数 k1=1.5, b=0.75:
- 分词:小写化、剥离标点、过滤长度 ≤ 2 的词(L57-L60)。这意味着查询词要尽量用三字母以上的实义词,"in/of" 这类词不参与打分;
- IDF 采用
log((N - df + 0.5) / (df + 0.5) + 1)的平滑形式(L79); - 打分用标准 BM25 公式
idf * tf*(k1+1) / (tf + k1*(1-b+b*doc_len/avgdl))(L93-L99),b项做了文档长度归一化,避免 keywords 特别长的公式因词多而占便宜; - 只有 score > 0 的结果才返回(L128-L135),所以查不到的查询会得到 0 条结果而不是硬凑。
3. 上下文模式。search_with_context 在 BM25 结果之外再叠加一层"决策表"查询,数据来自 4 份决策 CSV(L195-L212):
| 决策表 | 文件 | 键列 | 用途 |
|---|---|---|---|
| layout-logic | slide-layout-logic.csv | goal | 按目标选版式 |
| typography | slide-typography.csv | content_type | 主/副字号、字重对比 |
| color-logic | slide-color-logic.csv | emotion | 背景/文字/强调色处理 |
| backgrounds | slide-backgrounds.csv | slide_type | 背景图类目与叠加方式 |
它从查询里推断页面目标(problem/solution/cta/hook/traction 等,L370-L379),再按目标查版式、按情绪查配色,并计算两个与"叙事节奏"相关的标志:
- 模式打破(calculate_pattern_break):在 1/3 与 2/3 位置换版式,或在 frustration ↔ hope/relief、hope ↔ frustration/fear 等情绪反转时换版式——代码注释明确这是 Duarte Sparkline 技巧的落地;
- 全幅背景(should_use_full_bleed):仅对 hope/urgency/fear/curiosity 高情绪页,且只放在 1/3、2/3、结尾等战略位置,避免连续全幅。
最后按目标页类型给出动画类(如 cta → animate-pulse、agitation → animate-count animate-stagger,L436-L447)。也就是说,文档里"某页用哪个公式"这一步,在工程上被扩展为"公式 + 版式 + 字号 + 配色 + 动画"的一体化决策。
八、速查表(Quick Reference)
文档末尾的需求→公式速查表原样继承:
| Need | Use Formula |
|---|---|
| Create urgency | Cost of Inaction, Scarcity |
| Build trust | Social Proof, Testimonial |
| Show value | FAB, Value Stack |
| Drive action | AIDA, CTA |
| Tell story | BAB, Story Arc |
| Present data | Proof Stack |
表中 "Scarcity" 对应 CSV 的 Scarcity Urgency,"Testimonial" 对应 Social Proof 公式,"Story Arc" 对应 Hero Journey(Full deck structure)——这份速查表可以当作 deck 大纲评审时的自检清单:逐页问"这一页满足哪一行 Need",答不上来的页就该删或改写。
九、小结与使用建议
- 写稿路径:先按"Formula-to-Slide Mapping"表给每一页定公式与情绪,再从 Headline Patterns 里挑句式填空,最后用 CSV 的
example_template做结构校对; - 检索路径:
python .claude/skills/design-system/scripts/search-slides.py "<页类型/情绪关键词>" -d copy,需要 JSON 时加--json,需要整套视觉建议时加--context --position N --total M --prev-emotion <上一页情绪>; - 边界说明:copy 域检索基于
slide-copy.csv的 25 条记录,BM25 在语料极小,查询词应贴近 CSV 中 keywords/slide_type 的用词(如 "urgency"、"problem agitation"),过短或过于宽泛的词(如 "page")可能命中不稳定;公式的source字段标注的是方法论出处(Dan Kennedy、Cialdini、Joseph Campbell 等),属于文档内容的一部分,可直接引用。
参考文档本身(slides-copywriting-formulas.md)与同技能目录下的 slides-create.md、slides-layout-patterns.md、slides-html-template.md、slides-strategies.md 组合使用,即构成该仓库"策略化 HTML 演示文稿"完整知识链中的文案一环。
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0622
Hy4-previewHy4 preview 是由腾讯混元团队研发的新一代混合专家(MoE)旗舰模型。模型总参数量 770B,每个 token 激活 49B,主干共包含78层,第一层采用标准 FFN,其余 77 层均为 MoE 结构,每层包含 256 个路由专家与 1 个共享专家,每个 token 激活 top-8 路由专家及共享专家。主干之外原生内置 1 层 MTP(总参数量 10B,激活 0.7B)以支持投机解码。Python00
GLM-5.3GLM-5.3 与 GLM-5.2 使用相同的基座模型——所有提升均来自后训练。与 GLM-5.2 相比,它在复杂编程和长程任务上的表现显著提升。Jinja00
GLM-5.3-FlashGLM-5.3-Flash (320B-A18B),是GLM-5系列的首个原生多模态模型。320B总参数,能力超过GLM-5.2Jinja00
Spark-X2.5-4BSpark-X2.5-4B 旨在让强大的 AI 更实用、更高效、更易获得。在广泛日常任务中表现强劲,涵盖对话、写作、翻译、推理、编码、工具调用以及智能体工作流,并在同等规模的开源模型中取得领先成绩。Spark-X2.5 将面向效率的架构与最高 1M tokens 的原生上下文窗口相结合,并支持 200 多种语言。Python00
Spark-X2.5-1.7BSpark-X2.5-1.7B 旨在让强大的 AI 更加实用、高效且易于获取。这些模型在广泛的日常任务中表现出色,涵盖对话、写作、翻译、推理、编程、工具调用和智能体工作流,并在同等规模的开源模型中取得领先结果。Spark-X2.5 将面向效率的架构与最高 1M tokens 的原生上下文窗口相结合,并支持 200 多种语言。Python00