关于 vanilla-lynx
vanilla-lynx 是用于直接使用 Element PAPI 和 Lynx Runtime API 编写 Vanilla Lynx 的技能,面向 Lynx 开发者。它支持无需构建的 .lynxml 与 Rspeedy 项目,并提供线程、生命周期和验证方面的约束。
主要功能
- 01使用 Element PAPI 编写界面
- 02选择 .lynxml 或 Rspeedy 输出
- 03遵循主线程与后台线程职责
- 04处理生命周期事件和监听器
- 05按目标格式运行与验证产物
适用场景
- 01创建无需构建步骤的 .lynxml 页面
- 02搭建带构建配置的 Rspeedy 项目
- 03实现 Element PAPI 界面更新
- 04为 Lynx 运行时接入后台逻辑
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ lynx-community/ skills --skill vanilla-lynx安装后在 Claude Code 中输入/vanilla-lynx确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
CHANGELOG.mdassets/examples/counter.lynxmlexternal-bundle.lynxmlping-pong.lynxmlevals/evals.jsontrigger_eval.jsonreferences/background.mdevent.mdexternal-build.mdexternal-runtime.mdlynxml.mdmain-thread.mdrspeedy-project.mdstyle.md详细介绍
使用 Element PAPI 编写 Vanilla Lynx
使用此技能,通过 Element PAPI 和 Lynx Runtime API 直接编写 Vanilla Lynx,无需 ReactLynx 或 JSX。将免构建的 .lynxml 和 Rspeedy 视为同等的输出格式。
选择输出格式
- 如果用户要求单个文件、免构建或可直接加载的输出,或者明确表示不要添加构建步骤,请选择
.lynxml。 - 如果用户要求 Rspeedy、项目脚手架或构建配置,或者要求生成通过构建产生的应用包,请选择 Rspeedy。
- “应用”“页面”“卡片”或“项目”等泛称本身不能决定格式。如果完整的编写请求没有明确的交付或构建要求,或者格式要求相互冲突,请在生成交付内容前提出一个简短的澄清问题。除非用户要求两种格式,否则不要同时生成两种完整格式。
- 对于范围明确的源码问题或代码片段请求,直接回答所请求的内容,无需强行确定输出格式。
核心规则
- 不要使用 ReactLynx、JSX、虚拟 DOM 或浏览器 DOM API。
- 对于完整的编写请求,请按选定格式交付完整产物。绝不要只返回示例资源或参考路径。
- Element PAPI 树的创建、变更、生命周期渲染和 UI 更新必须放在主线程源码中:
.lynxml使用<script thread="main">,Rspeedy 使用main-thread.ts。绝不要在后台线程源码中调用 Element PAPI API 或__FlushElementTree();后台线程只能发送可序列化的补丁,供主线程应用并刷新。 - 初次渲染依赖 SDK 刷新;后续 UI 变更后调用
__FlushElementTree()。 - 仅在处理较重的业务逻辑、异步任务、计时器、原生调用或数据处理时添加后台线程源码。跨线程负载必须可序列化。
lynx.getEngine()仅用于引擎定义的生命周期事件,例如__RenderPage、__UpdatePage和__DestroyLifetime;绝不要用它处理应用定义的线程本地或跨线程事件。如果实现不需要生命周期处理器的事件负载,可忽略该负载。对于长期存在的监听器和跨线程监听器,请保留稳定的处理器引用;销毁时,使用相同的上下文和事件名称移除监听器,不要注册内联回调。- 外部包的构建和加载必须分开,并且仅在后台处理。外部模块必须使用纯 TypeScript 或 JavaScript;绝不要在其中使用 ReactLynx、JSX 或 ReactLynx 转换。rslib 的入口键必须与第一个
loadScript参数一致。
参考资料路由
只阅读当前任务所需的参考文件。遵循其中明确的约束,不要用通用指南替代。
| 任务 | 阅读 |
|---|---|
编写、组装或审查完整的 .lynxml 文档 | references/lynxml.md |
| 编写或审查完整的 Rspeedy 项目或构建工作流 | references/rspeedy-project.md |
| 构建主线程 Element PAPI 树或更新 UI | references/main-thread.md |
| 选择运行时事件 API 或连接生命周期事件 | references/event.md |
| 在后台脚本中实现较重的逻辑 | references/background.md |
| 使用 Lynx 样式和布局规则编写或审查 CSS | references/style.md |
| 使用 rslib 将后台线程代码构建为外部包 | references/external-build.md |
| 在运行时加载或调用后台线程外部包 | references/external-runtime.md |
运行时验证
对于生成的 .lynxml,请在包含未更改产物的目录中运行 npx http-server .,并使用该服务器输出的目标设备可访问的地址。对于 Rspeedy 项目,请使用其配置的构建和开发服务器工作流,而不是通用静态服务器。然后使用 lynx-devtool 技能进行客户端发现、打开可访问的 URL、运行时检查、查看控制台日志、截图和交互。请勿在此处重复设备调试工作流,也不要将 agent-lynx 描述为产物构建器或服务器。
评论
支持 Markdown