--- name: plot description: >- 看图选图、照图画图的科研绘图闭环。自带一个可以随意增删的图库(像装修的样板房), 不让用户用文字描述"要什么图",而是把候选图摆出来让用户挑、自由组合(A 的布局 + C 的配色), 再用用户的数据画出来并和样例并排验证。只要用户想画图、配图、做 figure、可视化数据、 问"这个数据怎么画好看"、说"帮我出张图"、给了一张例图想要同款、想换配色或版式、 想看看有哪些图可以参考,都应使用本技能,即使用户没有提到图库或技能名。 收集参考图、维护图库交给同插件的 collect 套件。 --- # Plot Is All You Need · plot 本文件所在目录的上两级是共享根目录;先进入该根目录再运行文中的命令。图库、脚本、阶段细则和品味记录都共享,不复制成两份。 规则写不尽"好看",但样例可以。这个技能的全部审美都来自图库:图库里有什么图,就能画出什么气质的图; 用户删掉不喜欢的、加进喜欢的,画出来的东西就跟着变。所以你的工作不是替用户定规矩,而是: - **把对的图摆到用户面前**,让他们用眼睛选,而不是用文字描述; - **给出你自己的推荐**,尤其是面向发表或展示时,受众的眼光比用户个人口味更重要,但最终选择权始终在用户; - **数据的事全部自己处理**:读文件、整理、变形都由你来做,用户不该为此操心。 ## 四个阶段 | 阶段 | 做什么 | 细则 | |---|---|---| | **Appreciation** 鉴赏 | 看懂图库里的每张图,写成卡片,建索引;加图、删图、去重 | `../../stages/1-appreciation.md` | | **Resonance** 共鸣 | 把候选图摆成样板册,和用户一起选出方向 | `../../stages/2-resonance.md` | | **Rendition** 演绎 | 用用户的数据把选中的图画出来 | `../../stages/3-rendition.md` | | **Appraisal** 品评 | 看成品、对照样例检查、给用户并排比较、决定是否入库 | `../../stages/4-appraisal.md` | 进入某个阶段前,先读对应的细则文件。写卡片和往图库收图有固定的词表和边界,都在 `../../stages/1-appreciation.md` 里, 动手之前必须先读,不要凭印象写。 ## 从哪里进入 - **用户要画图**(有数据,或只有用途)→ Resonance → Rendition → Appraisal。 - **用户给了一张例图** → Resonance 的"example 选图"入口。 - **用户说"你定""直接画"** → Resonance 的快速路径:你自己挑,直接画出首选,同时附上备选。 - **用户要收集图片或维护图库** → 读取同插件的 `../collect/SKILL.md`。 - **索引里有"待鉴赏"的图** → 选图只会用到已鉴赏的图,所以先告诉用户有多少张还没看,问是否现在处理。 一轮画完不是终点:用户看了成品有新想法,就回到 Resonance 或 Rendition 再走一圈。 ## 图库 ``` gallery/ 随技能开源:可以再分发的图(自己画的,或 CC BY、CC0 等许可并注明出处的),每张配卡片,自己画的还带代码 gallery-local/ 只在本机:不想公开的图和卡片,不上传 */INDEX.md 每张图一行的索引,由脚本生成,选图时先读它 taste.md 用户的品味记录,只在本机 ``` 两个图库在选图时一视同仁。常用命令(在技能目录下运行,需要 `requirements.txt` 里的包): 公开论文图的出处和许可见 `THIRD_PARTY_NOTICES.md`。原始图注中的第三方版权例外需要单独核对,不能用仓库 MIT 许可替代图片自身许可。 ```bash python scripts/ingest.py <图片或文件夹> # 入库:压缩、去重、记录配色变体、生成空卡片 python scripts/build_index.py # 重建索引;加 --prune 清理已删除图片留下的卡片 python scripts/contact_sheet.py sheet ... # 拼样板册、并排对照、色卡,用法见脚本开头 ``` ## 给用户看图 候选图、草图、成品对照都要以**图片**的形式到达用户眼前。当前环境能直接展示图片就直接展示; 不能的话,给出文件路径并用系统默认程序打开(macOS 用 `open`)。只用文字描述一张图,等于让用户闭着眼睛选。 ## 几条底线 这个技能刻意少定规则,下面几条是例外,因为出了问题代价很高: 1. **模拟数据必须标明。** 用户没有数据时可以用模拟数据画,但图上要有"示例数据"字样,脚本开头也要注明。 否则一张看起来像真实结果的图可能被误放进论文。 2. **安装新的 Python 包之前先问用户。** 用户不同意,就用已有的包画出接近的效果,并说明差在哪里。 3. **任何图进入图库之前先问用户。** 不问就收,图库会被相似的图淹没。 4. **`gallery/` 会随技能公开。** 用用户自己的数据画的成品默认放 `gallery-local/`;要放进 `gallery/`, 先向用户确认这些数据可以公开,或者换成模拟数据重画一份。别人的图只有在许可允许再分发(CC BY、CC0 等)并在 `THIRD_PARTY_NOTICES.md` 记下出处、署名和许可时才能放进 `gallery/`(卡片里不写出处), 其余的一律放 `gallery-local/`。 5. **卡片里 `edited: true` 的内容不要改写。** 那是用户亲手修正过的理解。