← Về thư mục
📄 / / profiles / r-and-d / raw_evidence / OpenAI4S / skills / figure-composer / README_zh.md

Figure Composer Skill

三个 figure Skill 里的中间那层:把一张出版级的多面板 figure 做好。上面一层是 paper-narrative,它决定这张图该不该做、做哪一张;下面一层是 figure-style,它管的是单幅图。入口是一句 claim 加上支撑它的数据引用,也可以从一张已有的 figure 反推;随后每个 panel 分派一个子 Agent,把结果拼成整图,再交给对抗式评审循环打磨。Sidecar 只写 plan 和 task、把已经画好的 panel 图像拼起来;它不会替你补上缺失的分析,也不预测期刊会不会接收这张图。

安装

一个 Skill 就是一个文件目录,所谓安装,就是把这个目录复制到 Agent 会去读的地方。有 Node 18+、且 PATH 上有 git(npm 靠它解析 github: 形式的包名)即可,无需先克隆仓库:

npx github:PKU-YuanGroup/OpenAI4S install figure-composer --target claude

--target claude 写入 ~/.claude/skills,claude-project 写入 ./.claude/skills,openai4s 写入 <data_dir>/user-skills,--dir <path> 则写到你指定的任意位置。往目标写任何东西之前,都会先打印解析出的绝对路径;--dry-run 到此为止,不再写入。重装时,若目标副本被你改过、或者不是它自己装的,就拒绝覆盖;uninstall 也只删除它自己写过的文件。对于 npm 发布版中包含的配方,可用 npx @pku-yuangroup/openai4s-skills install figure-composer --target claude 安装发布版本。npm 目录可能与当前仓库不同。

没有 Node 时,直接取这个目录——需要 .zip 上传时再打包。tarball 是整个仓库(超过 100 MB),下面这条管道是 POSIX shell(macOS、Linux、WSL)写法,只解出这一个目录:

curl -L https://codeload.github.com/PKU-YuanGroup/OpenAI4S/tar.gz/refs/heads/main \
  | tar -xz --strip-components=2 OpenAI4S-main/skills/figure-composer
python3 -m zipfile -c figure-composer.zip figure-composer

同一份内容的图形界面版本是点击下载整个仓库 zip 包,Windows 上也走这条路:解压后把 skills/figure-composer/ 拷出来即可(unzip main.zip 'OpenAI4S-main/skills/figure-composer/*' 只解这一个目录)。如果你本来就在跑 OpenAI4S,那这里没有任何东西需要安装——wheel 自带全部内置 Skill,且内置 Skill 优先于 <data_dir>/user-skills 里的同名副本。目标目录、来源记录,以及安装器拒绝去做的那些事:tools/skills-installer/。

文件

文件 职责
SKILL.md 一轮一轮地讲这个循环。12 列的 outline 要在动笔之前把每个 panel 的 ask 和 label budget 定死;每个 panel 交给一个子 Agent,并与本 Skill 一起加载 figure-style;在把昂贵的评审花出去之前,先逐个 crop 看一眼。composite 的反馈分两层回来,上层是 outline 修订,下层是逐 panel 的 violation,重画最多三轮;末尾列的那些 anti-pattern,正是白白烧掉一轮却没让图变好的做法。如果你走的是“从已有 figure 反推 outline”这个入口,别忘了那张图是不可信输入:outline 里的每一个字符串,都是视觉模型从像素里读出来的。
kernel.py 可选 sidecar:定义 outline 与评审的 schema 以及网格几何,构造 panel_task 和 composite_review_task 的 prompt,用 compose_figure 拼接 panel PNG 并盖上面板字母,给出每个 panel 的 crop box,把评审提出的 BLOCKER/MAJOR 修改按 panel 归类,并算出一次 outline 修订会牵连哪些 panel 必须重画。derive_outline 是反向的:用一次视觉调用读一张已有的 figure,反推出一份可编辑的 outline。

视觉评审调用和图像工具都依赖当前 Host 与内核环境提供的能力。反推出来的 outline 和评审结论都只是提案,动手之前先自己看一遍。