mcpField
E
editaplot

editaplot

github.com/hang-jin数据与数据库1.0k44 次安装2 天前更新
代码仓库

关于 editaplot

EditaPlot 是一项将科学问题和只读表格转换为可编辑 Origin 图表的技能,面向科研数据制图流程。它引导用户检查数据、选择图表、确认方案,并在受支持的 Windows 系统上渲染和核验结果。

主要功能

  1. 01科学表格检查
  2. 02图表建议与规划
  3. 03渲染 Origin 图表
  4. 04可编辑输出与回读
  5. 05绑定哈希的决策确认

适用场景

  1. 01根据科学表格创建 Origin 图表
  2. 02为研究问题比较图表选择
  3. 03渲染并核验已确认的图表

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/hang-jin/editaplot --skill editaplot

安装后在 Claude Code 中输入/editaplot确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

LICENSE
NOTICE
agents/
openai.yaml
assets/palettes/
palette-catalog.json
references/
chart-selection.md
data-contracts.md
figure-contract.md
origin-safety.md
palettes.md
reference-figures.md
runtime.md
semantic-understanding.md
showcase.md
verification.md
scripts/
bootstrap_editaplot.py
editaplot_core.py
editaplot.py
requirements-runtime.lock

详细介绍

EditaPlot

将科学问题和只读表格转换为可审计、可编辑的 Origin 图表。让初学者通过对话轻松上手;使用确定性引擎进行检查、规划、渲染、导出和回读。

仅请求范围明确的 Windows 权限

  • 读取完整的代码仓库、所选表格和可选的本地参考图像。
  • 仅写入 EditaPlot 代码仓库、当前用户的 Codex Skill 目录,以及所选源文件的父文件夹(用于生成与源文件相邻的交付文件)。
  • 在同一活动的 Windows 交互式用户会话中运行本地启动器、PowerShell/Python 子进程,以及由 EditaPlot 管理的 Origin 实例。
  • 普通 Codex 命令可能最初在隔离账户下运行。如果 Origin 工作进程返回 origin_codex_sandbox_context,请针对该确切的 origin-smoke 或 render 命令提交正式且范围明确的本地执行请求。只有在该确切请求获批后(无论是用户在收到提示时批准,还是已配置的 Codex 自动审核器批准),才重新运行该命令。请求不保证获批;此交接并非绕过沙箱。绝不要要求用户将命令复制到单独的 PowerShell 窗口,也不要扩大请求范围以获取管理员权限或系统配置访问权限。
  • 仅将网络访问用于下载/更新代码仓库和获取锁定的依赖项。用户范围内通过 winget 安装 Python 属于单独的系统更改,仍须获得明确同意。
  • 不要请求管理员权限、鼠标控制、整块磁盘写入权限、将私有输入上传到云端,也不要请求 DCOM、注册表、防火墙、用户组或 Origin 安装方面的更改。如果受控文件夹访问、组织策略、云同步或只读位置阻止写入,请仅请求访问受影响的文件夹,或请求用户明确指定其他输出文件夹。

从初学者路径开始

  1. 在安装任何内容之前,先拒绝不受支持的平台。仅在实体 Windows 10/11 x64 搭配 64 位 CPython 3.10–3.12 的环境中支持 CLI/依赖项层。通过外部 originpro 支持 Origin/OriginPro 2021 及更高版本;Origin 2020b 及更早版本不支持此安装途径。目前完全验证过的实际基线是 CPython 3.10 + Origin 2024b / 10.15。在其余 2021+ 版本通过冒烟测试和完整产物验证之前,应将其视为受能力门控,而非自动视为已验证。明确说明,V1 不支持 macOS(Intel/Apple Silicon)、Linux、WSL、Wine/CrossOver、Parallels 及其他虚拟机。doctor 无法可靠检测每一种虚拟机;如果无法确定是否为实体 Windows 主机,请用户确认。
  2. 在已安装的 Skill 目录中找到 editaplot.cmd;从克隆的仓库操作时,使用仓库根目录中的 editaplot.cmd。命令中使用启动器的绝对路径。不要让初学者选择 Python 可执行文件,也不要让他们直接调用 scripts/editaplot.py。
  3. 首次安装必须使用完整仓库。运行仓库根目录下的 editaplot.cmd setup;绝不要指导用户只复制 skill/editaplot,因为这样会漏掉运行时。有关设置、发现和命令详情,请阅读 references/runtime.md。
  4. 复用已有的兼容 Python。如果没有,请用中文说明安装 Python 会对系统进行更改。先运行 winget show,并说明确切的发布者、来源和协议。只有用户明确确认后,才可在之后以非交互方式安装 Python.Python.3.12,并指定用户范围和 x64 架构。如果无法使用 winget,请提供 python.org 官方 Windows 安装说明并等待用户操作;绝不要使用不可信镜像,也不要暗中安装 Python。
  5. 每个新工作流都运行 editaplot.cmd doctor。仅允许使用 doctor --repair 修复其报告中指出的项目本地 Python 依赖项。所有 Python 包都必须保留在 .editaplot-venv 中。将 Origin 视为由用户本地安装和管理的应用程序;修复期间绝不要安装或修改它。
  6. 新建表格时运行 editaplot.cmd start <data-file>。如果用户说明了目标,则添加 --intent "<user intent>"。将其检查和建议载荷视为内部工作状态。使用附件提供的原始本地源路径。如果宿主仅提供临时复制的附件,且无法恢复原始文件夹,请在渲染前询问一次用户打算使用的本地源文件夹/输出文件夹;绝不要猜测无关的工作区位置。
  7. 选定候选模板后,使用规划时将采用的同一套已确认映射运行 editaplot.cmd understand <data-file> --template-id <id>。将结果整理成简短清单:数据类型;要绘制的列;仅用于辅助或验证的列;保留但不绘制的列;拟议的图形元素;以及不会执行的计算。每个源列必须且只能出现一次。如果任何项目标记为 uncertain,请用户修正映射并再次运行 understand;不得确认或规划该映射。
  8. 对初学者只说明:识别出的内容;最适合的 1 至 3 种图表;这些图表适用的原因;以及仍需做出的最小科学决策。不要展示 inspect → recommend → understand → plan 流程或原始 JSON,除非用户要求技术细节。
  9. 请用户确认一句话的科学目的和简明元素清单。将确切的 proposal_hash、已批准的派生项 ID 和已解决的歧义选项固定到 --semantic-confirmation-json 中。如果源文件、映射、目的或提案哈希发生变化,绝不要复用确认结果。当置信度较低、候选项差距较小、角色或单位有歧义,或提议了显示转换时,只询问所需的补充重点问题。
  10. 如果用户提供了参考图,先运行 reference-inspect。随后 Codex 只能在严格的 ReferenceFigureSpec JSON 中描述其分面/标记/编码/布局/样式规范,并运行 reference-review;运行时不执行 OCR 或模型推理。展示采纳和拒绝的特征,将每个关键标记绑定到已确认且可渲染的用户数据,并获取单独的哈希绑定确认。绝不要将参考图中的数值、标签、拟合结果、相位分配、作者文本、徽标、水印或位图复制到 Origin 项目中。优先采用经过验证的 template_adaptation;在确切组合方式通过完整的 Origin 证据门控之前,禁止使用 controlled_composition。参考图不能补充缺失的证据,也不能更改已确认的科学元素列表。 将从参考图推断的样式视为建议,而非用户指令。请用户从三种模式中选择:保留已验证的模板默认值;使用参考图建议且已确认并列入允许列表的近似值;或提供精确自定义值。对于精确模式,分别询问颜色、物理线宽、填充透明度、页面大小,以及图例的可见性、边框或位置。用户明确选择的内容优先于冲突的参考标记。将每项参考图建议固定为 applied、retained_template_default 或 rejected;除非所选模板使用相同且已验证的预览/Origin 路径,并且已读取所需的 Origin 对象,否则绝不要声称已应用某项请求。
  11. 当颜色可由用户选择时,运行 editaplot.cmd palettes,展示 assets/palettes/palette-selector-public.zh-CN.png,并推荐不超过两个兼容的 palette_id 值。固定调色板前,请阅读 references/palettes.md。
  12. 在内部通过 editaplot.cmd plan 固定已确认的选择;绝不要手动编辑计划,也不要将决策写回源文件。对于精确 XPS 请求,将已确认的值写入单独的 JSON 对象,并通过 --visual-style-json 传入其路径。支持的精确字段为 series_colors、line_width_pt、fill_transparency_percent、page_size_cm、legend_visible、legend_position 和 legend_frame。无效的显式字段或值必须立即报错,并与用户共同修正;绝不要静默丢弃它们,也不要回退到参考图样式或默认样式。渲染命令会将此已批准计划复制到最终输出文件夹,文件名为 render-plan.json。
  13. 将 Origin 就绪状态仅视为技术状态。Doctor 会以只读方式发现 Origin.Application、Origin.ApplicationSI、已安装候选项、Python、originpro 和 OriginExt;它不会启动 Origin,而 ready_for_render 绝不表示实时连接已成功。如果存在默认启动注册项,则继续执行实际的渲染前冒烟测试,无须询问用户是否已打开 Origin 或再次确认。面向初学者的输出限于 1 至 3 句通俗说明;将 CLSID、注册表视图、候选项和阶段留在 JSON 中。将经过脱敏的 origin_execution_context 与 ready_for_render 分开读取。codex_sandbox 状态要求在调用 COM 前执行上述精确命令审批交接;只有获批的请求才可重新运行。自动审查仅评估该单次请求,不会预先授予 Origin 访问权限。Windows 执行上下文为 unknown 时必须默认拒绝,且这不构成审批请求:停止调用 COM,并报告无法验证当前 Windows 身份。
  14. 使用 launch_isolated 运行 editaplot.cmd origin-smoke --output-dir <unique-smoke-directory>:启动并控制一个专用 Origin 实例,执行实时冒烟测试和版本握手,然后应用模板能力判定。此命令在规划后、正式渲染前必须运行。attach_existing 仅是明确选择的高级模式;绝不要重置、覆盖或关闭用户拥有的项目,并应断开连接而不是退出。按技术阶段和下一步报告失败情况,不要臆测。 绝不要使用鼠标自动化,也不要提供应用程序补丁或绕过说明。运行时必须尝试清理由 EditaPlot 激活但未完整启动的实例;仅当清理成功时,才可针对可重试的启动代码尝试一个全新的隔离实例。清理失败时返回 origin_activation_cleanup_failed 并停止。随后必须使用 sec -poc 30 等待,并在读取版本或创建项目之前确认 run.isOCready()。绝不要循环重试、切换到 ApplicationSI、修改 DCOM/注册表权限,或告知初学者以管理员身份运行整个工作流。自动尝试用尽后,最多请求在同一活动 Windows 用户上下文中批准一次重试,并使用一个全新的空白同级冒烟目录,以保留第一份报告。origin_com_class_not_registered 和 origin_com_activation_access_denied 必须停止,且不得自动重试。不要仅仅因为 Python 工作进程运行时间较长就强制终止它:它可能控制着一个隐藏的 Origin 实例。保留诊断信息,并在建议任何由用户控制的取消操作前报告最后一个进度阶段。 将沙箱审批交接与激活重试区分开:前者发生在调用 COM 之前;后者仅在执行有界的激活/清理策略之后才可进行。当主要激活和清理都失败时,只公开 primary_activation_code、primary_activation_stage、cleanup_error_code 和 cleanup_error_stage。结构化诊断载荷中绝不要包含 Windows 账户名、本地路径、原始 HRESULT 或原始 COM 文本,也绝不要因为这两组信息同时存在就重试。 当前版本的 EditaPlot 工作进程仅在同一个已登录 Windows 会话中串行处理各自正在执行的 origin-smoke / render Origin 部分;数据检查、建议和规划可继续并发。遵循 origin_job_queue 进度:等待时立即发出,之后约每 30 秒发出一次。执行顺序不保证严格遵循先进先出。30 分钟限制仅适用于等待中的任务:超时会停止该等待任务,不会终止或中断当前持有 Origin 的任务。队列消息可见时,不要提交重复任务。手动脚本、较旧版本的 EditaPlot 和无关程序不属于此协调范围。
  15. 仅在冒烟测试通过后,才使用 editaplot.cmd render <plan> 渲染允许的模板路径。成功后保持由 EditaPlot 控制的 Origin 实例打开,除非用户另有要求。默认情况下,让运行时在源文件同级创建名为 <source_stem>_EditaPlot_YYYYMMDD_HHMMSS 的文件夹,并将所有正式产物保存在其中。普通运行不得将输出重定向到仓库、Skill 目录、当前工作目录或共享的全局输出文件夹。只有用户明确要求其他位置时,才使用 --output-dir。
  16. 对该源文件同级文件夹运行 editaplot.cmd verify <output-directory>,并执行人工视觉 QA。如果冒烟测试或渲染失败,Python 预览或独立的 PNG/PDF/SVG 仅为预览,不得作为已完成的 Origin 工作呈现。正式成功必须同时包含可编辑的 OPJU、PNG、PDF、TIF、对象回读和人工视觉 QA。 在进行任何渲染之前,请阅读 references/origin-safety.md、references/figure-contract.md 和 references/verification.md。对于新表格或图表的选择,请阅读 references/data-contracts.md、references/chart-selection.md 和 references/semantic-understanding.md。提供参考图像时,还请阅读 references/reference-figures.md。

科学决策由用户做出

  • 将原始数据文件视为不可变。切勿覆盖该文件、补填缺失的源列或编造测量值。仅允许在内存中或可编辑的 Origin 项目中使用辅助列。
  • 规划前,先将每个源列分类为主要绘图、次要绘图、仅供支持、保留但不绘图或不确定。仅供支持和保留的列不能因参考图而变为可见。未知数值列意味着需要提出问题,而不是自动新增一条曲线。
  • 区分科学分析与显示变换。切勿悄悄归一化、平滑、拟合、移除异常值、计算误差线、识别相或推断材料峰。
  • 对于 GSAS/GSAS-II Rietveld 数据,应区分 Observed、Calculated、可选的 Background、已提供的 Difference、明确的 Phase 位置,以及不用于绘图的控制/诊断列。原样保留上游 Publication Diff;切勿再次应用显示偏移。
  • 对于 XPS,将外观偏好与科学约定分开。用户可以明确要求精确的系列颜色、实际线宽、填充透明度、安全的页面/纵横比,以及图例的显示/隐藏、无边框或位置选项。仅应用所选且经过验证的 XPS 绘图器支持并能读回的字段;否则保留默认值或明确拒绝该字段。用户的样式要求和参考图都不得更改源值或列角色、高到低的结合能坐标轴约定、组分身份、残差处置方式,或经过验证的单区域 set_fill_area(..., type=9) / -pfm 3 填充实现。
  • 对于 SHAP,仅接受外部预先计算的逐样本贡献值。切勿训练模型或调用 SHAP。平均 |SHAP| 和可选的组百分比只能使用语义提案中记录且经明确批准的允许公式汇总所提供的行;切勿编造贡献值或悄悄重新排列特征。
  • 用户要求分别展示重要性条形图、蜂群图和双层贡献环图时,选择 shap_dashboard。必须明确指定 Feature Group,使用同一个总 Mean |SHAP| 分母确认特征/组百分比,并提供蓝–白–酒红、紫–绿–黄或红–黄–蓝配色。将选择固定为映射 plot_mode dashboard_blue_red、dashboard_viridis 或 dashboard_red_blue;不得以通用分类调色板替代这一连续色阶。
  • 确认未知单位、误差语义、百分比分母、有意义的顺序、双轴,以及任何其他可能改变论述结论的选择。
  • 应根据科学问题和数据结构,而不只是外观来推荐。即使图表在技术上可绘制,也要拒绝会造成误导的图表。
  • 将模板路由状态(verified、experimental 或 unsupported)与当前主机兼容性(verified、compatible_unverified 或 blocked)分开。切勿将 compatible_unverified 的 Origin 版本重新标记为已验证;只有在其实时 smoke 测试成功且所选模板所需功能可用时才继续。
  • 拒绝装饰性 3D。必须要求第三轴具有科学意义;在 Z 轴、相机、OpenGL 类型、源映射、四种导出、可编辑 OPJU、读回和视觉 QA 全部通过前,新的 3D 路由都应保持为实验性。
  • 对于已验证的 density_ridgeline3d,只接受 2–6 个真实带单位条件的 mixed-wide 六角色表:上游提供同语义、同单位的实线/虚线预计算密度,并为每组提供恰好一个 Focal X。焦点固定为 Z=0 基线定位标记;不要计算 KDE、峰值、阈值、交点或焦点。当前主机还必须先通过实时 smoke 与 OPEN_GL_3D 能力检查,不能只凭模板已验证就跳过主机门禁。
  • 不得将所选文件发送至任何其他网络服务,也不得将其纳入公开产物。通过 Codex 明确提供的文件仍受用户的 Codex 账户、组织和保留政策约束;不得声称 Skill 可以覆盖这些政策。
  • 检查医疗数据或参考图像前,必须要求用户确认材料符合其机构规则、已去标识化,并已检查是否包含烧录文本。
  • 将 panel-plan 视为兼顾去标识化的版面布局与证据门禁,而非 OCR、PHI 检测器、医学图像编辑器或合并后的可编辑 Origin 项目。保留每个已验证的子项目。

应用以出版规范为参考的契约

  • 让每张图表都明确论证一个结论或承担一种证据作用。
  • 使用白色背景、Arial、克制的配色系列和清晰的层级,不使用彩虹配色、装饰性 3D 效果或缺乏依据的网格线。
  • 根据图表类型、数据密度、系列数量和标签长度确定 Origin 的实际尺寸。只有明确要求固定尺寸的配置(例如旧版固定 C 1s)才保持固定尺寸。
  • 正确转换有文档记录的点数、线宽和页面尺寸单位。切勿将较小的期刊页面字体值直接复制到 Origin API 字段中;应读取生成的坐标轴和文本对象进行核验。
  • 确保同一条件在相关面板中的颜色一致。将调色板 ID、精确的 HEX 值、允许的模式、安全的类别数量和无障碍限制固定在计划中。
  • 明确的用户样式要求优先于从参考图像推断的样式标记。颜色、线宽、透明度、页面/纵横比和图例要求仍须通过功能支持性检查,并在渲染前归类为已应用、保留默认值或已拒绝。
  • 不要让参考图像或未经核实的外观偏好悄然改变 XPS 组分、有符号效应、热图、诊断线、混淆矩阵或类似证据的语义颜色映射。只有通过该路径独立核实的覆盖设置,并明确系列映射且读取结果进行核验后,才允许替换映射。
  • 为每个医学面板指定一个独立的证据作用。组合定量面板前,先固定共享的条件到颜色映射;使用共享图例时,必须明确确认其语义。
  • 优先使用可编辑的标签和 Origin 对象。Python 预览图或嵌入式位图不能作为 Origin 交付物。
  • 将结果称为“以出版规范为参考”,绝不可称为“符合 Nature 规范”或“获期刊认可”。

用通俗语言报告结果

返回识别出的数据形状和作用、选用的图表及其他方案、置信度和已确认的转换、源文件附近的输出文件夹、复制的计划、OPJU/PNG/PDF/TIF 路径、验证/回读路径,以及仍需人工检查的事项。面向初学者时,将内部标识符转换为自然语言,用一到三句话概述环境状态,并将技术路径放在简明结果之后。

按需加载详细参考资料

  • references/runtime.md:启动器、设置、Python 发现、CLI 命令和产物。
  • references/chart-selection.md:图表类别、排序规则和支持级别。
  • references/data-contracts.md:支持的布局、列语义和修复指南。
  • references/semantic-understanding.md:各列用途、元素检查清单、派生数据沿袭和基于哈希的确认关卡。
  • references/reference-figures.md:安全的参考图语法、绑定、调整限制和单独确认。
  • references/figure-contract.md:证据逻辑、视觉层级、排版和颜色规则。
  • references/origin-safety.md:本地 Automation 和已验证 API 的防护规则。
  • references/verification.md:必需产物、回读和视觉质量检查。
  • references/showcase.md:中性演示数据和图库政策。
  • references/palettes.md:中文调色板选择器、兼容性和无障碍限制。

评论

支持 Markdown