--- name: visualizer description: 当用户要求数据可视化、做图表、生成看板、数据仪表盘、可视化报告、Excel/CSV 转图表、预算/销售/运营等指标分析页面、Chart.js 可视化时使用。只处理数据可视化任务;纯网页、banner、海报、简历等非数据图表设计任务应交给 visual-design。数据报告页以图表为主体归本技能;以文案排版为主体的静态报告页归 visual-design。 --- # 数据分析可视化 把结构化数据、表格汇总、业务指标或用户描述的数据口径转成可交付的 HTML 数据可视化仪表盘。 ## 成功判定 一次合格交付必须同时满足: - 已读取 `references/visualizer-design-system.md`。 - 已用 `write` 写出 `.html` 文件。 - 已用本技能目录下的 `scripts/validate_visualizer_html.py` 校验最终 `.html`,且结果为通过。 - 已调用 `mcp_pinvou3_present_artifact(path, title)` 展示产物卡(内置 MCP 工具默认延迟加载:工具列表里没有它时先 `tool_search` 激活;`tool_search` 返回 `mcp_boot` connecting(MCP 服务仍在启动)就等待数秒重试,connecting 消失后仍搜不到,才算产物卡后端本轮不可用——在回复里说明即可)。 - HTML 使用 Chart.js UMD:`https://cdnjs.cloudflare.com/ajax/libs/Chart.js/4.4.1/chart.umd.js`。 - 每个 `` 都有 `role="img"`、描述性 `aria-label` 和 fallback text。 - Chart.js 默认 legend 关闭,并使用自定义 HTML legend。 - 数据先聚合再入图,展示数字经过合理四舍五入。 - 图表关键数值常驻显示,不只依赖 hover tooltip;数据密集时显示首尾、峰值、谷值或 Top N 等关键标签。 ## 失败判定 如果发生以下任一情况,必须重写产物再交付: - 使用 ECharts、Plotly、Vega、D3 伪地图或任何非 Chart.js 图表库,除非用户明确点名要求。 - HTML 中出现 `echarts`、`Plotly`、`cdn.plot.ly`、`cdn.jsdelivr.net/npm/echarts`。 - 直接在聊天正文粘贴完整 HTML,而没有写 `.html` 文件和展示 artifact。 - `` 缺少 `role="img"`、`aria-label` 或 fallback text。 - 使用默认 Chart.js legend,而没有自定义 HTML legend。 - 图表数值只出现在 hover tooltip 中,画布上没有常驻数值标签。 - 使用彩虹渐变 KPI、重阴影、发光、深色 hero、emoji 或营销页式大标题。 - HTML/CSS/JS 中出现 ``、`/* comments */` 或独立行 `// comments`。 - `scripts/validate_visualizer_html.py` 返回失败。 ## 必须先读 在执行任务前读取 `references/visualizer-design-system.md`,并遵守其中的 Chart.js、布局、配色、无障碍和流式输出规则。若任务很小,也至少遵守本文件的硬性规则。 ## 交付方式 Pinvou 的聊天正文会转义或清理 `