Jlceda Plugin Builder
/install extension-dev-skill
JLCEDA Plugin Builder
Build extension plugins for EasyEDA Pro. Provides a complete API query workflow, code generation standards, and debugging toolchain.
Core Principles
- Never guess APIs — Check the Skill's
index.d.tsfirst; if not found = does not exist - Verify class existence before use — Search class name with
grepSearch; no results = do not use - Verify API mount path — The class where a method is defined ≠ the property it's mounted on under
eda - Verify return type methods — Different methods on the same class may return completely different interface types
- Browser APIs are forbidden in the main process — Cannot use
localStorage,window,document; allowed inside iframe - Document type values — SCH=1, PCB=3, FOOTPRINT=4 (PCB is not 2)
When to Use
Applicable:
- Creating or modifying EasyEDA Pro extension plugins
- Querying API method signatures in
@jlceda/pro-api-types - Configuring
extension.json, locales i18n files, or build processes - Automating plugin import/debugging via
eext-dev-mcpMCP tools
Not applicable:
- General TypeScript/JavaScript questions unrelated to EasyEDA Pro
- Non-EasyEDA Pro EDA tools
- Workspace has no
extension.jsonand user did not request initialization
API Query Workflow (Four Steps)
API type definition location: the index.d.ts file bundled with this Skill (sourced from @jlceda/pro-api-types). Always search in this file; do not look in node_modules.
Step 1: Find the Correct Class
grepSearch "SCH_PrimitiveComponent" # Schematic component class
grepSearch "PCB_PrimitiveVia" # PCB via class
Step 2: Verify the Class Is Mounted on the eda Object
grepSearch "sch_PrimitiveComponent:" # Note the colon
grepSearch "dmt_SelectControl:" # Verify mount path
Step 3: Find the Method and Confirm Its Signature
grepSearch "getCurrentDocumentInfo"
Then use readFile to read the full signature and confirm parameter types and return type.
Step 4: Verify the Return Interface Has the Required Methods
# Search the returned interface type to confirm it has the needed methods
grepSearch "ISCH_PrimitiveComponent$1" # Interfaces with $1 suffix usually have more methods
No search results = does not exist. Do not use!
Execution Workflow
- Plan — Understand requirements, confirm target editor (home/sch/pcb) and core functionality
- Init — If workspace is not initialized, run project initialization; otherwise skip
- Query — Dynamically query required APIs (four-step method); every API must be verified
- Validate — Verify all type signatures are complete with no guesswork; if uncertain, return to Query
- Confirm — Present implementation plan to user (API list, dependencies, data flow, file changes); wait for confirmation in Supervised mode. In Autopilot mode, skip this step for straightforward changes; only pause for complex or destructive operations
- Execute — Generate code; each API call corresponds to a verified signature, wrapped in
try/catch - Check — Check runtime environment constraints; confirm no forbidden operations; if violations found, return to Execute to fix
API Verification Checklist (Required Before Using Any API)
-
grepSearchfound the method name; confirmed return type -
readFileread the full signature; confirmed all parameter types and counts - Confirmed
eda.xxx_YYYclass exists in theclass EDAproperty list - Confirmed API is mounted on the correct module
- Verified the returned interface type also has the required methods
- If using
getAllPrimitiveId, must use a concrete type (not an abstract class) - Document type checks use the correct
documentTypevalues
Runtime Environment Constraints
| Requirement | ❌ Forbidden | ✅ Recommended |
|---|---|---|
| Get user input | - | eda.sys_Dialog.showInputDialog() |
| User selection | - | eda.sys_Dialog.showSelectDialog() |
| Show message | alert() |
eda.sys_Dialog.showInformationMessage() |
| Confirm action | confirm() |
eda.sys_Dialog.showConfirmationMessage() |
| Toast notification | DOM manipulation | eda.sys_Message.showToastMessage() |
| Store data | localStorage (main process) |
eda.sys_Storage.setExtensionUserConfig(key, value) |
| Custom UI | Manipulate host DOM | eda.sys_IFrame.openIFrame() |
| Show HTML | showInformationMessage(html) |
Must use iframe |
| Open link | window.open() |
eda.sys_Window.open() |
| Browser hardware API | Use in main process | Available in iframe (navigator.serial, etc.) |
| IFrame data passing | (window as any).__xxx = data (main process and iframe window are isolated); window.parent.eda |
✅ Option A (recommended): Store with eda.sys_Storage.setExtensionUserConfig(key, value), read in iframe with getExtensionUserConfig(key); ✅ Option B: Call eda API directly from iframe (both main process and iframe can access the eda object; just use eda directly) |
Project Initialization
When extension.json does not exist in the workspace:
git clone https://github.com/easyeda/pro-api-sdk.git \x3Cproject-name>
cd \x3Cproject-name>
npm install
npm run compile
Failure Strategies
- API does not exist: Stop immediately, inform the user
- Signature uncertain: Stop generation, return to query step
- Workspace not initialized: Prompt user to initialize first
- Forbidden DOM API used: Automatically replace with
eda.sys_*alternatives - Menu ID conflict: Automatically add prefix to differentiate (e.g.,
my-plugin-home,my-plugin-sch)
References
- Complete API module list, enum definitions →
resources/api-reference.md - Common pitfalls and lessons learned →
resources/experience.md - MCP tool documentation → "MCP Tools" section in
resources/api-reference.md
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install extension-dev-skill - 安装完成后,直接呼叫该 Skill 的名称或使用
/extension-dev-skill触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
Jlceda Plugin Builder 是什么?
AI Skill for building EasyEDA Pro extension plugins. Used when users need to create, modify, or debug JLCEDA/EasyEDA Pro plugins, including generating plugin... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 136 次。
如何安装 Jlceda Plugin Builder?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install extension-dev-skill」即可一键安装,无需额外配置。
Jlceda Plugin Builder 是免费的吗?
是的,Jlceda Plugin Builder 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。
Jlceda Plugin Builder 支持哪些平台?
Jlceda Plugin Builder 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。
谁开发了 Jlceda Plugin Builder?
由 JasonYANG17(@jasonyang170)开发并维护,当前版本 v0.1.0。