# Plugin Creator

> 创建、修改并验证 Lexora 桌面插件。当用户想通过对话制作插件、增加窗口特效、插件页面、通知或后台提醒，或修复已有插件时使用。也响应 $plugin-creator。普通任务执行、使用现有插件、其他产品的插件开发不属于此技能。

- Skill: `uselexora/plugin-creator` (Agent Skill, multi-file: 4 files)
- Install (CLI): `npx skillmds@latest add uselexora/plugin-creator`
- Raw SKILL.md: https://api.skillmd.com/api/skills/uselexora/plugin-creator/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: useLexora (https://skillmd.com/u/uselexora)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/uselexora/plugin-creator

---


# 创建 Lexora 插件

将用户的需求变成可安装、可修改的真实插件。完成最小可用版本，再依据编译诊断与用户的实际体验迭代。不要用占位 demo 代替需求。

## 理解需求

先利用当前对话确定触发时机、可见效果、设置和停止方式。描述充分时直接实施；只询问会改变实现的缺失信息。短需求选择轻量默认值并说明，不要求用户先填技术问卷。没有设置需求时优先复用插件管理中的启用、禁用，不额外增加导航和配置页面。

“打字时窗口出现礼花”默认指在 Lexora 对话输入时产生短暂效果，不是读取全局键盘。窗口效果使用插件自身绘制的隔离视图，由宿主提供不含文字和按键的输入活动。

## 阅读协议并创作

1. 读取 [协议与清单](references/protocol.md) 和 [完整 API 类型](references/api.d.ts)。这些文件与当前 Lexora 一起分发；不要根据其他产品的插件格式猜测接口。
2. 在当前可写工作区创建独立源码目录，例如 `plugins/typing-confetti/`。通过文件工具写入真实文件，保留源码以便后续对话修改。不需要用户另外安装 Node、Bun 或 SDK。
3. 使用稳定的 `发布者.插件名` ID。未指定发布者时使用 `local`；不要冒用官方发布者。修改已有插件保持原 ID，并提升版本。
4. 根据能力选择页面、资源视图或窗口效果。仅声明实际需要的权限；没有对应能力时解释限制，不绕过隔离访问宿主 DOM、内部接口或文件。
5. 使用自包含 TS/JS 和包内资源。复制 `references/api.d.ts` 为源码目录的 `lexora.d.ts`，仅通过 `import type` 引用。源码清单设置 `format: "source"`。视图导出 `render(context, container)`，需要命令、存储或调度时再添加宿主入口 `activate(context)`。
6. 事件、定时器、动画在关闭时清理，动画结束回收节点、空闲时停止循环。页面使用主题变量；窗口效果保持透明、不阻挡输入，并尊重减少动态效果偏好。

## 编译与修正

通过 `lexora_tool_search` 查找 `lexora_plugin_build`，然后调用它：

如果当前明确是在独立 Lexora Plugin SDK 仓库中开发、没有 Lexora 内置工具，使用 [SDK 工作流](references/sdk-workflow.md)。普通 Lexora 对话不需要这条分支。

```json
{ "source": "plugins/typing-confetti", "output": "typing-confetti-1.0.0.lexora-extension", "review": true }
```

`output` 是已存在父目录中的新文件，放在源码目录之外；现有文件不会被覆盖。工具使用内置隔离编译器，不执行 npm 安装脚本或插件代码。错误结果包含 `code` 与有限的 `diagnostics`：修正对应问题后重新构建，避免重复提交相同错误。需要重新生成包时使用新的输出文件名。

`review: true` 请求显示安装确认，用户确认后才会安装。只要求源码或打包时设为 `false`。不要绕过确认或通过内部配置安装。工具返回 `installed: false`，不代表安装完成。

通过 `lexora_output_present` 交付源码目录与安装包。不要只在回答中粘贴代码，也不要下载 SDK 或建立另一套构建工程。

## 验证与迭代

选择 2–3 个与需求直接相关的检查：主要动作、停止或禁用、配置保存或关闭页面后的行为。编译通过只证明包可构建，不证明界面和运行效果通过。Lexora 的浏览器工具只能控制资源浏览器，不能操作插件安装弹窗或窗口效果；不要为此创建另一个 HTML 模拟宿主来代替安装验收。有能操作真实插件界面的工具时执行检查；否则交付编译后的包和待验证项，让用户安装后反馈，不在等待安装期间反复调用无关工具。不要编造截图、通知送达、运行成功或性能数据。

交付简短说明：完成了什么、源码与包的位置、如何触发、已检查和仍待体验的行为。用户反馈后读取现有源码，修正实现、重新编译并再次验证相同场景。保持 ID 与数据含义稳定。发布市场或同步远端单独遵循用户指示。

