| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283 |
- // 江中猴菇饮 · Ch1 诘问起点(3 子章)
- // 1.1 产品困境直面 · 无体感即现实
- // 1.2 市场现实 · 100亿OTC胃药地图
- // 1.3 VOC 驱动反向定位 · 方法论起点
- const HGY = require('./houguyin-analyze.js');
- const C = require('./houguyin-components.js');
- const { BRAND, esc, renderVocCard, renderVocGrid, renderInsightHero, renderDecisionList, renderTheoryBox, renderTagCloud, renderStatStrip, renderBarChart, renderSectionHead } = C;
- // ================================================================
- // 1.1 · 产品困境直面 · 无体感即现实
- // ================================================================
- function renderSub1_1(ctx) {
- const { chapter: c, subIdx, sub, slideNum, slideTotal, data } = ctx;
- const items = data.items || [];
- // 取能反映 "怀疑无体感产品" 的 VOC:PPI 用户想找食疗但质疑、米稀主观效果自我怀疑、同名猴菇饮像果汁的反馈
- const ev1 = HGY.getEvidence(items, { hypothesis: 'H1', tag: '自我怀疑', top: 2, seed: 3 });
- const ev2 = HGY.getEvidence(items, { hypothesis: 'H4', tag: '心理依赖', top: 2, seed: 7 });
- const ev3 = HGY.getEvidence(items, { hypothesis: 'H5', tag: '果汁感差评', top: 1, seed: 11 });
- const ev4 = HGY.getEvidence(items, { hypothesis: 'H5', tag: '噱头认知', top: 1, seed: 13 });
- const voc = [...ev1, ...ev2, ...ev3, ...ev4].filter(Boolean).slice(0, 6);
- const fallback = HGY.getEvidence(items, { hypothesis: 'H1', top: 6, seed: 19 });
- const finalVoc = voc.length >= 4 ? voc : fallback;
- return `<section class="report-section" id="${c.key}-${subIdx}" data-tone="${c.tone}" data-slide-num="${slideNum}/${slideTotal}">
- <div class="section-inner">
- ${renderSectionHead({
- eyebrow: `${c.num}.${subIdx} · 产品困境直面`,
- title: '<span style="color:' + BRAND.CORAL + ';">无体感</span>即<span style="color:' + BRAND.HOUGU_TAN + ';">现实</span>:猴菇饮不是"新发现",只是猴头菇熬的水',
- subtitle: '回到产品本体:没有 DMY/水飞蓟那样的明星原料,也没有立竿见影的体感。承认 → 才有反向破局的起点。',
- color: BRAND.CORAL,
- })}
- ${renderInsightHero({
- eyebrow: 'THE BRUTAL TRUTH · 残酷真相',
- color: BRAND.CORAL,
- title: `"猴菇饮 = 加了猴头菇萃取的饮料"。这句话必须<strong style="color:${BRAND.CORAL};">写在方案第一页</strong>。<br/>肝纯片靠 DMY 讲"解酒保肝"的原料故事,猴菇饮没有这个抓手——<strong style="color:${BRAND.HOUGU_TAN};">不能复制这条路</strong>。`,
- subtitle: `用户已经用脚投票:同名猴菇饮<strong>"像果汁"</strong>、"养胃饮就是营销噱头"的质疑在小红书/知乎反复出现。继续打"新原料发现"的故事,只会把品牌拖进<strong style="color:${BRAND.CORAL};">智商税叙事</strong>。`,
- })}
- <div class="grid" style="grid-template-columns:1.2fr 1fr; gap:24px; margin-top:24px;">
- <div>
- <div class="text-mono text-xs" style="color:${BRAND.CORAL}; letter-spacing:0.18em; margin-bottom:14px; font-weight:700;">VOC · 用户对"无体感养胃饮"的真实声音</div>
- <div style="display:flex; flex-direction:column; gap:12px;">
- ${finalVoc.slice(0, 4).map((it) => renderVocCard(it, { accent: BRAND.CORAL, compact: true })).join('')}
- </div>
- </div>
- <div>
- <div class="text-mono text-xs" style="color:${BRAND.HOUGU_TAN}; letter-spacing:0.18em; margin-bottom:14px; font-weight:700;">对比 · 肝纯片 vs 猴菇饮 · 天然禀赋差距</div>
- <div style="background:var(--bg-1); border:1px solid var(--border); border-radius:var(--radius-md); padding:18px 20px;">
- <table style="width:100%; border-collapse:collapse; font-size:0.86rem;">
- <thead>
- <tr style="border-bottom:2px solid var(--border);">
- <th style="text-align:left; padding:8px 0; color:var(--text-3); font-weight:600; font-size:0.76rem;">对比维度</th>
- <th style="text-align:center; padding:8px 0; color:${BRAND.TECH_BLUE}; font-weight:700; font-size:0.78rem;">肝纯片</th>
- <th style="text-align:center; padding:8px 0; color:${BRAND.HOUGU_TAN}; font-weight:700; font-size:0.78rem;">猴菇饮</th>
- </tr>
- </thead>
- <tbody>
- <tr style="border-bottom:1px solid var(--border);">
- <td style="padding:10px 0; color:var(--text-2);">明星成分故事</td>
- <td style="text-align:center; padding:10px 0;"><span style="color:${BRAND.JIANG_GREEN};">✓ DMY 藤茶新原料</span></td>
- <td style="text-align:center; padding:10px 0;"><span style="color:${BRAND.CORAL};">✗ 猴头菇早被教育完</span></td>
- </tr>
- <tr style="border-bottom:1px solid var(--border);">
- <td style="padding:10px 0; color:var(--text-2);">立竿见影体感</td>
- <td style="text-align:center; padding:10px 0;"><span style="color:${BRAND.JIANG_GREEN};">✓ 解酒"不上头"</span></td>
- <td style="text-align:center; padding:10px 0;"><span style="color:${BRAND.CORAL};">✗ 胃病是慢性体感</span></td>
- </tr>
- <tr style="border-bottom:1px solid var(--border);">
- <td style="padding:10px 0; color:var(--text-2);">天然话题性</td>
- <td style="text-align:center; padding:10px 0;"><span style="color:${BRAND.JIANG_GREEN};">✓ 应酬/解酒</span></td>
- <td style="text-align:center; padding:10px 0;"><span style="color:${BRAND.CORAL};">✗ 不便说"胃不好"</span></td>
- </tr>
- <tr style="border-bottom:1px solid var(--border);">
- <td style="padding:10px 0; color:var(--text-2);">可借势点</td>
- <td style="text-align:center; padding:10px 0;"><span style="color:${BRAND.JIANG_GREEN};">藤茶 × 酒 × 肝</span></td>
- <td style="text-align:center; padding:10px 0;"><span style="color:${BRAND.HOUGU_TAN};">米稀 7.5 亿 × 江中</span></td>
- </tr>
- <tr>
- <td style="padding:10px 0; color:var(--text-2); font-weight:700;">破局路径</td>
- <td style="text-align:center; padding:10px 0; color:${BRAND.TECH_BLUE}; font-weight:700;">原料故事</td>
- <td style="text-align:center; padding:10px 0; color:${BRAND.HOUGU_TAN}; font-weight:700;">反向定位</td>
- </tr>
- </tbody>
- </table>
- </div>
- <div style="margin-top:14px; padding:14px 16px; background:${BRAND.CORAL}0A; border-left:3px solid ${BRAND.CORAL}; border-radius:4px;">
- <div class="text-mono text-xs" style="color:${BRAND.CORAL}; letter-spacing:0.15em; margin-bottom:6px; font-weight:700;">WHAT THIS MEANS</div>
- <div style="color:var(--text-1); font-size:0.88rem; line-height:1.7;">猴菇饮的成功路径<strong>不在"原料"</strong>,而在<strong style="color:${BRAND.HOUGU_TAN};">"场景 + 人群 + 心智锚点"</strong>——本章后续每一节都围绕这个判断展开。</div>
- </div>
- </div>
- </div>
- ${renderDecisionList([
- `<strong>写在方案第一页</strong>:主动承认"无显著体感",不包装成新突破`,
- `<strong>放弃原料故事路径</strong>:猴头菇早被教育,不重复"发现新成分"剧本`,
- `<strong>借力米稀不替代米稀</strong>:米稀 7.5 亿是既有认知资产,饮是增量场景`,
- `<strong>所有 VOC 问题先听再答</strong>:差评/抗拒是方向盘,不是公关对象`,
- ], { title: '落地决策 · 方法论纪律', accent: BRAND.CORAL, columns: 2 })}
- </div>
- </section>`;
- }
- // ================================================================
- // 1.2 · 市场现实 · 100亿OTC胃药地图
- // ================================================================
- function renderSub1_2(ctx) {
- const { chapter: c, subIdx, sub, slideNum, slideTotal, data } = ctx;
- const items = data.items || [];
- const ppiPain = HGY.getEvidence(items, { hypothesis: 'H3', product: '拉唑', top: 3, seed: 23 });
- const weitaiPain = HGY.getEvidence(items, { hypothesis: 'H3', product: '三九胃泰', top: 2, seed: 29 });
- const foodPain = HGY.getEvidence(items, { hypothesis: 'H1', tag: '场景限制', top: 1, seed: 31 });
- const marketSegments = [
- { label: 'PPI 拉唑类(治疗)', value: 70, valueLabel: '70% · 70亿', color: BRAND.TECH_BLUE },
- { label: '中成药(胃泰/康复新液等)', value: 22, valueLabel: '22% · 22亿', color: BRAND.PURPLE },
- { label: '保护剂 H2RA 制酸剂', value: 6, valueLabel: '6% · 6亿', color: BRAND.SAGE },
- { label: '功能食品(米稀/猴菇饮等)', value: 2, valueLabel: '2% · 2亿', color: BRAND.HOUGU_TAN },
- ];
- return `<section class="report-section" id="${c.key}-${subIdx}" data-tone="${c.tone}" data-slide-num="${slideNum}/${slideTotal}">
- <div class="section-inner">
- ${renderSectionHead({
- eyebrow: `${c.num}.${subIdx} · 市场现实`,
- title: '<span style="color:' + BRAND.TECH_BLUE + ';">100 亿</span> OTC 胃药市场地图 · 谁在吃药、谁在痛苦、谁被忽视',
- subtitle: '不看行业报告的"品类结构",直接看 VOC 里的<strong>用户情感分布</strong>——哪里痛得最响,哪里就有反向机会。',
- color: BRAND.TECH_BLUE,
- })}
- ${renderStatStrip([
- { num: '100亿', label: 'OTC 胃药年市场', color: BRAND.TECH_BLUE },
- { num: '70%', label: 'PPI 拉唑占比', color: BRAND.TECH_BLUE },
- { num: '2.5亿', label: '慢性胃病患者', color: BRAND.CORAL },
- { num: '45%', label: '胃病年轻化 <35 岁', color: BRAND.WARM_ORANGE },
- { num: '326', label: 'VOC 样本覆盖', color: BRAND.HOUGU_TAN },
- ], { accent: BRAND.TECH_BLUE })}
- <div class="grid" style="grid-template-columns:1.3fr 1fr; gap:24px; margin-top:24px;">
- <div>
- ${renderBarChart(marketSegments, { accent: BRAND.TECH_BLUE, title: '100 亿 OTC 胃药结构 · VOC 情感分布对应', height: 260 })}
- <div style="margin-top:18px; padding:18px 22px; background:var(--bg-1); border:1px solid var(--border); border-radius:var(--radius-md);">
- <div class="text-mono text-xs" style="color:${BRAND.TECH_BLUE}; letter-spacing:0.18em; margin-bottom:12px; font-weight:700;">VOC 情感浓度 · 各市场段的用户痛感</div>
- <div style="display:grid; grid-template-columns:repeat(4, 1fr); gap:10px; font-size:0.82rem;">
- <div style="padding:12px; background:${BRAND.TECH_BLUE}0C; border-left:3px solid ${BRAND.TECH_BLUE}; border-radius:4px;">
- <div style="color:${BRAND.TECH_BLUE}; font-weight:700; margin-bottom:4px;">PPI · 70%</div>
- <div style="color:var(--text-2);">有效但依赖<br/>反弹焦虑<br/>想停停不了</div>
- </div>
- <div style="padding:12px; background:${BRAND.PURPLE}0C; border-left:3px solid ${BRAND.PURPLE}; border-radius:4px;">
- <div style="color:${BRAND.PURPLE}; font-weight:700; margin-bottom:4px;">中成药 · 22%</div>
- <div style="color:var(--text-2);">口感抗性<br/>起效慢<br/>执行难</div>
- </div>
- <div style="padding:12px; background:${BRAND.SAGE}0C; border-left:3px solid ${BRAND.SAGE}; border-radius:4px;">
- <div style="color:${BRAND.SAGE}; font-weight:700; margin-bottom:4px;">保护剂 · 6%</div>
- <div style="color:var(--text-2);">处方驱动<br/>配合使用<br/>无独立心智</div>
- </div>
- <div style="padding:12px; background:${BRAND.HOUGU_TAN}0C; border-left:3px solid ${BRAND.HOUGU_TAN}; border-radius:4px;">
- <div style="color:${BRAND.HOUGU_TAN}; font-weight:700; margin-bottom:4px;">功能食品 · 2%</div>
- <div style="color:var(--text-2);">米稀 7.5 亿独大<br/>场景受限<br/>信任不够</div>
- </div>
- </div>
- </div>
- </div>
- <div>
- <div class="text-mono text-xs" style="color:${BRAND.TECH_BLUE}; letter-spacing:0.18em; margin-bottom:14px; font-weight:700;">VOC · 每一段的真实痛声</div>
- <div style="display:flex; flex-direction:column; gap:12px;">
- ${ppiPain.slice(0, 2).map((it) => renderVocCard(it, { accent: BRAND.TECH_BLUE, compact: true })).join('')}
- ${weitaiPain.slice(0, 1).map((it) => renderVocCard(it, { accent: BRAND.PURPLE, compact: true })).join('')}
- ${foodPain.slice(0, 1).map((it) => renderVocCard(it, { accent: BRAND.HOUGU_TAN, compact: true })).join('')}
- </div>
- </div>
- </div>
- ${renderInsightHero({
- eyebrow: 'INSIGHT · 市场解读',
- color: BRAND.CORAL,
- title: `100 亿胃药市场看似被 PPI 占满,但<strong style="color:${BRAND.CORAL};">70% 的份额藏着 70% 的焦虑</strong>。拉唑用户"有效但想停"是未满足需求的集中爆发区。`,
- subtitle: `中成药 22% 有稳定基本盘但被剂型/口感锁住增长;功能食品 2% 看似渺小,<strong style="color:${BRAND.HOUGU_TAN};">米稀独家 7.5 亿已证明只要找对场景就能放量</strong>。猴菇饮的战场不是抢 PPI 的 70%,而是把"不敢停 PPI"和"信不过中成药"的夹心层人群<strong>接走</strong>。`,
- })}
- ${renderDecisionList([
- `<strong>不与 PPI 争疗效</strong>:70 亿份额背后是医生处方、医保、药店体系,硬战必败`,
- `<strong>接 PPI 焦虑人群</strong>:主打"温和、日常、不抑制"定位,吃 PPI 不敢停的人需要第二条腿`,
- `<strong>不与中成药争传统</strong>:三九胃泰等品牌积累深厚,猴菇饮应做"新代际产品"`,
- `<strong>扩展"食疗饮"这个新品类</strong>:米稀证明 7.5 亿可行,猴菇饮是 SKU 化 + 场景化升级`,
- ], { title: '决策:在 100 亿里找 10-50 亿的无人地带', accent: BRAND.TECH_BLUE, columns: 2 })}
- </div>
- </section>`;
- }
- // ================================================================
- // 1.3 · VOC 驱动反向定位 · 方法论起点
- // ================================================================
- function renderSub1_3(ctx) {
- const { chapter: c, subIdx, sub, slideNum, slideTotal } = ctx;
- return `<section class="report-section" id="${c.key}-${subIdx}" data-tone="${c.tone}" data-slide-num="${slideNum}/${slideTotal}">
- <div class="section-inner">
- ${renderSectionHead({
- eyebrow: `${c.num}.${subIdx} · 方法论起点`,
- title: '反向定位 · <span style="color:' + BRAND.HOUGU_TAN + ';">从 VOC 倒推产品</span>,不是从产品说服 VOC',
- subtitle: '传统正向链路在本产品会失效。必须把<strong>"用户真实声音"</strong>放在第一个齿轮,让它驱动后续所有决策。',
- color: BRAND.HOUGU_TAN,
- })}
- <div class="grid" style="grid-template-columns:1fr 1fr; gap:24px; margin-top:24px;">
- <div style="padding:24px 26px; background:${BRAND.CORAL}08; border:1px solid ${BRAND.CORAL}30; border-radius:var(--radius-md);">
- <div class="text-mono text-xs" style="color:${BRAND.CORAL}; letter-spacing:0.2em; margin-bottom:16px; font-weight:700;">❌ 正向链路 · 本产品必然失效</div>
- <div style="display:flex; flex-direction:column; gap:14px;">
- ${[
- { step: '① 产品', content: '有什么功能?→ 猴头菇养胃', sub: '(真相:猴头菇早被教育完,无新鲜感)' },
- { step: '② 功效', content: '宣传什么?→ 修复胃黏膜', sub: '(真相:OTC 边界受限,不能强调治疗)' },
- { step: '③ 渠道', content: '去哪卖?→ 药店 + 电商 + KA', sub: '(真相:没有差异化心智,店员没动力推)' },
- { step: '④ 推广', content: '怎么说?→ 找明星 + 投电视', sub: '(真相:大曝光被当成"又一款养胃饮"淹没)' },
- { step: '⑤ 价格', content: '定多少?→ 对标竞品', sub: '(真相:陷入同质化价格战)' },
- ].map((s, i) => `
- <div style="display:flex; gap:12px; align-items:flex-start; padding:10px 12px; background:var(--bg-1); border-radius:6px; border-left:2px solid ${BRAND.CORAL}44;">
- <div style="flex-shrink:0; color:${BRAND.CORAL}; font-weight:700; font-size:0.86rem; letter-spacing:0.1em;">${s.step}</div>
- <div style="flex:1;">
- <div style="color:var(--text-1); font-size:0.86rem; font-weight:600;">${s.content}</div>
- <div style="color:${BRAND.CORAL}; font-size:0.74rem; margin-top:2px; font-style:italic;">${s.sub}</div>
- </div>
- </div>`).join('')}
- </div>
- <div style="margin-top:16px; padding:12px 14px; background:${BRAND.CORAL}12; border-radius:6px; text-align:center;">
- <div style="color:${BRAND.CORAL}; font-weight:700; font-size:0.92rem;">📉 结局:5000 万预算 → 打水漂 · 市场份额 < 1%</div>
- </div>
- </div>
- <div style="padding:24px 26px; background:${BRAND.JIANG_GREEN}08; border:1px solid ${BRAND.JIANG_GREEN}30; border-radius:var(--radius-md);">
- <div class="text-mono text-xs" style="color:${BRAND.JIANG_GREEN}; letter-spacing:0.2em; margin-bottom:16px; font-weight:700;">✅ 反向链路 · VOC 先于产品决策</div>
- <div style="display:flex; flex-direction:column; gap:14px;">
- ${[
- { step: '① VOC', content: '用户真实在抱怨什么?', sub: 'PPI 焦虑 / 米稀场景限制 / 送礼空白 / 糖友无糖' },
- { step: '② 假设', content: '8 条候选 H1-H8', sub: '米稀归因 / 饼干失败 / PPI 依赖 / 场景 / 店员 / 糖友 / 礼品' },
- { step: '③ 证据', content: '多平台 VOC 颗粒度验证', sub: 'xhs/douyin/zhihu/tb/jd/dingxiang × 326 条样本' },
- { step: '④ 机会', content: '交叉验证出 3 条长尾赛道', sub: 'PPI 离断过渡饮 / 送胃礼品 / 糖友无糖版' },
- { step: '⑤ 产品·渠道·推广·价格', content: '4P 都从机会反推', sub: '规格/陈列/话术/定价都由 VOC 决定' },
- ].map((s, i) => `
- <div style="display:flex; gap:12px; align-items:flex-start; padding:10px 12px; background:var(--bg-1); border-radius:6px; border-left:2px solid ${BRAND.JIANG_GREEN}66;">
- <div style="flex-shrink:0; color:${BRAND.JIANG_GREEN}; font-weight:700; font-size:0.86rem; letter-spacing:0.1em;">${s.step}</div>
- <div style="flex:1;">
- <div style="color:var(--text-1); font-size:0.86rem; font-weight:600;">${s.content}</div>
- <div style="color:${BRAND.JIANG_GREEN}; font-size:0.74rem; margin-top:2px;">${s.sub}</div>
- </div>
- </div>`).join('')}
- </div>
- <div style="margin-top:16px; padding:12px 14px; background:${BRAND.JIANG_GREEN}12; border-radius:6px; text-align:center;">
- <div style="color:${BRAND.JIANG_GREEN}; font-weight:700; font-size:0.92rem;">📈 结局:5000 万 → 5 亿 · 独占一条差异化赛道</div>
- </div>
- </div>
- </div>
- ${renderTheoryBox({
- theory: '三位一体方法论 · KANO × JTBD × 场景三元素',
- accent: BRAND.PURPLE,
- mapping: `<strong style="color:${BRAND.PURPLE};">KANO 模型</strong>(五类需求)负责把 VOC 痛点归类为<em>必备/期望/兴奋/无差异/反向</em>,决定哪些该做、哪些不该做;
- <strong style="color:${BRAND.WARM_ORANGE};">JTBD</strong>(Jobs to be Done)拆解用户"雇佣"这瓶饮的三类理由:<em>Functional 胃舒服 / Emotional 不焦虑 / Social 面子孝心</em>;
- <strong style="color:${BRAND.JIANG_GREEN};">场景三元素</strong>(时间 × 空间 × 触发事件)定位具体使用场景,避免"全人群/全场景"的装饰性口号。
- 三个模型不是学术堆砌,是<strong>决策工具</strong>:每条 VOC → 每个机会 → 每个 4P 动作都会被映射回来验证。`,
- })}
- ${renderDecisionList([
- `<strong>方法论铁律 1</strong>:任何结论必须附至少 3 条 VOC 证据 + 理论映射,否则不写进方案`,
- `<strong>方法论铁律 2</strong>:4 渠道 × 5 模块 只是结果交付形式,不是驱动分析的起点`,
- `<strong>方法论铁律 3</strong>:VOC 差评与抗拒是最珍贵的原始素材,要主动挖掘而非回避`,
- `<strong>方法论铁律 4</strong>:理论模型(KANO/JTBD/场景)用于验证和分类,不用于装饰`,
- `<strong>方法论铁律 5</strong>:每个假设 H1-H8 都必须独立给出<em>证真/证伪/需追加验证</em>的结论`,
- `<strong>方法论铁律 6</strong>:本报告交付物 = 方向假设集 + VOC 证据链 + 4P 配称蓝图 + 5000 万 → 5 亿路径`,
- ], { title: '方法论铁律 · 每条都是自律', accent: BRAND.HOUGU_TAN, columns: 2 })}
- </div>
- </section>`;
- }
- module.exports = {
- 'challenge-1': renderSub1_1,
- 'challenge-2': renderSub1_2,
- 'challenge-3': renderSub1_3,
- };
|