---
name: vip-report-top-products
description: 负责抓取 CK Top Products Tableau 视图生成 S09/S10 素材，并在基线期保证与模板一致。
---

# VIP Report Top Products

## 范围

- `S09 TOP PRODUCTS - Bags`
- `S10 TOP PRODUCTS - Shoes`

## 数据来源

- Tableau workbook：`CK Top Products - General`
- 目标视图：`Top Products`
- 来源分组：`tableau_ck_top_products_general`
- 配置文件：`C:\Users\niuniu\.codex\vip-report\config.yaml`
  - `tableau.username` / `tableau.password`
  - `report.month_cn` / `report.year` / `report.compare_year`

## 生成流程

1. 运行 `scripts\sync_top_products_assets.py`，按 `Category=Bags/Shoes` 分别抓取 S09/S10。
2. 使用 `crop` 与 `resize_to` 生成素材：
   - `C:\workspace\cursor\output\vip-report\assets\top-products\`
3. 同步输出：
   - `C:\workspace\cursor\output\vip-report\render-ops.top-products.live.json`
   - `C:\workspace\cursor\output\vip-report\data\top-products\top-products-assets.live.json`

## 基线锁定（模板一致性）

- 条件：`report_year=2026`、`compare_year=2025`、`report_month=一月`。
- 锁定目录：`C:\workspace\cursor\output\vip-report\assets\template-lock-s04-s08-s13\`
- 锁定文件：
  - `s9_shape3.png`
  - `s10_shape2.png`
- 行为：
  - 基线期直接复制模板锁定图到 `assets/top-products`；
  - `manifest` 标记 `source_capture_id/source_view = template-lock`；
  - `render-ops` 不写入 `replace_images`，避免对模板重复替换引入像素偏差。

## 常用命令

- 仅同步 S09/S10 素材：
  - `powershell -ExecutionPolicy Bypass -File C:\Users\niuniu\.codex\skills\vip-report\bin\vip-report-top-products-sync.ps1 -Slides S09,S10`
- 指定月份（示例）：
  - `... -ReportMonth 三月 -ReportYear 2026 -CompareYear 2025`
- 同步并渲染：
  - `... -Render -OutputPath C:\workspace\cursor\output\vip-report\generated-top-products.pptx`

## 校验建议

- 优先做逐页 PNG 像素比对（S09/S10）。
- `compare_pptx.py` 可用于补充包级核验，基线期目标为 `identical=true`。
