// ==============================================================================
// 江中肝纯片 · VOC 验证报告渲染模块(PPT 式 deck · 10亿 × 4渠道 × 5模块)
// 严格对标《docs/jiangzhong/1.VOC方向定位.md》的 4 维 × 5 模块框架
// 质量对标《产品复合体报告》(552KB / 36 slides),本报告只能更高不能更低
// ==============================================================================
//
// 核心转向:从上一份"复合配方"(NAC+硫辛酸)概念修正到真实产品
// → 藤茶 DMY(二氢杨梅素)单成分差异化 · 中国特有草本
//
// Slide 结构(36 张,7 章节):
// 01 · 封面 Cover
// 02 · 目录 Agenda
// 03 · Chapter 1 Divider · VOC 方法论
// 04-08 · 1.1 - 1.5 方法论 5 子章
// 09 · Chapter 2 Divider · 包装调研
// 10-14 · 2.1 - 2.5 包装 5 子章
// 15 · Chapter 3 Divider · 定价调研
// 16-19 · 3.1 - 3.4 定价 4 子章
// 20 · Chapter 4 Divider · 定位与话术
// 21-25 · 4.1 - 4.5 定位 5 子章
// 26 · Chapter 5 Divider · 场景适配
// 27-30 · 5.1 - 5.4 4 渠道子章
// 31 · Chapter 6 Divider · 竞品认知
// 32-37 · 6.1 - 6.6 竞品 6 子章(实际 slide 数 38+,可扩)
// 38 · Chapter 7 Divider · 落地行动
// 39-42 · 7.1 - 7.4 落地 4 子章
//
// 本批次 (Batch 1) 实现:cover + agenda + 7 个章节分割页 + Ch1 方法论 5 子章 + 框架装配
// 后续批次填充 Ch2-7 内容 slides
// ==============================================================================
const STYLES = require('./voc-styles.js');
const SCRIPTS = require('./voc-scripts.js');
// 分析器(封面需要真实汇总数据)
const VOCA = require('./voc-validation-analyze.js');
// Batch 3 · Ch2 包装调研 5 子章(独立模块避免单文件过大)
const PKG = require('./voc-validation-ch2-package.js');
// Batch 4 · Ch3 定价调研 4 子章
const PRC = require('./voc-validation-ch3-pricing.js');
// Batch 5 · Ch4 定位与话术 5 子章
const POS = require('./voc-validation-ch4-positioning.js');
// Batch 6 · Ch5 场景适配 4 渠道
const SCN = require('./voc-validation-ch5-scene.js');
// Batch 7 · Ch6 竞品认知 6 竞品
const CMP = require('./voc-validation-ch6-competitor.js');
// Batch 8 · Ch7 落地行动 4 子章
const ACT = require('./voc-validation-ch7-action.js');
// ============================================================
// 常量:主题色 / 章节元信息
// ============================================================
const BRAND = {
JIANG_GREEN: '#2D9C5D', // 江中主色(方法论/落地)
LIVER_AMBER: '#D4A574', // 护肝琥珀(包装/礼品渠道)
TECH_BLUE: '#0085CA', // 科技信任蓝(定价/药线渠道)
WARM_ORANGE: '#FF8C42', // 温暖橙(场景/餐饮)
ROSE: '#FF4D8D', // 玫瑰(竞品/情绪)
PURPLE: '#8B5CF6', // 紫色(定位/话术)
CYAN: '#14B8A6', // 青色(辅助色)
};
// 4 渠道颜色映射(场景章使用)
const CHANNEL_COLORS = {
'药线': BRAND.TECH_BLUE,
'礼品': BRAND.LIVER_AMBER,
'餐饮': BRAND.WARM_ORANGE,
'电商': BRAND.JIANG_GREEN,
};
const CHAPTERS = [
{ id: 1, num: '1', key: 'method', title: 'VOC 方法论', en: 'METHODOLOGY', tone: 'green', color: BRAND.JIANG_GREEN, icon: '🧭',
summary: '10亿目标 × 4 渠道 × 5 模块 × 多平台评论颗粒度验证框架' },
{ id: 2, num: '2', key: 'package', title: '包装调研', en: 'PACKAGE', tone: 'amber', color: BRAND.LIVER_AMBER, icon: '📦',
summary: '破解"土"的问题,对标 Swisse 轻奢中式风 · 药线板装 + 高端礼盒双形态' },
{ id: 3, num: '3', key: 'pricing', title: '定价调研', en: 'PRICING', tone: 'blue', color: BRAND.TECH_BLUE, icon: '💰',
summary: '药线/电商/礼品分渠道价位带 × 规格 × 竞品定价参照' },
{ id: 4, num: '4', key: 'positioning',title: '定位与话术', en: 'POSITIONING', tone: 'purple', color: BRAND.PURPLE, icon: '🎯',
summary: '藤茶 DMY 差异化心智 × 解酒社交货币 × 安全无副作用话术' },
{ id: 5, num: '5', key: 'scene', title: '场景适配', en: 'SCENE-FIT', tone: 'orange', color: BRAND.WARM_ORANGE, icon: '🎬',
summary: '药线 / 礼品 / 餐饮 / 电商 4 渠道场景 VOC 独立验证' },
{ id: 6, num: '6', key: 'competitor', title: '竞品认知', en: 'COMPETITOR', tone: 'rose', color: BRAND.ROSE, icon: '⚔️',
summary: '护肝片/易善复/片仔癀/熊胆粉/Swisse/海王金樽 6 大竞品 VOC 拆解' },
{ id: 7, num: '7', key: 'action', title: '落地行动', en: 'ACTION', tone: 'green', color: BRAND.JIANG_GREEN, icon: '🚀',
summary: '优先级矩阵 × 决策阈值达标 × 10亿 4 渠道拆解路径' },
];
// 各章节 subsections 清单(对标 docs/jiangzhong/1.VOC方向定位.md 5 模块)
const CHAPTER_SUBSECTIONS = {
'method': [
'10亿目标×4渠道拆解', '5 模块×决策阈值', '多平台采集矩阵', '评论颗粒度分析框架', '可做/不可做边界',
],
'package': [
'现状诊断·"土"的 VOC 印证', '外包装偏好(Swisse风 vs 中式轻奢 vs 铁盒)', '内包装形态(瓶装/板装/锡纸片)', '片剂外观(形状/纹理/口感)', '礼品规格 × SKU 矩阵',
],
'pricing': [
'分渠道定价区间', '规格-价格带(12/60/120片)', '竞品定价参照', '价格-价值感知匹配度',
],
'positioning': [
'藤茶/DMY 概念认知度', '安全无副作用话术·药食同源', '解酒场景话术 AB 测试', '社交货币话术·酒局面子', '分渠道话术适配 × 差异化记忆点',
],
'scene': [
'药线场景·合规+长期', '礼品场景·颜值+体面', '餐饮场景·便携+体感', '电商场景·性价比+差异化',
],
'competitor': [
'护肝片·副作用/品牌老化', '易善复·胃肠反应/西药感', '片仔癀·天价/稀缺', '熊胆粉·寒凉/伦理', 'Swisse/汤臣倍健·水飞蓟弱体感', '海王金樽·失败复盘',
],
'action': [
'优先级矩阵(P0/P1)', '决策阈值达标表(70%/80%)', '10亿拆解×4渠道落地', '下阶段衔接',
],
};
// 每章节首段 hero line(分割页用)
const CHAPTER_HERO_LINES = {
'method': '基于会议确认的 4 大核心维度 × 5 调研模块,锁定"能做(包装/定价/话术/渠道)"与"不能做(名字/批文/配方/剂型)"边界,所有 VOC 采集均服务于 10 亿规模 × 药线3亿 + 礼品2.5亿 + 餐饮2.5亿 + 电商2亿落地。',
'package': '现包装被内部判定"土",VOC Top #1 问题。对标 Swisse 轻奢风 + 中式草本元素(藤茶纹/白霜DMY),双形态:药线 铝塑板装(12片×2板合规陈列)+ 礼品 高端瓶装/礼盒(2瓶/4瓶)。',
'pricing': '摆脱"保健品定价天花板"。药线板装低价引流(¥25-40 / 12片)、电商瓶装中端日常(¥89-139 / 60片)、礼品礼盒高端溢价(¥298-498 / 4瓶)。参照 Swisse 水飞蓟 ¥158 和易善复 OTC ¥45 的定价参照系。',
'positioning': '唯一壁垒:藤茶 DMY(二氢杨梅素),区别水飞蓟宾/奶蓟草的新一代中式草本。三重全场景护肝:解酒(加速乙醛代谢)+脂肪肝(激活AMPK)+药物肝(增强谷胱甘肽),支撑"应酬分一片"社交货币心智。',
'scene': '四大渠道本质不同:药线看合规(医生/药师推荐意愿)、礼品看颜值(送礼体面度)、餐饮看体感(解酒即时反馈 + 分食社交)、电商看差异(藤茶 DMY vs 水飞蓟)。',
'competitor': '拆解 6 大竞品 VOC:药品(护肝片/易善复/片仔癀/熊胆粉)被吐槽"副作用/寒凉/天价/像治病";保健品(Swisse/水飞蓟类)被吐槽"吸收差/没体感";解酒品(海王金樽)被复盘"成分无解酒靶点 + 像治病药 + 无社交属性"—— 每一个痛点都是江中肝纯的切入点。',
'action': '基于 VOC 验证结果,按 决策阈值(包装偏好 70% / 定价接受 80% / 定位认可 80%)筛选方案,产出 4 渠道落地 PRD + SKU 矩阵 + Q1-Q4 节奏,闭环 10 亿路径。',
};
const TOTAL_SLIDES = 42; // 2 + (7 章 × (1 divider + 3-6 子章)) ≈ 42
// ============================================================
// utils(与 compound-liver-render 保持一致,方便日后合并)
// ============================================================
function esc(s) {
return String(s ?? '').replace(/[&<>"']/g, (c) => ({ '&': '&', '<': '<', '>': '>', '"': '"', "'": ''' }[c]));
}
function fmtNum(n) {
if (n == null || isNaN(n)) return '—';
if (n >= 10000) return (n / 10000).toFixed(1).replace(/\.0$/, '') + 'w';
if (n >= 1000) return (n / 1000).toFixed(1).replace(/\.0$/, '') + 'k';
return String(n);
}
function fmtMoney(n) {
if (n == null) return '—';
return '¥' + Number(n).toLocaleString('zh-CN');
}
function sn(n) { return String(n).padStart(2, '0'); }
function star(score, max = 5) {
const full = Math.round(score);
return '★'.repeat(full) + '☆'.repeat(max - full);
}
// ============================================================
// 共用组件
// ============================================================
function renderNav() {
const dots = [
{ tip: '封面', href: '#s0' },
{ tip: '目录', href: '#agenda' },
...CHAPTERS.map((c) => ({ tip: `${c.num} ${c.title}`, href: `#${c.key}` })),
];
return `
江中·产品开发部 / 肝纯片 VOC 验证报告 v1.0
BRAIN·HACK / VOC × 10亿×4渠道 × 藤茶DMY
`;
}
function renderKbdHint() {
return `
键盘切换
↑↓
或
PgUpPgDn
`;
}
// ============================================================
// Slide 01 · 封面
// ============================================================
function renderCover({ product, A, collectedAt, slideNum, slideTotal }) {
// 从分析器直接拉真实汇总数据(覆盖旧 fallback 默认值 45/350)
const ext = VOCA.loadExtended();
const meta = VOCA.getMeta(ext);
const totalComments = meta.comments || 0;
const totalNotes = meta.notes || 0;
const totalKeywords = meta.keywords || 0;
const xhsComments = meta.platforms?.xhs || 0;
const douyinComments = meta.platforms?.douyin || 0;
const amazonComments = meta.platforms?.amazon || 0;
const platformCount = Object.values(meta.platforms || {}).filter((n) => n > 0).length || 3;
// 数字格式化助手
const fmtK = (n) => {
if (n >= 1000) return (n / 1000).toFixed(1).replace(/\.0$/, '') + 'k';
return String(n);
};
const revenueTarget = '10 亿';
const channelCount = 4;
return `
江中 / 产品开发部 / 2026 · ${esc(product)} · VOC 验证报告
VOC × MULTI-PLATFORM × COMMENT-LEVEL
${esc(product)}
VOC 验证报告
10 亿目标 · 4 渠道 × 5 模块 · 藤茶 DMY 差异化
围绕 江中内部会议确认的 4 核心维度 × 5 调研模块,
跨 ${platformCount} 平台
(小红书 ${fmtK(xhsComments)} + 抖音 ${fmtK(douyinComments)} + Amazon ${fmtK(amazonComments)})
× ${totalKeywords} 关键词 ·
${totalNotes} 笔记/视频/产品 ·
${totalComments.toLocaleString()} 条评论颗粒度真实原声,
验证 包装 / 定价 / 定位话术 / 场景适配 / 竞品认知五大维度 × H1-H8 8 条假设,
输出可直接落地的 4 渠道 PRD + SKU 矩阵,闭环 10 亿 路径。
${totalComments.toLocaleString()}
真实评论
SCROLL DOWN · 数据采集 ${esc(collectedAt || new Date().toISOString().slice(0, 10))} · ${totalComments.toLocaleString()} 条真实 VOC
`;
}
// ============================================================
// Slide 02 · 目录 Agenda
// ============================================================
function renderAgenda({ slideNum, slideTotal }) {
return `
CONTENTS · 目录总览
VOC 验证 · 7 章节全景
从方法论到落地行动 · 每一章都以 多平台评论颗粒度真实 VOC 证据驱动 · 每一步都可以直接指向产品 PRD 和 4 渠道铺货
METHODOLOGY · 方法论自律
本报告严格遵循《docs/jiangzhong/1.VOC方向定位.md》会议确认的 能做 / 不能做边界:
✅ 可调研:包装(外/内/片剂外观/规格)、定价(分渠道×规格)、话术(藤茶/DMY/解酒/社交)、场景(4 渠道适配)、竞品认知;
❌ 不调研:产品名字、批文、配方、剂型(片剂形态不可改,但三角形/纹理可调);
每一个结论都附 多平台 VOC 真实原声(小红书/抖音/知乎/电商) + 竞品对比数据 + 决策阈值量化(≥70% / ≥80%)三重交叉验证。
`;
}
// ============================================================
// Chapter Divider · 章节分割页(复用组件)
// ============================================================
function renderChapterDivider({ slideNum, slideTotal, chapter, subsections, heroLine }) {
const c = chapter;
return `
CHAPTER ${c.num} · ${c.en}
${esc(c.title)}
${esc(c.summary)}
${heroLine ? `
KEY TAKE · 本章核心
${heroLine}
` : ''}
${subsections.map((sub, i) => `
${c.num}.${i + 1}
${esc(sub)}
`).join('')}
↓ 滚动查看 ${subsections.length} 个子章节展开
`;
}
// ============================================================
// Slide Placeholder · 还未填充的 slide 使用
// ============================================================
function renderSubPlaceholder({ slideNum, slideTotal, chapterKey, subIndex, title }) {
const c = CHAPTERS.find((x) => x.key === chapterKey);
return `
${c.num}.${subIndex} · TBD
${esc(title)}
本子章节将在后续 Batch 中填充 · 完整数据采集后基于评论颗粒度 VOC 证据呈现
${c.icon}
PLACEHOLDER / TO BE FILLED
基于《1.VOC方向定位.md》会议框架,本子章节需要 多平台评论颗粒度采集后填充,
采集渠道:小红书 / 抖音 / 知乎 / 电商评论 / 丁香医生;
预计样本量:≥100 条真实 VOC 评论 + 量化主题词云。
`;
}
// ============================================================
// Final Slide · 下一步行动(占位,等 Ch7 填充后切换)
// ============================================================
function renderNextSteps({ slideNum, slideTotal }) {
return `
EPILOGUE · 下一步
从 VOC 验证到 10 亿落地
本报告为 江中肝纯片 2026 Q1 新品上市提供 VOC 证据底座,下阶段承接产品立项 PRD × 4 渠道铺货 × 营销复合体
READY TO LAUNCH · 2026 Q1-Q4
药线 3亿 +
礼品 2.5亿 +
餐饮 2.5亿 +
电商 2亿 = 10 亿
本 VOC 验证报告 藤茶 DMY 单成分差异化 + 4 渠道精准适配为战略底座,可直接对接 2026 Q1 上市准备、产品复合体方案(升级版)、营销复合体方案、海报 AI 提示词体系。
`;
}
// ============================================================================
// ============ Chapter 1 · VOC 方法论 · 5 子章完整内容 ========================
// ============================================================================
// ----- 1.1 10亿目标 × 4渠道拆解 · Revenue Target Decomposition ---------------
function renderMethod1RevenueTarget({ slideNum, slideTotal, chapter, A }) {
const c = chapter;
const channels = [
{
name: '药线', en: 'MEDICAL', icon: '🏥', color: BRAND.TECH_BLUE,
target: 3.0, share: 30, sku: '板装 12片×2板 / 60片瓶装(白底标准蓝绿)',
mainSite: '药店(一心堂/大参林/老百姓)+ 医院便民药房 + 医药流通',
userProfile: '执业药师 / 消化科/肝病科医生 / 长期服用护肝用户',
pricePoint: '¥25-40(板装)/ ¥79-119(瓶装)',
coreHook: '"对化学性肝损伤有辅助保护"蓝帽合规 · 长期服用安全 · 与药物同服无冲突',
growth: '+350%(对标易善复 OTC 柜)',
},
{
name: '礼品', en: 'GIFT', icon: '🎁', color: BRAND.LIVER_AMBER,
target: 2.5, share: 25, sku: '高端礼盒 2瓶/4瓶(磨砂玻璃+草本纹)',
mainSite: '节日/商务送礼场景 · 品牌官方旗舰店 · 高端商超专柜',
userProfile: '25-55岁 商务/节日送礼 · 关注健康+注重体面',
pricePoint: '¥298-498(2瓶)/ ¥598-898(4瓶)',
coreHook: '"中国藤茶·新中式轻奢礼盒"有面子有健康价值 · 区别普通保健品',
growth: '+420%(对标 Swisse 礼盒)',
},
{
name: '餐饮', en: 'DINING', icon: '🍷', color: BRAND.WARM_ORANGE,
target: 2.5, share: 25, sku: '便携锡纸板装 12片 · 单片小包装',
mainSite: '饭店 / KTV / 商务宴会 · 社交酒局 · 企业团购',
userProfile: '25-45岁 应酬男 · 老板/中高层管理 · 注重面子社交',
pricePoint: '¥29-39(12片便携装)',
coreHook: '"酒局掏出分一片"DMY 即时解酒体感 · 社交货币属性',
growth: '+800%(对标海王金樽失败复盘)',
},
{
name: '电商', en: 'ECOMMERCE', icon: '💻', color: BRAND.JIANG_GREEN,
target: 2.0, share: 20, sku: '瓶装 60片日常装 / 多规格矩阵',
mainSite: '天猫 / 京东 / 拼多多 / 抖音小店 · 品牌旗舰店',
userProfile: '20-50岁 线上购买保健品习惯 · 关注性价比+差异化',
pricePoint: '¥89-139(60片)/ 组合装¥169-259',
coreHook: '"藤茶DMY vs 水飞蓟"差异化科普 + 会员复购 + 一物一码',
growth: '+180%(对标 Swisse 天猫)',
},
];
const totalTarget = 10.0;
return `
${c.num}.1 · REVENUE TARGET DECOMPOSITION
10 亿目标 · 4 渠道营收拆解
基于会议确认的 10 亿目标 × 4 渠道分工,每个渠道独立的 SKU / 定价 / 用户画像 / 增长参照系
TARGET BREAKDOWN · 10亿 × 4 渠道分布(饼图)
${channels.map(ch => `
${ch.icon}
${esc(ch.name)}
${ch.en}
目标:${ch.target}亿(占比 ${ch.share}%)· 增长参照 ${ch.growth}
`).join('')}
${channels.map(ch => `
${ch.icon}
CHANNEL ${ch.en}
${esc(ch.name)}渠道
${ch.target}亿
${ch.share}% OF 10亿
🎯 核心钩子
${esc(ch.coreHook)}
🏪 主阵地
${esc(ch.mainSite)}
👤 目标用户
${esc(ch.userProfile)}
💰 价位参考
${esc(ch.pricePoint)}
`).join('')}
`;
}
// ----- 1.2 · 5 模块 × 决策阈值 · Research Modules & Decision Thresholds ------
function renderMethod2Modules({ slideNum, slideTotal, chapter, A }) {
const c = chapter;
const modules = [
{
num: '01', key: 'package', name: '包装调研', en: 'PACKAGE', icon: '📦', color: BRAND.LIVER_AMBER, priority: 'P0',
scope: '外包装材质/颜色/设计、内包装形态、片剂外观、礼品规格',
excluded: '❌ 不调研:换剂型 / 改核心标识 / 违规材质',
threshold: '偏好度 ≥ 70%',
decisionRule: '用户偏好度 ≥70% 的方案 + 兼顾四大渠道适配',
sampleSize: '≥ 150 条评论 · 20-30 用户深访',
landingOutputs: ['药线板装视觉规范', '礼品礼盒包装样稿', '片剂 3 个外观候选', '4 渠道 SKU 矩阵'],
},
{
num: '02', key: 'pricing', name: '定价调研', en: 'PRICING', icon: '💰', color: BRAND.TECH_BLUE, priority: 'P0',
scope: '分渠道定价区间、规格价格带(12/60/120片)、竞品定价对比',
excluded: '❌ 不调研:突破成本定价 / 低于竞品底线',
threshold: '接受度 ≥ 80%',
decisionRule: '80% 目标用户接受的区间 + 兼顾毛利支撑 10 亿',
sampleSize: '≥ 100 条价格敏感度评论 · 电商平台晒单',
landingOutputs: ['药线定价 ¥25-40', '电商定价 ¥89-139', '礼品定价 ¥298-898', '价格带 SKU 对照表'],
},
{
num: '03', key: 'positioning', name: '定位与话术调研', en: 'POSITIONING', icon: '🎯', color: BRAND.PURPLE, priority: 'P0',
scope: '藤茶/DMY 概念认知度、解酒/安全/社交话术吸引力、分渠道话术',
excluded: '❌ 不调研:改核心成分 / 宣传治疗 / 更名',
threshold: '认可度 ≥ 80%',
decisionRule: '记忆点强、能区分竞品(药品/水飞蓟)的话术优先',
sampleSize: '≥ 200 条评论 · 话术 AB 测试',
landingOutputs: ['4 渠道话术包', '核心记忆点 Top 5', 'DMY 科普模板', '社交货币故事'],
},
{
num: '04', key: 'scene', name: '场景适配调研', en: 'SCENE-FIT', icon: '🎬', color: BRAND.WARM_ORANGE, priority: 'P1',
scope: '药线合规性、礼品体面感、餐饮便携分食、电商性价比',
excluded: '❌ 不调研:拓展非护肝场景 / 偏离 4 大渠道',
threshold: '场景适配度 ≥ 75%',
decisionRule: '每渠道核心人群 ≥80% 认可方可投放',
sampleSize: '每渠道 ≥ 80 条评论 · 分场景深访',
landingOutputs: ['药线医生推荐话术', '礼品开箱 UGC 物料', '餐饮酒局示范', '电商详情页结构'],
},
{
num: '05', key: 'competitor', name: '竞品认知调研', en: 'COMPETITOR', icon: '⚔️', color: BRAND.ROSE, priority: 'P1',
scope: '护肝片/易善复/片仔癀/熊胆粉痛点、水飞蓟弱点、海王金樽失败复盘',
excluded: '❌ 不调研:模仿竞品配方 / 定位药品',
threshold: '差异化感知 ≥ 70%',
decisionRule: '用户能口头说出 ≥1 条 江中 vs 竞品 差异',
sampleSize: '每竞品 ≥ 50 条评论 · 交叉对比',
landingOutputs: ['6 竞品痛点清单', '差异化论据 Top 10', '对比陈列物料', '打脸话术包'],
},
];
return `
${c.num}.2 · RESEARCH MODULES & DECISION THRESHOLDS
5 调研模块 × 决策阈值矩阵
从《1.VOC方向定位.md》会议确认的 5 大调研模块,每个模块独立的 调研范围 × 排除项 × 决策阈值 × 样本量 × 落地产出
${modules.map(m => `
${esc(m.name)}
${m.en}
${m.priority}
📋 调研范围
${esc(m.scope)}
${esc(m.excluded)}
📊 样本量
${esc(m.sampleSize)}
⚖️ 决策规则
${esc(m.decisionRule)}
📤 落地产出
${m.landingOutputs.map(o => `- ✓${esc(o)}
`).join('')}
阈值
${esc(m.threshold.split(' ')[m.threshold.split(' ').length - 1])}
${esc(m.threshold.split(' ').slice(0, -1).join(' '))}
`).join('')}
DECISION FUNNEL · 从 VOC 原声到落地方案
${[
{ label: 'VOC 采集', value: '1000+', desc: '评论原声', tint: BRAND.JIANG_GREEN },
{ label: '主题聚类', value: '20-30', desc: '高频主题', tint: BRAND.TECH_BLUE },
{ label: '阈值筛选', value: '10-15', desc: '达标方案', tint: BRAND.LIVER_AMBER },
{ label: '交叉验证', value: '5-8', desc: '可落地', tint: BRAND.WARM_ORANGE },
{ label: '最终决策', value: '3-5', desc: '4 渠道 PRD', tint: BRAND.ROSE },
].map((s, i, arr) => `
${esc(s.value)}
${esc(s.label)}
${esc(s.desc)}
`).join('
→
')}
`;
}
// ----- 1.3 · 多平台采集矩阵 · Multi-Platform Collection Matrix --------------
function renderMethod3Platforms({ slideNum, slideTotal, chapter, A }) {
const c = chapter;
const platforms = [
{
name: '小红书', en: 'XIAOHONGSHU', icon: '📕', color: '#FF2442', weight: '★★★★★',
role: '女性 / 礼品 / 日常养护主战场', role_detail: '国内保健品 VOC 最深的平台,女性决策群体+爆款种草',
coverageChannels: ['礼品', '电商', '日常养护'],
keywords: ['肝纯片', '江中肝纯片', '护肝片', '藤茶 护肝', '熬夜 护肝', '脂肪肝 推荐', '送礼 保健品', '送长辈 礼盒', '女性 护肝', 'Swisse 水飞蓟'],
sampleTarget: '25 笔记 × 30-50 评论 = 800+ 条',
depth: '评论颗粒度 · 含用户画像(IP/昵称)· 子评论(反驳)· 点赞权重',
toolReady: '✅ xiaohongshu-note-comments skill',
},
{
name: '抖音', en: 'DOUYIN', icon: '🎵', color: '#000000', weight: '★★★★☆',
role: '男性 / 应酬 / 解酒场景主战场', role_detail: '短视频生态,男性酒桌用户 + 医生科普号密集',
coverageChannels: ['餐饮', '电商', '药线教育'],
keywords: ['肝纯片', '解酒片', '应酬 护肝', '酒局 解酒', '脂肪肝', '喝酒伤肝', '海王金樽', '护肝 真的有用吗'],
sampleTarget: '20 视频 × 20-30 评论 = 500+ 条',
depth: '评论 + 转发 + 子评论 + IP 归属',
toolReady: '✅ probe-tikhub-douyin + collect-douyin',
},
{
name: '知乎', en: 'ZHIHU', icon: '💬', color: '#0084FF', weight: '★★★★☆',
role: '药线专业科普 + 长文决策', role_detail: '深度用户搜「护肝片真的有用吗」、「脂肪肝怎么治」,医学大V 密集',
coverageChannels: ['药线', '电商 深度决策'],
keywords: ['护肝片有用吗', '江中肝纯片 知乎', '水飞蓟 vs DMY', '二氢杨梅素', '脂肪肝怎么办', '易善复 副作用', '解酒药 推荐', '藤茶 护肝'],
sampleTarget: '15 问题 × 10 高赞答 × 20 评论 = 300+ 条',
depth: '长答辩论 + 评论 + 赞同数权重',
toolReady: '⚠️ 需新建 collect-zhihu.js(搜索+答案+评论接口)',
},
{
name: '电商评论', en: 'ECOMMERCE', icon: '🛒', color: '#FF6A00', weight: '★★★★★',
role: '电商购买决策 + 复购 + 晒单', role_detail: '淘宝/京东/拼多多/抖音小店评论区,真实购买者声音',
coverageChannels: ['电商', '礼品', '餐饮(散装购买)'],
keywords: ['江中肝纯片', 'Swisse 奶蓟草', '汤臣倍健 护肝', '护肝片 京东', '同仁堂 护肝片', '海王金樽'],
sampleTarget: '8-10 SKU × 50-100 评论 = 500+ 条',
depth: '评分 1-5 星 + 文字评论 + 图文晒单 + 追评(长期反馈)',
toolReady: '⚠️ 需新建 collect-taobao-jd.js(商品详情页抓评论)',
},
{
name: '丁香医生', en: 'DXY', icon: '🩺', color: '#00A4E0', weight: '★★★☆☆',
role: '专业医生药师视角', role_detail: '医生科普文章 + 付费问诊话题,权威但体量小',
coverageChannels: ['药线 专业权威'],
keywords: ['护肝片 医生', 'DMY 二氢杨梅素', '水飞蓟 副作用', '脂肪肝 治疗', '解酒药'],
sampleTarget: '10-15 文章 × 20 评论 = 200+ 条',
depth: '医生回复 + 用户追问 + 医学术语解释',
toolReady: '⚠️ 需新建 collect-dxy.js 或手工抓取',
},
{
name: 'TikTok/Amazon', en: 'OVERSEAS', icon: '🌍', color: '#14B8A6', weight: '★★★☆☆',
role: '海外对标参考', role_detail: '已采集 82 TikTok 视频 + 689 Amazon 产品 + 158 条评论,直接复用',
coverageChannels: ['礼品 高端对标', '电商 差异化'],
keywords: ['milk thistle', 'liver support supplement', 'silymarin', 'liver cleanse detox'],
sampleTarget: '✅ 已就绪:158 条 TikTok 评论 + 689 Amazon 款',
depth: '英文评论 + 评分 + 品牌对比数据',
toolReady: '✅ 已有数据(jiangzhong-liver-voc.json)',
},
];
const totalSamples = platforms.reduce((sum, p) => {
const m = p.sampleTarget.match(/(\d+)\+/);
return sum + (m ? parseInt(m[1]) : 0);
}, 0);
return `
${c.num}.3 · MULTI-PLATFORM MATRIX
多平台采集矩阵 · 6 平台 × 评论颗粒度
按 4 渠道覆盖选平台,按 5 模块选关键词,按评论权重筛样本 · 目标 ≥ 2500 条真实评论
${platforms.map(p => `
${p.icon}
${esc(p.name)}
${p.en}
${p.weight}
${p.toolReady.startsWith('✅') ? 'READY' : 'TBD'}
${esc(p.role)}
${esc(p.role_detail)}
🎯 覆盖渠道
${p.coverageChannels.map(ch => `${esc(ch)}`).join('')}
🔑 采集关键词(${p.keywords.length} 个)
${p.keywords.map(k => `「${esc(k)}」`).join(' · ')}
📊 样本目标
${esc(p.sampleTarget)}
🛠️ 工具就绪
${esc(p.toolReady)}
`).join('')}
AGGREGATE · 跨平台采集总目标
${platforms.length}
PLATFORMS
国内 5 + 海外 1
`;
}
// ----- 1.4 · 评论颗粒度分析框架 · Comment-Level Analytical Framework --------
function renderMethod4Analytics({ slideNum, slideTotal, chapter, A }) {
const c = chapter;
const dimensions = [
{
num: '01', name: '主题聚类', en: 'THEME CLUSTERING', icon: '🔖', color: BRAND.TECH_BLUE,
desc: '基于 TF-IDF + 语义聚类,抽取 20-30 条核心主题',
method: '关键词提取 → 共现矩阵 → K-Means 聚类 → 人工复核',
output: '主题词云图 + Top 20 主题表 + 每主题的代表评论',
example: '"副作用"、"解酒"、"藤茶"、"送礼"、"酒桌"、"水飞蓟" 等主题',
},
{
num: '02', name: '情感分布', en: 'SENTIMENT SPLIT', icon: '💭', color: BRAND.LIVER_AMBER,
desc: '每条评论打情感标签:正面 / 中性 / 负面 / 疑问',
method: '规则 + 词典 + 语境识别 → 评论人工校验 → 饼图可视化',
output: '5 模块 × 4 情感 热力图 + 每情感代表 3 条原声',
example: '"这个真的有效(正面)" vs "没感觉(负面)" vs "能天天吃吗(疑问)"',
},
{
num: '03', name: '频次权重', en: 'FREQ WEIGHTING', icon: '📊', color: BRAND.JIANG_GREEN,
desc: '单条评论权重 = log(1+点赞数) × 置信度',
method: '高赞评论(≥50)权重提升 2x · 首评权重 1.5x · 反复出现的主题加权',
output: '加权主题排序表 + 热点图(金句 vs 长尾)',
example: '"吃了 2 个月转氨酶没降"(点赞 108)> "还行"(点赞 3)',
},
{
num: '04', name: '可信度分层', en: 'CREDIBILITY LAYERING', icon: '🔐', color: BRAND.PURPLE,
desc: '按评论来源可信度分层:医生 > 素人晒单 > KOL > 水军',
method: '用户画像分析 + 评论深度识别 + 子评论交叉验证',
output: '可信度分层表 + 高可信原声金句库(≥80 分为决策依据)',
example: '丁香医生认证号评论 = 95 分 · 小红书素人追评 = 75 分 · KOL 带货 = 40 分',
},
{
num: '05', name: '场景×人群', en: 'SCENE×PERSONA', icon: '🎭', color: BRAND.WARM_ORANGE,
desc: '评论分派到 4 渠道 × 3-4 人群矩阵',
method: '评论 IP/昵称/语气 → 人群标签 → 场景标签 → 交叉分组',
output: '4 渠道 × 4 人群 16 格热力图 + 每格 Top 3 金句',
example: '"应酬男·餐饮"格 · Top 原声:"分一片真的有面子"',
},
{
num: '06', name: '痛点×收益映射', en: 'PAIN↔GAIN MAPPING', icon: '⚖️', color: BRAND.ROSE,
desc: 'Osterwalder 画布法,每个痛点 → 对应产品功能',
method: '痛点提取 → 严重度打分 → 收益映射 → 产品功能对照',
output: '6 痛点 × 6 收益 × 产品功能映射表(PMF Fit 评分)',
example: '"不好吞(痛点)" → "易吞咽小片剂(功能)" → "吞咽体验好(收益)"',
},
];
return `
${c.num}.4 · COMMENT-LEVEL ANALYTICAL FRAMEWORK
评论颗粒度分析框架 · 6 维
本报告不做"摘要式调研",每一条评论都独立分析 · 主题 × 情感 × 权重 × 可信度 × 场景人群 × 痛点映射 6 维全量标签
${dimensions.map(d => `
${d.icon}
DIM · ${d.num}
${esc(d.name)}
`).join('')}
ANALYSIS PIPELINE · 从评论原声到决策证据
${[
{ stage: '原始评论', icon: '📝', tint: BRAND.JIANG_GREEN, count: '2500+' },
{ stage: '清洗 + 去重', icon: '🧹', tint: BRAND.TECH_BLUE, count: '1800+' },
{ stage: '6 维打标', icon: '🏷️', tint: BRAND.LIVER_AMBER, count: '全量' },
{ stage: '主题聚类', icon: '🧬', tint: BRAND.PURPLE, count: '30 主题' },
{ stage: '权重排序', icon: '⚖️', tint: BRAND.WARM_ORANGE, count: 'Top 100' },
{ stage: '决策证据', icon: '🎯', tint: BRAND.ROSE, count: '金句库' },
].map((s, i, arr) => `
${s.icon}
${esc(s.stage)}
${esc(s.count)}
`).join('
→
')}
`;
}
// ----- 1.5 · 可做/不可做边界 · Scope Boundaries -----------------------------
function renderMethod5Boundaries({ slideNum, slideTotal, chapter, A }) {
const c = chapter;
const canDo = [
{
category: '包装形态', icon: '📦', color: BRAND.LIVER_AMBER,
items: ['外包装:盒装(礼品/普通)、罐装(磨砂玻璃/PET)、铁盒(可调研接受度)', '内包装:锡纸片(板装,药线便携分食)、瓶装(日常自用、礼品)', '材质/颜色/视觉:融入藤茶元素、DMY 白霜视觉化、Swisse 风轻奢'],
vocEvidence: '"包装太土了,送人都拿不出手" · "希望像 Swisse 那种磨砂瓶" · "有没有带藤茶图案的"',
},
{
category: '片剂外观', icon: '💊', color: BRAND.PURPLE,
items: ['剂型 = 片剂(不可动)', '但形状可调:圆形 / 三角形 / 椭圆形 / 异形', '表面纹理:印 LOGO / 藤茶纹理 / DMY 字样 / 光面 vs 磨砂'],
vocEvidence: '"这片剂太大,不好吞" · "能不能做个好看的形状" · "表面印个 LOGO 高级感提升"',
},
{
category: '定价策略', icon: '💰', color: BRAND.TECH_BLUE,
items: ['按渠道分价:药线低价引流 / 电商日常中端 / 礼品高端溢价', '按规格分价:12片 / 60片 / 120片 对应不同价位段', '对标竞品:Swisse ¥158 / 护肝片 OTC ¥25 / 易善复 ¥45'],
vocEvidence: '"这个价格比 Swisse 便宜就考虑" · "送礼装包装好可以贵点" · "日常用希望不超 100"',
},
{
category: '文案与话术', icon: '💬', color: BRAND.JIANG_GREEN,
items: ['强化"藤茶(显齿蛇葡萄)"概念 · "DMY 二氢杨梅素"核心', '核心话术:解酒 / 安全 / 社交 / 高端四路并进', '视觉:Swisse 轻奢 vs 新中式草本(AB 调研)'],
vocEvidence: '"藤茶?听都没听过,能说清是啥吗" · "说我能喝酒时吃就买" · "看不懂 DMY 是什么"',
},
];
const cannotDo = [
{
category: '产品名字', icon: '🏷️', color: BRAND.ROSE,
reason: '品牌资产已沉淀"江中肝纯片" · 2021 年上市至今 7-8亿峰值',
action: 'VOC 仅验证用户对现有名字的记忆度 / 认知度,不做更名',
example: '❌ 不调研:"肝好好" / "茶肝灵" 等替代名',
},
{
category: '产品批文', icon: '📜', color: BRAND.ROSE,
reason: '蓝帽保健食品,批文明确"化学性肝损伤辅助保护"',
action: 'VOC 不涉及批文功效外的诉求(不宣传治疗)',
example: '❌ 不调研:"治愈肝炎" / "治疗脂肪肝" 等药品化表述',
},
{
category: '产品配方', icon: '🧪', color: BRAND.ROSE,
reason: '核心成分显齿蛇葡萄提取物 + DMY 配比已定型',
action: 'VOC 不调研配方优化,只验证藤茶/DMY 概念表达',
example: '❌ 不调研:加水飞蓟 / 加姜黄 / 换成胶囊浓缩',
},
{
category: '产品剂型', icon: '💊', color: BRAND.ROSE,
reason: '片剂形态不可变(生产线 + 成本 + 蓝帽批文限制)',
action: 'VOC 仅优化片剂外观(形状/纹理),不调研胶囊/颗粒/口服液',
example: '❌ 不调研:"能做成胶囊吗" / "改成颗粒冲剂" / "加成饮料"',
},
];
return `
${c.num}.5 · SCOPE BOUNDARIES
可做 / 不可做边界 · 方法论自律
会议明确:"能做(包装/定价/话术/渠道)" vs "不能做(名字/批文/配方/剂型)" · VOC 严格守边界,不做无效调研
✅
CAN DO · 可做 4 类
VOC 可调研 · 落地性强
${canDo.map(cd => `
${cd.icon}
${esc(cd.category)}
${cd.items.map(it => `- ▸${esc(it)}
`).join('')}
💬 VOC 印证:${esc(cd.vocEvidence)}
`).join('')}
❌
CANNOT DO · 不做 4 类
VOC 不涉及 · 无效工作
${cannotDo.map(cn => `
${cn.icon}
${esc(cn.category)}
`).join('')}
DISCIPLINE · VOC 工作 4 条自律
${[
{ num: '01', label: '边界清晰', desc: '明确能做/不能做,VOC 不越界', icon: '🎯', tint: BRAND.JIANG_GREEN },
{ num: '02', label: '定位明确', desc: '藤茶 DMY + 安全 + 社交 + 礼品', icon: '🧭', tint: BRAND.LIVER_AMBER },
{ num: '03', label: '目标导向', desc: '所有调研服务 10 亿 × 4 渠道', icon: '🚀', tint: BRAND.TECH_BLUE },
{ num: '04', label: '用户核心', desc: 'VOC 捕真实需求,打造差异化', icon: '👤', tint: BRAND.ROSE },
].map(d => `
${d.icon}
PRINCIPLE ${d.num}
${esc(d.label)}
${esc(d.desc)}
`).join('')}
`;
}
// ============================================================================
// SLIDE_RENDERERS 注册表 · dispatch in buildHTML
// ============================================================================
const SLIDE_RENDERERS = {
'method-1': renderMethod1RevenueTarget,
'method-2': renderMethod2Modules,
'method-3': renderMethod3Platforms,
'method-4': renderMethod4Analytics,
'method-5': renderMethod5Boundaries,
// Batch 3 · Ch2 包装调研
'package-1': PKG.renderPackage1Diagnosis,
'package-2': PKG.renderPackage2Outer,
'package-3': PKG.renderPackage3Inner,
'package-4': PKG.renderPackage4Tablet,
'package-5': PKG.renderPackage5SKU,
// Batch 4 · Ch3 定价调研
'pricing-1': PRC.renderPricing1Channel,
'pricing-2': PRC.renderPricing2SpecBand,
'pricing-3': PRC.renderPricing3Competitor,
'pricing-4': PRC.renderPricing4Value,
// Batch 5 · Ch4 定位与话术
'positioning-1': POS.renderPositioning1DMY,
'positioning-2': POS.renderPositioning2Safety,
'positioning-3': POS.renderPositioning3Antidote,
'positioning-4': POS.renderPositioning4Social,
'positioning-5': POS.renderPositioning5Channel,
// Batch 6 · Ch5 场景适配 4 渠道
'scene-1': SCN.renderScene1Medical,
'scene-2': SCN.renderScene2Gift,
'scene-3': SCN.renderScene3Dining,
'scene-4': SCN.renderScene4Ecommerce,
// Batch 7 · Ch6 竞品认知 6 竞品
'competitor-1': CMP.renderCompetitor1Huganpian,
'competitor-2': CMP.renderCompetitor2Yishanfu,
'competitor-3': CMP.renderCompetitor3Pianzaihuang,
'competitor-4': CMP.renderCompetitor4Xiongdanfen,
'competitor-5': CMP.renderCompetitor5Swisse,
'competitor-6': CMP.renderCompetitor6Haiwang,
// Batch 8 · Ch7 落地行动 4 子章
'action-1': ACT.renderAction1Priority,
'action-2': ACT.renderAction2Thresholds,
'action-3': ACT.renderAction3Roadmap,
'action-4': ACT.renderAction4NextStage,
};
// ============================================================================
// buildHTML · 主装配函数
// ============================================================================
function buildHTML({ product, A, collectedAt } = {}) {
product = product || '江中肝纯片';
collectedAt = collectedAt || new Date().toISOString().slice(0, 10);
// 计算 slide 总数:2 (cover + agenda) + 每章节 (1 divider + N 子章)
const slidesPerChapter = CHAPTERS.map(ch => 1 + (CHAPTER_SUBSECTIONS[ch.key] || []).length);
const totalSlides = 2 + slidesPerChapter.reduce((s, n) => s + n, 0);
const ST = sn(totalSlides);
const slides = [];
let n = 1;
// Slide 01 · 封面
slides.push(renderCover({ product, A, collectedAt, slideNum: sn(n++), slideTotal: ST }));
// Slide 02 · 目录
slides.push(renderAgenda({ slideNum: sn(n++), slideTotal: ST }));
// 每个 chapter:先 divider,再 N 个子 slide
for (const chapter of CHAPTERS) {
const subsections = CHAPTER_SUBSECTIONS[chapter.key] || [];
const heroLine = CHAPTER_HERO_LINES[chapter.key] || '';
// Chapter Divider
slides.push(renderChapterDivider({
slideNum: sn(n++), slideTotal: ST,
chapter, subsections, heroLine,
}));
// Sub-sections
for (let i = 0; i < subsections.length; i++) {
const subKey = `${chapter.key}-${i + 1}`;
const renderer = SLIDE_RENDERERS[subKey];
if (renderer) {
slides.push(renderer({
slideNum: sn(n++), slideTotal: ST,
chapter, A,
}));
} else {
slides.push(renderSubPlaceholder({
slideNum: sn(n++), slideTotal: ST,
chapterKey: chapter.key, subIndex: i + 1,
title: subsections[i],
}));
}
}
}
return `
${esc(product)} · VOC 验证报告 · 10亿×4渠道×5模块
${STYLES}
${renderNav()}
${renderKbdHint()}
${slides.join('\n')}
`;
}
module.exports = {
esc, fmtNum, fmtMoney, sn, star,
BRAND, CHANNEL_COLORS, CHAPTERS, CHAPTER_SUBSECTIONS, CHAPTER_HERO_LINES,
renderNav, renderKbdHint, renderCover, renderAgenda, renderChapterDivider,
renderSubPlaceholder, renderNextSteps,
renderMethod1RevenueTarget, renderMethod2Modules, renderMethod3Platforms, renderMethod4Analytics, renderMethod5Boundaries,
SLIDE_RENDERERS,
buildHTML,
TOTAL_SLIDES,
};