== vivid-figures-skill functional run == PASS: examples/palette-showcase/render.py renders all 5 palette ridge plots + render-info.json audit /tmp/vf-showcase1/berry.png 131888 bytes /tmp/vf-showcase1/coral.png 130036 bytes /tmp/vf-showcase1/forest.png 134228 bytes /tmp/vf-showcase1/iris.png 130294 bytes /tmp/vf-showcase1/ocean.png 133808 bytes PASS: byte-identical determinism: coral.png md5 3ee8ac3b4ba0ab7715864a71269bcff8 across two runs findfont: Failed to find font weight normal for STSong, now using 300. findfont: Failed to find font weight normal for STSong, now using 300. findfont: Failed to find font weight normal for STSong, now using 300. findfont: Failed to find font weight normal for STSong, now using 300. PASS: setup_style() picks up MH_DATA_FIG_COLORS marker from CLAUDE.md (7/7 colors in order) [plot_utils] WARNING fig_heat.pdf 左边距偏大: 实测 16.8% 图宽,y 标签实际只需 4.6% —— 疑似空白浪费,检查坐标轴范围与刻度 Saved: figures/fig_heat.pdf [plot_utils] WARNING fig_heat.png 左边距偏大: 实测 16.8% 图宽,y 标签实际只需 4.6% —— 疑似空白浪费,检查坐标轴范围与刻度 Saved: figures/fig_heat.png PASS: plot_utils.heatmap renders PDF (19445 bytes) and PNG (126015 bytes) Saved: figures/fig_bar.pdf PASS: plot_utils.bar_compare renders PDF (14578 bytes) with 3-series grouped bars FUNCTIONAL CORE OK PASS: marker-driven styling + plot_utils helpers verified (3/3 assertions) PASS: bootstrap.py nonexistent workspace fails cleanly ('Workspace does not exist', non-zero exit) registry hits: 100 - None / minimax-pdf | installs: 3711 - None / minimax-pdf | installs: 1247 - None / asb-positioning | installs: 472 - None / thinking-probabilistic | installs: 408 - None / sci-figure | installs: 212 PASS: npx skills add (local path, hermes-agent) lands a byte-identical SKILL.md in ./.hermes/skills/ installed files: 197 PASS: npx skills add (GitHub source, claude-code) lands SKILL.md in ./.claude/skills/ == functional: 6 pass, 0 fail ==