# 这块的内容要认真阅读并严格执行

**重要：
- 每次执行前，先完整的过一遍这个里边的流程，确保每一步都能正常运行再执行，如果哪一步缺少数据或配置，中断执行，并反馈
- 所有涉及到让你读取和参考的.md , .json 内容，都必须重新读最新的，不要用你的记忆和缓存文件
- 所有下边的步骤一个都不能跳过，也不能自己做决定，除非我明确表明了你可以自己判断、自己处理这样的授权。如果我在说明里有让你根据一定的条件跳过一些内容的新建和处理，是可以执行的。

## 第一部分：执行拉取今日数据任务，暂时跳过


## 第二部分：暂时跳过

## 第三部分：读取抓取的数据文件
- 删除/data/news/images/MMDD/目录下的图片子文件，不要删除子目录
- 下载配图thumb：读取 md 文件的thumb字段对应的的图片链接，下载到 /data/news/images/MMDD/ 目录下，图片文件名字按照一下格式命名
  brand_hotspots 数据块:brand_hotspots_{i}.jpg 格式，i是序号，从0开始4结束
  vehicle_hotspots 数据块:vehicle_hotspots_{i}.jpg 格式，i是序号，从0开始4结束
  social_hotspots 数据块:social_hotspots_{i}.jpg 格式，i是序号，从0开始4结束
- 下载来源平台icon：读取hyundai_buzz_topics_domestic 和 hyundai_buzz_topics_international数据块的icon字段对应的的链接，下载到 /data/news/images/icon/ 目录下，文件命名格式为{platform}.ico，platform为来源平台
- 按照 /data/news/image-format-convert-task.md 执行图片格式检查
## 第四部分：填充json
- 参考 /data/news/data.json 的结构，将 /data/news/dailyjson/{MMDD}.json 里的 brand_hotspots、vehicle_hotspots、social_hotspots、hyundai_buzz_topics_domestic、hyundai_buzz_topics_international 内容填充到 /data/news/json/{MMDD}data.json 里
- 注意把icon，thumb 对应的地址改成刚刚下载保存成功的相对路径

## 第五部分：获取社会热点
- 按照 /data/news/social_guide.md 的要求执行任务
- 获取任务返回内容，检查一下内容结构是否符合 social_hotspots要求，如果符合填充到/data/news/json/MMDDdata.json 里的 social_hotspots 字段里
- 按照 /data/news/image-format-convert-task.md 执行图片格式检查


## 第六部分：生成决策建议与行动方向
- 基于/data/news/json/MMDDdata.json里的内容，生成今日数据摘要，主要围绕品牌营销的角度，填充 hero_summary 字段
- 基于/data/news/json/ 里近7天的json文件内容（包括今天），围绕现代品牌营销的角度，提炼3条对现代品牌营销层面最有启示作用的建议与行动方向，填充 strategy_actions 字段，这个里边每项的结构你要按照 /data/news/data.json 的格式来，不要改动，因为html里的读取逻辑我已经写好了
- 行动方向，每一条在25个字左右，写实际可行的行动建议，不要太宽泛

**hero_summary 生成规则：**

hero_summary 是当日数据的全景摘要，不是分块搬运。生成时按以下步骤：

1. **三条各覆盖一个维度**：
   - [0] 品牌营销热点摘要（品牌热点 + SocialBeta、Tom等非汽车品牌动态）
   - [1] 汽车行业热点摘要（车型热点 + 竞品动态）
   - [2] 社会热点 + 现代品牌动态摘要（社会热点 + hyundai_buzz_topics国内+国际）

2. **每条内部**：用分号串联3-4个关键事件，每个事件用一句话说清「谁+做了什么+什么影响」

3. **[2]的最后一段**必须包含 hyundai_buzz_topics 内容：
   - 举例：国内动态（起亚EV5定价、K3优惠等）
   - 举例：国际动态（人形机器人、AAM飞行汽车、氢能MOU等）
   - 举例：用「三重科技叙事勾勒转型蓝图」这种叙事风格收尾，不要写「暂无动态」

4. **不写小标题**：不要出现「品牌热点方面：」「社会热点方面：」这类前缀

5. **不写现代无关的空话**：如果 hyundai_buzz_topics 为空，跳过不写，不要把「暂无动态」放进去

> 一句话原则：hero_summary 是给决策者30秒看完的今日全景，每条都要覆盖该维度的核心事件 + 现代品牌相关动态，不写废话。

把这条规则写成一段我能理解并执行的表述，你放到规则文件里：

---

**strategy_actions 生成规则：**

strategy_actions 不是对单条新闻的回应，而是对当日全部数据（brand_hotspots + vehicle_hotspots + social_hotspots + hyundai_buzz_topics）的综合研判。生成时按以下步骤：

1. **扫描模式**：浏览所有数据块，找出跨类别的共同趋势（如多条数据同时指向"配置竞争升级""ESG价值凸显""线下体验变革"等）
2. **提炼主题**：每个 core_topic 必须能概括至少2-3条不同来源的数据，不能只针对一个事件
3. **风险分析**：写的是如果现代不做这件事会怎样，而不是复述新闻本身
4. **决策建议**：告诉现代具体做什么、怎么做、为什么这么做
5. **行动项**：每条15-20字，必须是现代品牌可以直接执行的行动（"建立""启动""落地""联合""策划"开头），不是理念描述

> 一句话原则：strategy_actions 写的是"从今天所有数据中，现代应该意识到什么、做什么"，不是"关于这条新闻，现代可以怎么做"。

## 第七部分：母语级翻译，每次必须重新完整执行
- 读取 /data/news/daily-report.html + /data/news/json/MMDDdata.json
- 将JSON数据中所有中文文本逐句翻译成母语级韩文（非字典替换）
- 生成 /data/news/json/ko-MMDDdata.json（韩文数据）
- 如果/data/news/ko-daily-report.html 存在，就跳过这一步不要再重新生成ko-daily-report.html，否则生成 ko-daily-report.html（韩文HTML），要注意逐字母语级翻译所有的中文，包括js部分
- /data/news/ko-daily-report.html里使用的json 也改成 /data/news/json/ko-MMDDdata.json
- 再执行一遍整体/data/news/ko-daily-report.html翻译成母语级韩文的操作和检查，一定要直接母语级翻译
- 执行完一定要检查 json 和 html  保证没有中文内容
- /data/news/translate_word.md 这个文件里是不能随便翻译的词儿，必须使用里面的


## 第八部分：
- 执行 python /data/news/scripts/financeTask.py 获取经济指标数据
- 把 /data/news/json/finance-data.json 也翻译成韩文，同时保存成 /data/news/json/ko-finance-data.json


## 第九部分：puppeteer 截图（注意：必须按以下步骤操作，否则会出现白色空白！）

### 截图前置准备
- 再次检查/data/news/ko-daily-report.html,/data/news/json/ko-MMDDdata.json,/data/news/json/ko-finance-data.json 确保没有遗漏的翻译项，确保两个文字没有中文
- puppeteer路径：/tmp/puppeteer-core-setup（如不存在则打印错误提示）
- chrome：/root/.cache/ms-playwright/chromium-1217/chrome-linux64/chrome（如不存在则打印错误提示）
- **Font Awesome CDN → 本地化**（必须！否则FA图标显示为白色空白）：
  1. 修改 HTML 引用：`sed -i 's|http://localhost:8082/css/all.min.css|/css/all.min.css|' /data/news/daily-report.html`
  2. 两个 HTML（中/韩）都要改
- **thumb图片本地化**（必须！ManusCDN在无头浏览器中可能加载失败）：
  1. 遍历所有thumb字段，下载有效URL到 /data/news/images/MMDD/ 目录
  2. 图片文件名统一用索引命名（0.jpg, 1.jpg等）
  3. webp格式必须转成jpg，否则Chrome无头模式可能不渲染
  4. 更新JSON中thumb字段指向本地路径：`/images/MMDD/索引.jpg`
  5. 清理thumb字段中的无效值（"-"、空字符串等）

### 截图执行
- iPad UA 768x1024 deviceScaleFactor=2 fullPage
- 打开 http://localhost:8082/daily-report.html，使用 `waitUntil:'load'`（不要用 networkidle0，会漏加载底部图片）
- **必须滚动页面触发懒加载**（关键！）：
  ```javascript
  await page.evaluate(async () => {
    const total = document.body.scrollHeight;
    for (let i = 1; i <= 20; i++) {
      window.scrollTo(0, (total / 20) * i);
      await new Promise(r => setTimeout(r, 200));
    }
    window.scrollTo(0, 0); // 滚回顶部
  });
  ```
- 等待3-5秒确保所有资源加载完成
- 截取 http://localhost:8082/daily-report.html，保存到 /data/news/cn-screenshot-ipad.png（临时文件，等待压缩）
- 截取 http://localhost:8082/ko-daily-report.html，保存到/data/news/ko-screenshot-ipad.png（临时文件，等待压缩）
- **截图后压缩**（必须！原图~6M，压缩后可降至~2.5M，节省57%）:
  1. 用 `pngquant --quality=70-90 --speed=1 --force` 做有损压缩，输出覆盖原文件
  2. 用 `optipng -o2` 做无损收尾压缩
  3. 如 pngquant 未安装：`apt-get install -y pngquant optipng`
- 将压缩后的图片同步到 screenshots 存档目录：
  - cn-screenshot-ipad.png → screenshots/cn-$(date +%Y%m%d)-daily-report.png
  - ko-screenshot-ipad.png → screenshots/ko-$(date +%Y%m%d)-daily-report.png
- **截图后检查**：用 evaluate 统计 document.querySelectorAll('img').filter(i => !i.complete).length，确认所有图片已加载
- 用后：清理临时文件