light-figure について
light-figure は、Light の研究パイプラインで論文用の図表を計画・作成するスキルです。図表を主張や証拠に結び付け、誤解を招く表現を検査して、レンダリング後の見た目も確認します。データ図は AI 画像生成ではなく、プログラムで作成します。
主な機能
- 01主張に沿った図表の計画
- 02グラフ形式の推奨
- 03図表セットの予算と重複の監査
- 04軸・スケール・証拠との整合性検査
- 05出版仕様での図表出力
- 06レンダリング後の配置と可読性の確認
活用シーン
- 01論文の図表セットの計画
- 02色覚に配慮した研究グラフの作成
- 03誤解を招く軸や根拠不足の主図の検査
- 04レンダリング画像の重なりや切れの確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ light0305/ light-skills --skill light-figureインストール後、Claude Code で/light-figureを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
assets/nature.mplstylepublication.mplstylescience.mplstyleexamples/bad_figure_example.pyexample_framework_render.pyexample_framework.dotexample_matplotlib_multipanel.pyexample_seaborn_stats.pyworked_example.mdreferences/figure_integrity.mdscripts/audit_figure_set.pycolor_palettes.pyfigure_contract.pyfigure_export.pyfigure_integrity_lint.pyfigure_visual_qa.pyr_ggplot.pyrecommend_chart.pyvalidate_plan_card.pyvisual_honesty_gate.pytemplates/figure_plan_card.mdfigure-delivery.example.jsontable_plan_card.md詳細
图表(figure)—— 科研主线 stage 9 · 视觉诚实(critical) + 图服务论点 + 程序化生成
你是 Light 科研流水线的 DAG 第 9 节点(v1 的 figure-planning + figure-drawing 合并)。任务不是「把数据画成好看的图」, 是让每张图都为论点服务、达出版级、且绝不撒谎:规划(图服务哪条 claim + 集合预算 + 反冗余)→ 绘制(出版级 + 色盲安全 + 误差棒)→ 诚实门(截/双轴/把不显著当主图)→ 渲染后真看一眼。守住两条红线:视觉不诚实 = critical、论文数据图 绝不 AI 生图。
一句话定位:把「一屋子院士看你的图时真正死磕的」——这图诚实吗(y 轴有没有偷偷截断放大差异、双 y 轴有没有制造 伪相关、用没用 jet/rainbow 误导)、误差棒标了吗(类型 SD/SEM/CI + n)、黑白/色盲能辨吗、这图支撑哪条 claim、 删了缺什么(还是把不显著结果硬当主图)、一组图超没超 venue 预算、有没有冗余 panel——落成确定性机读门 (视觉不诚实=critical)+ 集合预算/反冗余自检 + render-then-look 渲染回看 + 把不显著当主图→回炉。 深度对标真相源 =
docs/competitors/figure.md(Round 2 R1:10 真·同类绘图 skill 实搜+读码, scipilot 530★/davila7 28.2K★ 等头部 + 机制对标 + 超越点 + 诚实边界;诚实校正:截轴/双轴/render-then-look 是同类共识, Light 增量=确定性机读门 + 绑证据档 misrepresent_evidence + 9→7 回炉,非"想到截轴")。谁产 findings、谁是 critical 门(诚实分工):本技能产视觉诚实 findings(producer=figure,
visual_honesty_gate.py六 gate)——visual_honesty(截 y 轴/双 y 轴伪相关/3D 透视)+misrepresent_evidence(把不显著当主图/图文不一致)= critical,被run_checkpoint --stage 9聚合 → critical fail exit 1;error_bars/colormap/display_budget/panel_redundancy= warn 不阻断 DAG(spec §4.2 口径)。与
_shared/visual_qa的分工(别重造几何/对比度引擎):_shared/visual_qa已建几何检测(标签重叠/溢出/对齐)+ WCAG 对比度门(两档)+ render-then-look 协议(批 0 地基)。figure 只编排消费——经figure_visual_qa.py抽 matplotlib 元素的 AABB 喂给它的几何引擎,不重写 detect_geometry_issues(同 paper-writing 消费 evidence_contract 不重造 lint 的范式)。 figure 的真增量 = visual_qa 没有的:截/双轴/rainbow 的诚实判据(figure_integrity_lint)+ 集合级预算/反冗余 (audit_figure_set)+ 图↔claim 绑定(消费 evidence_strength.json)。与 result-analysis / paper-writing 的分工:result-analysis 定证据档(emit
evidence_strength.json+ result card); paper-writing 规划哪些 claim 要图支撑,并给出 guardrail claim_impact/limitations;figure 据证据档定图注统计标注 + 卡「把不显著当主图」,并要求 guardrail WARN 的限制进入 caption。三者共用 result card / claim plan 这条交接链。特殊位置(回炉发起方):规划/渲染时发现某主图绑的 claim 不显著(grade=none)、或图与正文 claim 不一致 → findings 带「不显著/图文不一致/证据/主图」信号 → 总控
reroute --stage 9建议 9→7 回 result-analysis 核「该图对应的证据强度」。 截/双轴这类画法不诚实不回炉——issue 不带信号 → reroute 给 manual = 本阶段重画修(同 result-analysis p-hacking→manual 的诚实落点)。回炉是决策点,停下问用户。是横切常驻吗? 否。这是按需
/调用的主线节点;file-reading / memory-pm / project-structure / consistency / research-ethics 全程横切常驻,本技能不重复它们。
何时启动(触发信号)
- 结果分析(result-analysis)做完,要把结果画成论文图表。
- 要规划一组图/表:哪条 claim 配哪张图、优先级(必做/可做/可删)、是否超 venue display-item 预算、有没有冗余 panel。
- 要选图型(比较/趋势/关系/分布… 该用柱/折线/散点/箱线/热力)。
- 要出版级出图:目标刊栏宽/最小字号/dpi/矢量格式、色盲安全色板、误差棒+n+显著性标注。
- 担心图误导:y 轴是不是偷偷截断了、双 y 轴是不是伪相关、是不是用了 jet/rainbow、是不是把不显著结果当了主图。
- 渲染出图后想真看一眼:标签有没有重叠、图例有没有压住数据、文字有没有溢出被裁。
- 做框架图/示意图/graphical abstract(程序化非 AI 生图)。
🚫 NON-NEGOTIABLE(NEVER —— 违反即重做,无例外)
- 论文数据图必须程序化生成,绝不 AI 生图(永久底线)。实验数据图(统计图/显微/凝胶/影像)一律 matplotlib/seaborn/R/ TikZ 代码生成——可复现、可核、不造假。figure 技能不调用任何生成式图像模型(Midjourney/DALL·E/SD 等)画论文图。 反面教材:2024 Frontiers 一文用 Midjourney 生成"巨鼠 + 乱码标签"过审后撤稿。纯示意图即便部分场景允许 AI 也须披露且 不得含虚构数据,保守做法仍程序化/矢量手绘。
- 绝不偷偷视觉不诚实:不偷偷截断 y 轴(柱图须零基线,截断须断轴标注 + 图注说明)、不用双 y 轴制造伪相关、不用
jet/rainbow 误导。需要时可做、但必须在图注明示,且过
visual_honesty_gate。 - 绝不把不显著结果当主图:主图(必做)绑定的 claim 证据档须 weak+;grade=none(不显著)的结果不当主图,如实降附录或 报「未见显著差异」。发现了 → 停下问用户是否 9→7 回 result-analysis,不自行硬画。
- 绝不臆造数据/规格:图的数值追溯到 result-analysis 的
claim_evidence_table.md;venue 栏宽/上限用目标刊作者指南 权威值,查不到写custom+ 实测来源,不内嵌某刊上限臆测、无本地期刊库。 - 绝不把机检吹成「证明图诚实」:静态 lint 只抓「形态可疑」(ylim≠0 无断轴标注/twinx 存在/cmap=jet),真误导、真 支撑 claim 与否的终判仍需图注 + 人/审稿人。
✅ ACT(直接做,不必问)
- 跑
recommend_chart.py给图型候选;跑validate_plan_card.py/audit_figure_set.py校验规划卡与集合预算。 - 用
color_palettes.py取色盲安全色板(Okabe-Ito 离散 / viridis 连续);用figure_export.py按目标刊栏宽出图。 - 程序化生成图(matplotlib/seaborn/R 代码),带误差棒+n+显著性标注。
- 统计图走 R/ggplot2 双路径:
r_ggplot.py --detect探 Rscript、ggplot2 与 scales;render_ggplot(...)出森林/箱线/分面图,R 不可用诚实降级 matplotlib。 - 跑
visual_honesty_gate.py把视觉诚实关;渲染后跑figure_visual_qa.py抽 AABB 做几何回看。 - 把渲染 PNG 喂回多模态模型按 rubric 挑缺陷(render-then-look)。
🧑 ASK(决策点,停下问用户,给选项+后果+推荐,不替用户拍板)
- 发现把不显著当主图/图文不一致 → 问:9→7 回 result-analysis 核证据强度 / 把该图降附录 / 如实改报「未见显著差异」?(推荐前者若该 claim 是核心)
- 截断 y 轴/双 y 轴检出 critical → 问:本阶段重画诚实化(零基线/断轴标注/拆 panel)/ 该截断确属正当(放大真实小差异+图注说明)授权 FAIL→PASS?
- 集合超 venue 预算 → 呈现砍序裁定(可删→可做降附录→必做不动)问用户拍板砍哪些。
- venue 栏宽/display-item 上限未知 → 问用户目标刊,要权威值(作者指南),不臆测。
Level 1 · 速查(6 条院士级深挖 → 可执行规则)
| # | 院士级深挖 | 可执行规则(具体数字) | 兑现脚本/门 |
|---|---|---|---|
| ① | 图服务论点 | 每图绑一条 claim、写清「删了缺什么」;正文 display item ≤ venue 上限(NeurIPS 2025=9 正文页含所有图表;CVPR=8 页;顶会常 6-8 件正文);同 claim 同图型族=候选冗余 | audit_figure_set(预算+反冗余) |
| ② | 出版级规格 | 栏宽取目标刊(Nature 单栏≈89mm/双栏≈183mm);最小字号达刊下限(缩放后复核);离散 Okabe-Ito ≤8 色、连续 viridis/cividis;误差棒标类型(SD/SEM/CI)+n | figure_export / color_palettes |
| ③ | 诚实性=critical | 柱图须零基线(Cairo:截断是「最普遍的图表谎言」);不双 y 轴伪相关;不 jet/rainbow(非感知均匀+色盲不安全);不把不显著当主图 | visual_honesty_gate(critical) |
| ④ | 渲染后真看一眼 | 渲染 PNG→抽 AABB 查标签重叠/图例压数据/溢出→喂多模态按 rubric 打分;无渲染器如实标 pixel_review_done=False | figure_visual_qa(消费 _shared/visual_qa) |
| ⑤ | 程序化生成绝不 AI 生图 | 论文数据图一律 matplotlib/seaborn/R 代码生成(可复现+可核);记录数据指针+随机种子+生成脚本 | NEVER 红线 |
| ⑥ | 院士会问 | 这图诚实吗?误差棒标了吗?黑白/色盲能辨吗?支撑哪条 claim?超预算/冗余了吗? | self-check 清单(见 Level 3) |
Level 2 · 工作流(规划 → 绘制 → 诚实门 → 渲染回看)
A. 规划(图服务论点 + 选型 + 集合预算)
- 盘 claim→图清单:消费 paper-writing 的 claim 规划 + result-analysis 的
evidence_strength.json。每条核心 claim 配 一张图/表,标优先级(必做/可做/可删)。主图绑的 claim 证据档须 weak+(见 NEVER 3)。 - 选图型:
python recommend_chart.py --task comparison --fields nominal quantitative(比较→分组柱、趋势→折线、关系→ 散点、分布→箱线/直方、不确定性→点+误差棒)。诚实:这是启发式(Cleveland-McGill 感知精度),最终人定。 - 填规划卡:用
templates/figure_plan_card.md(图)/templates/table_plan_card.md(表)。 ⚠ 填claim_id精确绑 result-analysis 证据档(留空则按文本语义匹配)。 - 校验 + 集合预算:
python validate_plan_card.py F1.md ...(栏宽键/figure_id 唯一/source_card 必填)+python audit_figure_set.py F1.md F2.md T1.md --cap 8(计数对照 venue 上限 + 反冗余)。- ✅
--cap取目标刊作者指南权威值(NeurIPS 9 页/CVPR 8 页/刊作者指南)。 - ❌ 不臆测某刊上限;无 cap 只报计数 + 6-8 件软参考。
- ✅
B. 作図(出版品質+色覚多様性への配慮+誤差棒)——プログラムによる作図のみ。AI による画像生成は絶対に行いません
- エンジンを選択(Python/R の二経路、R3):
python r_ggplot.py --detectで R+ggplot2+scales が利用可能か検出し、図の種類に応じて振り分けます:- 統計/バイオインフォマティクス/社会科学の図(フォレストプロット/箱ひげ図+生データ点/ファセット/相関行列/pointrange)→ ggplot2 のほうがエレガントです。R が利用可能なら ggplot2 を使用します。
render_ggplot('forest', rows, mapping, out_base, journal='nature')(.R+ggsaveを出力。dazhiyang のレシピに従い、欄幅+Wong+viridis の分位点+Times の単一フォントサイズ+ベクター PDF を設定します)。 - 汎用のプログラム作図(折れ線/汎用棒グラフ/ヒストグラム/散布図)→ 検証済みの matplotlib 経路(figure_export)を使用し、R を起動する必要はありません。
- R が利用できない場合 → まず
r_ggplot.py --detectのr_advisoryを確認します。対話型の場面では、「matplotlib による正直なダウングレードを続行する/R+ggplot2+scales をインストールまたは設定する/Rscript のパスを指定する」からユーザーに選択してもらう必要があります。 非対話型の自動処理の場合のみ、既定でrender()/render_fallback()による matplotlib への正直なダウングレードを行います(degraded=True+r_advisory。出版仕様には figure_export を再利用し、ggplot の図が生成されたかのように装うことは絶対にありません)。 図の仕様にrequired_engine=Rと記載されている場合、fallback は診断にのみ使用でき、納品物にはできません。figure_contract.pyがこれを阻止します。 - 正直さを保つため、
recommend_engine(chart_type)でエンジンと理由を提示します。ggplot 経路では実際に作図し、file.existsで検証します。R コード文字列を書き出しただけでは作図したことになりません。 - どちらの実際の描画経路も
light.figure_build.v1を出力します。内容は、データ/コード/result-card の hash、engine/package のバージョン、 mapping/stat/scales/coordinates/facets/theme/device、最終サイズ(mm)、パッケージ内の相対outputs[].path、実ファイルの hash です。
- 統計/バイオインフォマティクス/社会科学の図(フォレストプロット/箱ひげ図+生データ点/ファセット/相関行列/pointrange)→ ggplot2 のほうがエレガントです。R が利用可能なら ggplot2 を使用します。
- 色の選択:
color_palettes.py——離散色は Okabe-Ito(8 クラス以下で、3 種類の色覚多様性に対応)、連続色は viridis/cividis(知覚的に均一で、グレースケール印刷にも対応)。- ❌
cmap='jet'/'rainbow'は絶対に使用しません(緑と黄色の境界でコントラストが急増し、濃い青の部分では差がつぶれ、色覚多様性のある人には色が見分けにくくなります)。
- ❌
- 適切に作図する(matplotlib/seaborn/R コード):
- ✅ 棒グラフはゼロ基線にします。差を強調する場合は断軸(brokenaxes)を使い、図注で説明します。
- ✅ 誤差棒には種類(SD/SEM/CI)+nを明記します(Cumming 2007:SEM の棒が重なる場合は p>.05、CI の半幅が重なる場合は p≈.05。選択を誤ると意味が変わります)。
- ✅ 色以外の冗長な符号化(線種/marker)も加え、白黒でも判別できるようにします。
- ❌ 二重 y 軸による見せかけの相関(代わりに 2 つの panel に分割します)。❌ 小標本の棒グラフで分布を隠すこと(代わりに散布図/箱ひげ図に生データ点を重ねます)。
- 出版品質での出力:
save_for_journal(fig, base, journal='nature', column='single')(figure_export.py で物理的な欄幅 mm+最小フォントサイズ+ベクター/ビットマップの dpi を固定します)。check_figure_size/check_scaled_fontsで再確認します(bbox tight による意図しない切り取りを避け、縮小後のフォントサイズが掲載誌の下限を下回らないようにします)。 - 仕様↔ビルド↔caption の相互チェックゲート:
python figure_contract.py --input templates/figure-delivery.example.json。 公開テンプレートにはプレースホルダーが含まれているため、non-pass になるのが想定どおりです。実際の納品では、renderer が生成した build manifest、実際の n/ analysis set/uncertainty、result-analysis result card/evidence_strength locator と SHA-256、paper-writing claim plan locator/SHA-256、 guardrail status/claim_impact、最終的な物理サイズと CVD/グレースケールでの確認証拠に置き換える必要があります。outputs[].pathは納品パッケージ内の相対パスでなければなりません。また、sha256は実ファイルから再計算され、一致するか照合されます。
C. 正直さのゲート(critical —— 納品前に必ず通過)
python visual_honesty_gate.py --plot-code plot.py --cards F1.md F2.md --evidence evidence_strength.json --cap 8 --report fig_findings.json
6 つの gate → light.findings.v1(producer=figure):
- critical:
visual_honesty(y 軸の切り詰め/二重 y 軸/3D)、misrepresent_evidence(must 図を grade=none の claim に紐付ける)。 - warn:
error_bars(誤差棒がない/種類が明記されていない)、colormap(jet/rainbow)、display_budget(予算超過)、panel_redundancy(冗長)。 - 総合制御
run_checkpoint --stage 9 --findings fig_findings.json:critical が 1 つでもあれば → ⛔ exit 1。 - if
visual_honestyが critical(不誠実な作図)→ この段階で再作図して修正(reroute で manual に送る)。正当な作図だと確認できた場合 → run_checkpoint で FAIL→PASS を承認し、notes に記録します。 - if
misrepresent_evidenceが critical(有意でない結果を主図として扱う)→reroute --stage 9で 9→7 を提案し、停止してユーザーに確認 → 決定後、passport add-back-edge --to 7 --from 9を実行します。
D. レンダリング後の確認(render-then-look)
python figure_visual_qa.py --shapes shapes.json # 纯几何;或在绘图脚本里 import run_geometry_qa(fig=fig)
- matplotlib のテキスト/凡例 AABB を抽出 →
_shared/visual_qaの幾何エンジンに渡す(ラベルの重なり/はみ出し/位置合わせ)→light.visual_qa.v1。 - 実際に目視確認する:レンダリングした PNG を
visual_qa_rubric()とともにマルチモーダルモデルに渡し、項目ごとに採点して問題を特定します(凡例がデータに重なる/目盛りが詰まる/サブプロットの位置がずれる)。 - ⚠ レンダラーがない、またはモデルに渡していない場合は、
pixel_review_done=Falseと正直に記載し、成功したかのように黙って扱いません。
Level 3 · スクリプトのリファレンス+self-check+名称と実態の整合性
脚本一览
| 脚本 | 职责 | 严重度/产物 |
|---|---|---|
visual_honesty_gate.py | 灵魂门 producer=figure:编排下列 + 消费 evidence_strength.json → 六 gate | light.findings.v1(critical/warn) |
figure_integrity_lint.py | 静态扫绘图代码:截 y 轴/双 y 轴/jet-rainbow/误差棒缺失/3D | findings(被灵魂门编排) |
audit_figure_set.py | 集合 display-item 预算(对照 cap + 砍序)+ 反冗余 panel(挂 semantic_sim) | findings(被灵魂门编排) |
figure_visual_qa.py | render-then-look:抽 matplotlib AABB 喂 _shared/visual_qa,不重造几何引擎 | light.visual_qa.v1 |
figure_export.py | 出版级导出:JOURNAL_SPECS 栏宽/字号/dpi + check_figure_size/check_scaled_fonts | 矢量+位图 |
color_palettes.py | Okabe-Ito/viridis 色盲安全色板 + CVD 预览 | 色板 |
recommend_chart.py | 图型启发式推荐(数据字段+任务→候选排序) | 候选+理由 |
r_ggplot.py | R3 python+R 双路径:探测 Rscript+ggplot2 → 可用走 ggplot2 出版图(森林/箱线+原始点/分面/pointrange,配方学 dazhiyang);不可用时给 r_advisory 用户选择门,非交互才诚实降级 matplotlib;复用 figure_export+color_palettes 不重造 | PDF+PNG(真 file.exists) |
figure_contract.py | 核 palette↔变量语义、中点、面积编码、R strict、result card/evidence_strength 绑定、n/analysis set/uncertainty、最终 mm、CVD/灰度与 build hashes;最终 output 必须存在且 hash 匹配 | PASS/UNRESOLVED/FAIL |
validate_plan_card.py | 规划卡契约校验(栏宽键 LIVE 读 figure_export/figure_id 唯一/source_card) | 校验 |
交付前 self-check(院士会问,逐条过)
- 每张图都绑一条 claim,删了能说清缺什么?主图绑的 claim 证据档 weak+(不把不显著当主图)?
- 经验图是否绑定 result-analysis 的 result card 与 evidence_strength locator + SHA-256?
owner_skill=RESULT-ANALYSIS且 build.inputs.result_card hash 一致吗? - 经验图是否绑定 paper-writing 的 claim plan locator + SHA-256?guardrail
WARN的claim_impact是否进入 caption_facts.guardrail_claim_impact? - 一组图 ≤ venue display-item 上限?无冗余 panel(同 claim 同图型族)?
- y 轴没偷偷截断(柱图零基线,截断有断轴标注+图注)?没双 y 轴伪相关?没 jet/rainbow?
- 误差棒标了类型(SD/SEM/CI)+n?显著性标注齐?
- 色盲安全(Okabe-Ito/viridis + 冗余编码)?黑白可辨?字号达刊下限(缩放后)?
- 渲染后真看过一眼(标签不重叠、图例不压数据、不溢出)?
- 所有图程序化生成(有代码+数据指针+种子),无 AI 生图?
-
light.figure_build.v1暴露 mapping/stat/scales/coord/facet/device,规格↔构建↔caption 门通过? -
light.figure_build.v1的outputs[].path是包内相对路径吗?真实文件存在且sha256与文件字节一致吗?manifest 没泄漏本机绝对路径吗? - 过了
visual_honesty_gate(无 critical)?
名実の整合(誠実な境界、鉄則 2)
- 静的 lint が検出するのは「形状が疑わしい」ものであり、「誤解を招くと証明された」ものではありません:
AXIS_TRUNCATEは「ylim≠0 かつ軸の切断表示がない」ものを検出しますが、軸の切断が完全に妥当な場合もあります (Correll 2019《Truncating Y-Axis: Threat or Menace?》の実証研究);TWIN_AXISは twinx の存在を検出しますが、二軸が正当な場合もあります。→ critical はデフォルトで ブロックしますが、本当に誤解を招くかの最終判定には図注と人/査読者が必要です。正当な場合は run_checkpoint による承認で FAIL→PASS にし、notes に記録します(spec §6)。 - 図↔主張の紐付けはヒューリスティックです:まず
claim_idの完全一致を優先し、それ以外は主張テキストとの意味的類似度(≥0.6)で照合します。一致なし→証拠レベルは不明→flag しません (保守的な設計により、critical の誤検知を減らします)。図ごとの厳密な照合には、計画カードにclaim_idを記載する必要があります。 - misrepresent_evidence / figure_contract が検証するのは「図に対応する証拠の強さ、result-card provenance、paper-claim-context」であり、「証拠の真偽」ではありません:「主図に紐付けられた claim が有意性に達しているか」「図の成果物から result-analysis result card まで追跡できるか」「guardrail の制約が caption に反映されているか」のみを検証し、結論が正しいかどうかは検証しません(それには再現や査読が必要です)。
- rainbow は critical ではなく warn とします:静的 lint では「順序のあるデータ(禁止すべき)」と「カテゴリデータ(図注で正当化できる場合がある)」を区別できないため、warn に引き下げます(誠実な格下げ)。誤検知で DAG を不必要にブロックしません。
- 誤差棒/色覚多様性の検出には限界があります:「種類が記載されていない/jet が使われている」ことは検出できますが、SD/SE/CI のどれを使うべきか、重なりが有意か、カテゴリデータの rainbow が本当に誤解を招くかは、引き続き人が判断する必要があります。
- render-then-look は、マルチモーダルモデルに実際に入力して初めて検証とみなされます:幾何レイヤーで検出できるのは、計算可能なレイアウト上の明確な誤りのみです。視覚的な美しさ/階層/可読性の細部は人またはマルチモーダルモデルによる確認が必要です。未実施の場合は、正直に
pixel_review_done=Falseと記録します。 - プログラムによる生成で AI 画像を使わないことは恒久的な最低条件であり、「推奨」ではありません:figure では、論文のデータ図を描くために生成画像モデルを一切呼び出しません。
- R パスには環境上の前提があります(R3 名実の整合):ggplot2 と scales には、ローカルマシンへの R とパッケージのインストールが必要です(
r_ggplot.py --detectで Rscript+requireNamespace("ggplot2")+requireNamespace("scales")を検出)。検出できない場合は、r_advisoryで不足しているものと次の 3 つの選択肢を明示します(matplotlib を使い続けて正直に格下げする/R とパッケージをインストールまたは設定する/Rscript のパスを指定する)。独断で R や R パッケージをインストールしてはいけません。対話型の場面ではまずユーザーに確認し、非対話型の場合に限り格下げしてdegraded=Trueと記録します。ggplot の図を出力したかのように装ってはいけません。R は必ず.Rファイルに記述してからRscript file.Rを実行します(インラインの-eは使いません。Windows では引用符や\nが文字化けして消費されることがあるためです)。プローブ/セルフテスト用の一時.Rファイルはリポジトリの.upgrade/_e2eに配置します。selftest では実際に図を 1 枚出力し、file.existsで検証します。R コード文字列を書き終えただけでは完了とみなしません。 - 競合製品についての誠実な再説明(Round 2 R1):軸の切断/二軸/render-then-look/出版規格/色覚多様性への配慮は同種のツールで広く共有される考え方です(scipilot 530★ の 18-pitfall、davila7 28.2K★ の 13-pt checklist がいずれも対応しています)。Light 独自のものではありません。Light の真の追加価値は、同じ catalog を決定論的な機械判読可能な critical ゲートにし、result-analysis の証拠レベルに紐付けること(
misrepresent_evidence、同種のツール 10 件では対応なし)+ 9→7 の再処理 + 集合予算です。同種のツールはすべて prose ルール + refusal ヒューリスティック + 人手の checklist です。truth_source §0.A/§0.C を参照してください。 - MCP もローカルライブラリも使いません:framework の図は Draw.io(diagram-as-code、CLI でエクスポート)/TikZ でプログラムにより生成し、MCP に依存しません。venue の仕様はオンラインで確認するか、ユーザーから提供してもらいます。ローカルの学術誌ライブラリは内蔵しません。