Not in the top 1,000 by GitHub stars
chuspeeism/doubaoplot
DoubaoPlot — 在豆包/豆包工作里用 Origin 画可编辑的科研图,也支持 Codex、Claude Code。基于 hang-jin/editaplot 的二次创作,增加 45 图可点选择器。
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
skill/doubaoplot/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → fceec594ad14
No earlier version was observed for comparison.
Verified commit fceec594ad14244c9421cf75706b212febe532a5
git clone --filter=blob:none --no-checkout https://github.com/chuspeeism/doubaoplot.git .hotskills/chuspeeism-doubaoplot && git -C .hotskills/chuspeeism-doubaoplot checkout --detach fceec594ad14244c9421cf75706b212febe532a5
# Copy each selected skill directory from .hotskills/chuspeeism-doubaoplot into .agents/skills/<skill-name>/Heat
2.4- Star growth, last 7 daysNot available
- Star growth, last 24 hoursNot available
- Rank movement, last 7 daysNot available
- Commits, last 30 daysNot available
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekNot available
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
30-day change not yet available: not enough history.
Individual skills in this repository
- doubaoplot
skill/doubaoplot
How it works
doubaoplot
When your agent uses it
DoubaoPlot。针对豆包/豆包工作优化,Codex、Claude Code 等 Agent 同样可用。把本地科研数据(CSV/TXT/XLS/XLSX)画成可继续编辑的 Origin 图。两种用法:① 用户给了参考图就复刻其绘图风格;② 用户只有数据、说不清要画什么图时,弹出图表选择器让他从 45 张真机示例里点一张。覆盖 XPS、XRD、XAS、PL/TRPL、DSC、NMR、FTIR/IR、UV-Vis、电化学、医学与机器学习证据图、分布、关系、误差棒、柱状、堆叠、饼图、桑基、雷达、热力图以及已验证的三维路线;产出可编辑 OPJU 并导出 PNG/PDF/TIF。Analyze local scientific CSV, TXT, XLS, or XLSX data; recommend publication-informed charts and Chinese scientific palettes; freeze a reproducible plan; and automate editable figures through a callable local Origin/OriginPro installation on physical Windows 10/11 x64. Do not use on macOS, Linux, WSL, Wine/CrossOver, Parallels, or other VMs; to install or modify Origin; to redistribute reference images; or to claim an unverified Origin route.
What it loads into context
Frontmatter
305 tokensAlways available to the agent
SKILL.md
7,457 tokensWhen the skill is activated
Reference documents
22,337 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 先把安装这件事讲清楚(豆包工作版新增)
- 先决定走哪条路(豆包工作版新增)
- Request only scoped Windows permissions
- 成品展示约束
- Start with the beginner path
- Keep scientific decisions with the user
- Apply the publication-informed contract
- Report the result in plain language
- Load detailed references only as needed
Scripts executed separately
scripts/bootstrap_editaplot.pyscripts/editaplot.pyscripts/editaplot_core.pyselector/selector.py
Files
LICENSEasset11,357 bytesNOTICEasset7,213 bytesSKILL.mdcore31,673 bytesSKILL.mdcore31,673 bytesSKILL.mdcore31,673 bytesSKILL.mdcore31,673 bytesSKILL.mdcore31,673 bytesSKILL.mdcore31,673 bytesSKILL.mdcore31,673 bytesSKILL.mdcore31,673 bytesSKILL.mdcore31,673 bytesSKILL.mdcore31,673 bytesSKILL.mdcore31,673 bytesSKILL.mdcore31,673 bytesSKILL.mdcore31,673 bytesSKILL.mdcore31,673 bytesagents/openai.yamlasset848 bytesassets/palettes/cards/amber_lavender.pngasset55,442 bytesassets/palettes/cards/blue_coral.pngasset55,700 bytesassets/palettes/cards/deep_sea_gold.pngasset54,927 bytesassets/palettes/cards/forest_amber.pngasset54,831 bytesassets/palettes/cards/navy_cyan_gold.pngasset53,094 bytesassets/palettes/cards/navy_ember.pngasset55,579 bytesassets/palettes/cards/ocean_coral.pngasset56,220 bytesassets/palettes/cards/plum_rose.pngasset56,933 bytesassets/palettes/cards/sky_terra.pngasset53,238 bytesassets/palettes/cards/violet_lime.pngasset53,055 bytesassets/palettes/palette-catalog.jsonasset9,063 bytesassets/palettes/palette-selector-all.zh-CN.pngasset469,526 bytesassets/palettes/palette-selector-public.zh-CN.pngasset387,630 bytesreferences/chart-selection.mddoc13,398 bytesreferences/data-contracts.mddoc18,392 bytesreferences/figure-contract.mddoc5,618 bytesreferences/not-covered.mddoc2,822 bytesreferences/origin-safety.mddoc10,901 bytesreferences/palettes.mddoc2,644 bytesreferences/reference-figures.mddoc7,448 bytesreferences/runtime.mddoc22,667 bytesreferences/semantic-understanding.mddoc7,422 bytesreferences/showcase.mddoc4,637 bytesreferences/verification.mddoc3,890 bytesscripts/bootstrap_editaplot.pyruns51,096 bytesscripts/editaplot.pyruns20,778 bytesscripts/editaplot_core.pyruns170,133 bytesscripts/requirements-runtime.lockasset629 bytesselector/chart-selector.htmlasset1,203,964 bytesselector/selector.pyruns7,240 bytes
Read SKILL.md
# EditaPlot
Turn a scientific question and a read-only table into an auditable, editable Origin figure. Keep
the beginner experience conversational; use the deterministic engine for inspection, planning,
rendering, exporting, and readback.
## 先把安装这件事讲清楚(豆包工作版新增)
第一次为某台机器干活时,**先报账,再干活**。用户的挫败感几乎都来自"不知道要等什么、
不知道还有几步",而不是等待本身。
先跑一次(这条命令不依赖引擎,缺引擎时也能跑):
```View the complete source on GitHubSkills included
- doubaoplot
Repository facts
- License
- Apache-2.0
- Created
- Sep 5, 2026
- Last pushed
- Oct 24, 2026
- Forks
- 0
- Open issues
- 0
- Project activity
- Active
Before you install
Network or broad shellAutomated signals, not a guarantee
Checked Nov 5, 2026
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 16 notes
skill/doubaoplot/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskill/doubaoplot/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskill/doubaoplot/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskill/doubaoplot/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskill/doubaoplot/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskill/doubaoplot/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskill/doubaoplot/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskill/doubaoplot/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskill/doubaoplot/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskill/doubaoplot/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskill/doubaoplot/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskill/doubaoplot/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskill/doubaoplot/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskill/doubaoplot/selector/chart-selector.html:1Analysis incomplete: file exceeds text byte budgetskill/doubaoplot/selector/chart-selector.html:377Analysis incomplete: physical or joined line exceeds character limitskill/doubaoplot/selector/chart-selector.html:387Analysis incomplete: physical or joined line exceeds character limit
- No broad tool permissions
- No dangerous shell commands
- 41 network referencesin 7 files: doubaoplot/selector/chart-selector.html:21 doubaoplot/SKILL.md:59 doubaoplot/references/origin-safety.md:151 and 4 more
- 1 obfuscation signalin 1 file: doubaoplot/selector/selector.py:43
- No instruction overrides
- 4 executable scriptsin 4 files: doubaoplot/scripts/bootstrap_editaplot.py:1 doubaoplot/scripts/editaplot.py:1 doubaoplot/scripts/editaplot_core.py:1 and 1 more
- 17 references to secretsin 2 files: doubaoplot/scripts/bootstrap_editaplot.py:97 doubaoplot/scripts/editaplot_core.py:265
- No requests to vote in Hot
Show all 63 signals by file
skill/doubaoplot/LICENSE
skill/doubaoplot/NOTICE
skill/doubaoplot/SKILL.md
- Network accessline 59
$env:PIP_INDEX_URL = "https://pypi.tuna.tsinghua.edu.cn/simple" - Network accessline 62
清华源连不上就换阿里云:`https://mirrors.aliyun.com/pypi/simple/`。 - Network accessline 83
Invoke-WebRequest -Uri "https://github.com/chuspeeism/doubaoplot/archive/refs/heads/main.zip" -OutFile "$env:TEMP\doubaoplot.zip" - Network accessline 106
1. 运行 `python selector/selector.py`。它**不会自己弹浏览器窗口**,只起一个监听本机的服务, 并打印一行 `选择器地址:http://127.0.0.1:<端口>/`。 - Network accessline 107
并打印一行 `选择器地址:http://127.0.0.1:<端口>/`。 - Network accessline 167
bootstrap 本身不包含 runtime,也不能凭空补齐它。**缺 runtime 时不要停在报错上,不要让用户自己 去下载,也不要为「要不要下载」再问一次。** 取本项目仓库属于本 Skill 已声明的网络用途,直接去取: `git clone https://github.com/chuspeeism/doubaoplot.git`(不方便用 git 就下载 Source ZIP 并完整 - Network accessline 168
去下载,也不要为「要不要下载」再问一次。** 取本项目仓库属于本 Skill 已声明的网络用途,直接去取: `git clone https://github.com/chuspeeism/doubaoplot.git`(不方便用 git 就下载 Source ZIP 并完整 解压),进入仓库目录运行 `.\editaplot.cmd setup`,之后用 `--engine-home "<完整仓库>\runtime"` - Network accessline 169
`git clone https://github.com/chuspeeism/doubaoplot.git`(不方便用 git 就下载 Source ZIP 并完整 - Network accessline 382
用户点名要其中任何一种时,先看这份,直接说清楚,不要硬试。 - `selector/selector.py`(豆包工作版新增):图表选择器。用户说不清要画什么图时用它。 它把页面挂在 `http://127.0.0.1:<端口>/` 上,默认不弹系统浏览器——地址交给宿主的内置浏览器打开。 - Network accessline 383
- `selector/selector.py`(豆包工作版新增):图表选择器。用户说不清要画什么图时用它。 它把页面挂在 `http://127.0.0.1:<端口>/` 上,默认不弹系统浏览器——地址交给宿主的内置浏览器打开。 - `references/data-contracts.md`: accepted layouts, column semantics, and repair guidance. - Network accessline 384
它把页面挂在 `http://127.0.0.1:<端口>/` 上,默认不弹系统浏览器——地址交给宿主的内置浏览器打开。
skill/doubaoplot/references/origin-safety.md
- Network accessline 151
- External Python requirements and instance launch behavior: <https://docs.originlab.com/externalpython/> - Network accessline 152
<https://docs.originlab.com/externalpython/> - Network accessline 153
- `Application`, `ApplicationSI`, and `ApplicationCOMSI` lifecycle differences: <https://docs.originlab.com/com/difference-of-application-applicationsi-and-applicationcomsi/> - Official product/service-release and build table: - Network accessline 154
<https://docs.originlab.com/com/difference-of-application-applicationsi-and-applicationcomsi/> - Network accessline 155
- Official product/service-release and build table: <https://www.originlab.com/index.aspx?pid=3325> - Origin 2025b graph-default changes: - Network accessline 156
<https://www.originlab.com/index.aspx?pid=3325> - Network accessline 158
<https://docs.originlab.com/quick-help/why-graph-looks-different-in-2025b/>
skill/doubaoplot/references/runtime.md
- Network accessline 85
These flags follow the [official WinGet install documentation](https://learn.microsoft.com/windows/package-manager/winget/install). - Network accessline 87
If winget is unavailable or fails, stop automatic installation and direct the user to the official `https://www.python.org/downloads/windows/` page for 64-bit Python 3.12. Then run setup again. Never - Network accessline 88
`https://www.python.org/downloads/windows/` page for 64-bit Python 3.12. Then run setup again. Never
skill/doubaoplot/scripts/bootstrap_editaplot.py
- Executable scriptline 1
#!/usr/bin/env python - Access to secretsline 97
[Credential-related source omitted] - Access to secretsline 100
[Credential-related source omitted] - Access to secretsline 118
[Credential-related source omitted] - Access to secretsline 126
[Credential-related source omitted] - Access to secretsline 223
[Credential-related source omitted] - Access to secretsline 317
[Credential-related source omitted] - Access to secretsline 318
[Credential-related source omitted] - Access to secretsline 319
[Credential-related source omitted] - Access to secretsline 320
[Credential-related source omitted] - Access to secretsline 362
[Credential-related source omitted] - Access to secretsline 1039
[Credential-related source omitted] - Access to secretsline 1295
[Credential-related source omitted]
skill/doubaoplot/scripts/editaplot.py
- Executable scriptline 1
#!/usr/bin/env python
skill/doubaoplot/scripts/editaplot_core.py
- Executable scriptline 1
Executable file - Access to secretsline 265
[Credential-related source omitted] - Access to secretsline 2507
[Credential-related source omitted] - Access to secretsline 2590
[Credential-related source omitted] - Access to secretsline 2608
[Credential-related source omitted] - Access to secretsline 2617
[Credential-related source omitted]
skill/doubaoplot/selector/chart-selector.html
- Network accessline 21
<body> <div id="__bundler_thumbnail"> <svg viewBox="0 0 1200 800" xmlns="http://www.w3.org/2000/svg"> - Network accessline 22
<div id="__bundler_thumbnail"> <svg viewBox="0 0 1200 800" xmlns="http://www.w3.org/2000/svg"> <rect x="360" y="180" width="480" height="440" rx="16" fill="#fffdf8" stroke="#cfc7b6" stroke-width="6"></rect> - Network accessline 23
<svg viewBox="0 0 1200 800" xmlns="http://www.w3.org/2000/svg"> - Network accessline 116
// window.origin is the SERIALIZED SECURITY origin ('null' in opaque // contexts such as a sandboxed preview iframe) — location.origin is // computed from the URL and stays 'https://…' even when the document - Network accessline 117
// contexts such as a sandboxed preview iframe) — location.origin is // computed from the URL and stays 'https://…' even when the document // is sandboxed, which would misgate every opaque chain. - Network accessline 118
// computed from the URL and stays 'https://…' even when the document - Network accessline 283
// Artifact-host CSP (connect-src 'self') refuses fetch() of blob: URLs — - Network accessline 355
if ((s.type === 'text/babel' || s.type === 'text/jsx') && s.src) { const pre = resourceBlobs[s.src.split('#')[0]]; s.textContent = pre ? await pre.text() : await (await fetch(s.src)).text(); - Network accessline 356
const pre = resourceBlobs[s.src.split('#')[0]]; s.textContent = pre ? await pre.text() : await (await fetch(s.src)).text(); s.removeAttribute('src'); - Network accessline 357
s.textContent = pre ? await pre.text() : await (await fetch(s.src)).text(); - Network accessline 379
<script type="__bundler/ext_resources"> [{"id":"https://unpkg.com/react@18.3.1/umd/react.production.min.js","uuid":"78befed1-77a3-4a48-9e57-b229f5149ec6"},{"id":"https://unpkg.com/react-dom@18.3.1/umd/react-dom.production.min.js","uuid":"22 - Network accessline 380
[{"id":"https://unpkg.com/react@18.3.1/umd/react.production.min.js","uuid":"78befed1-77a3-4a48-9e57-b229f5149ec6"},{"id":"https://unpkg.com/react-dom@18.3.1/umd/react-dom.production.min.js","uuid":"22eebe31-4891-4a6d-aacb-37da76d4c576"}] - Network accessline 387
<script type="__bundler/template">"<!DOCTYPE html>\n<html><head>\n<meta charset=\"utf-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n<script src=\"07a75ffc-8f01-4908-8082-ce00d56bdf4f\"><\/script>\n\n<\/head
skill/doubaoplot/selector/selector.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 7
1. 起一个只监听本机的小服务,把 chart-selector.html 挂在 http://127.0.0.1:<端口>/ 上 - Possible obfuscationline 43
PIXEL = base64.b64decode(b"R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7") - Network accessline 149
url = f"http://127.0.0.1:{server.server_address[1]}/"
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Some files could not be read; the facts below still hold.
Signal confidence: 45 facts
- Network access in code of the SKILL.mddoubaoplot/SKILL.md:59High confidence
- Network access in prose of the SKILL.mddoubaoplot/SKILL.md:62Low confidence
- Network access in code of the SKILL.mddoubaoplot/SKILL.md:83High confidence
- Network access in prose of the SKILL.mddoubaoplot/SKILL.md:106Low confidence
- Network access in prose of the SKILL.mddoubaoplot/SKILL.md:107Low confidence
- Network access in prose of the SKILL.mddoubaoplot/SKILL.md:167Low confidence
- Network access in prose of the SKILL.mddoubaoplot/SKILL.md:168Low confidence
- Network access in prose of the SKILL.mddoubaoplot/SKILL.md:169Low confidence
- Network access in prose of the SKILL.mddoubaoplot/SKILL.md:382Low confidence
- Network access in prose of the SKILL.mddoubaoplot/SKILL.md:383Low confidence
- Network access in prose of the SKILL.mddoubaoplot/SKILL.md:384Low confidence
- Network access in prose of documentationdoubaoplot/references/origin-safety.md:151Low confidence
- Network access in prose of documentationdoubaoplot/references/origin-safety.md:152Low confidence
- Network access in prose of documentationdoubaoplot/references/origin-safety.md:153Low confidence
- Network access in prose of documentationdoubaoplot/references/origin-safety.md:154Low confidence
- Network access in prose of documentationdoubaoplot/references/origin-safety.md:155Low confidence
- Network access in prose of documentationdoubaoplot/references/origin-safety.md:156Low confidence
- Network access in prose of documentationdoubaoplot/references/origin-safety.md:158Low confidence
- Network access in prose of documentationdoubaoplot/references/runtime.md:85Low confidence
- Network access in prose of documentationdoubaoplot/references/runtime.md:87Low confidence
- Network access in prose of documentationdoubaoplot/references/runtime.md:88Low confidence
- Executable script in code of a file that runsdoubaoplot/scripts/bootstrap_editaplot.py:1High confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valuedoubaoplot/scripts/bootstrap_editaplot.py:97Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valuedoubaoplot/scripts/bootstrap_editaplot.py:100Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valuedoubaoplot/scripts/bootstrap_editaplot.py:118Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valuedoubaoplot/scripts/bootstrap_editaplot.py:126Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valuedoubaoplot/scripts/bootstrap_editaplot.py:223Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valuedoubaoplot/scripts/bootstrap_editaplot.py:317Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valuedoubaoplot/scripts/bootstrap_editaplot.py:318Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valuedoubaoplot/scripts/bootstrap_editaplot.py:319Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valuedoubaoplot/scripts/bootstrap_editaplot.py:320Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valuedoubaoplot/scripts/bootstrap_editaplot.py:362Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valuedoubaoplot/scripts/bootstrap_editaplot.py:1039Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valuedoubaoplot/scripts/bootstrap_editaplot.py:1295Low confidence
- Executable script in code of a file that runsdoubaoplot/scripts/editaplot.py:1High confidence
- Executable script in prose of a file that runsdoubaoplot/scripts/editaplot_core.py:1Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valuedoubaoplot/scripts/editaplot_core.py:265Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valuedoubaoplot/scripts/editaplot_core.py:2507Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valuedoubaoplot/scripts/editaplot_core.py:2590Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valuedoubaoplot/scripts/editaplot_core.py:2608Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valuedoubaoplot/scripts/editaplot_core.py:2617Low confidence
- Executable script in code of a file that runsdoubaoplot/selector/selector.py:1High confidence
- Network access in prose of a file that runsdoubaoplot/selector/selector.py:7Low confidence
- Possible obfuscation in code of a file that runsdoubaoplot/selector/selector.py:43High confidence
- Network access in code of a file that runsdoubaoplot/selector/selector.py:149High confidence
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Compatible | Standard SKILL.md skill/doubaoplot/SKILL.md | .claude/skills/<skill-name>/ |
| Codex | Native | Manifest AGENTS.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md skill/doubaoplot/SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md skill/doubaoplot/SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md skill/doubaoplot/SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md skill/doubaoplot/SKILL.md | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.