System Prompts
构建与业务转换流程一致的 Lynx XML 生成指令。本包提供程序化 Prompt 构建 API, 模型调用和服务配置由业务负责。
构建 System Prompt
Direct 模式可以使用默认常量:
也可以自定义引擎版本并追加业务规则:
engineVersion 默认 4.2,enableHtmlFragment: true 选择 Template 模式,
默认 false。appendix 放在内置指令之后。
Prompt 选项
Template、ScriptReuse 和 StylePreset 相互独立,转换时使用同样的三个选项:
包 API 默认关闭三个能力。GenUI Create 和新建 Lynx XML Bench 分组默认开启,
产品默认值不改变包 API 默认值。Design 是单独的 Server 能力,不属于
buildLynxXmlSystemPrompt 选项。
其他 Prompt 导出
请求间选项不同时优先使用 buildLynxXmlSystemPrompt。通过 appendix 追加业务
策略时,应保留转换器要求的产物、生命周期和布局契约。
Prompt 组合与约束
Prompt 结合固定版本 @lynx-js/skill-vanilla-lynx 中选中的指导和 src/prompt.ts
中的本地规则。公共指导覆盖 Element PAPI、生命周期、主线程本地事件和样式,
在构建时内联,运行时无需 skill 文件或文件系统读取。
代码示例会被省略,允许和禁止的 CSS 属性等纯文本约束保留且不带 Markdown 代码块。混合运行时章节保留主线程要求,移除后台和跨线程指令;样式参考不受这项 过滤影响,仍包含 CSS background 属性。
本地 Prompt 将公共指导适配到单文件 .lynxml 产物,优先级高于导入指导:
- 节点引用:
__AppendElement和追加辅助方法接收节点,不是数字 id。pageId用于依赖页面 id 的元素创建 API。Template 初始节点来自nodes或ctx.nodes,之后 JavaScript 更新也遵守节点引用规则。 - 布局:Page 和所有布局 Element 子节点的容器,均通过实际应用的 class
显式设置
display: flex和flex-direction。ScriptReuse 提供 Page 和genui-pageclass,模型使用ctx.page、ctx.pageId并设置业务容器样式。 - 滚动:默认将确定高度的纵向
scroll-view直接放在 Page 下作为第一个 业务节点,内容高度不确定时也如此。只有用户明确要求固定单屏布局时才使用不 滚动的view;恰好能放入一屏不构成例外。业务view不应包裹 scroll-view。 固定栏需预留滚动内容空间,包含安全区。Template 用 XML 根节点表达,Direct 模式使用 Element PAPI 创建并追加。 - 预设样式:StylePreset 开启时使用
flex flex-col w-full h-screen、shrink-0等预设类表达布局和滚动,否则由模型编写对应 CSS。 - 数据校验:未启用 ScriptReuse 时需校验生命周期和应用事件数据。 ScriptReuse 在调用 hook 前规范化生命周期数据;业务字段和应用事件数据仍需 业务校验。
- 产物边界:代码全部放在产物中,不使用 imports、packages、动态代码执行、 外部脚本、分析或追踪。资源与链接 URL 来自用户、宿主或已启用的搜索/图片工具。 生成脚本保持本地运行,不发起网络请求。
适配契约独立组合 Template、ScriptReuse、StylePreset,覆盖节点与作用域、显式
布局、滚动与安全区、CSS 值约束。节点映射、初始树转换和生命周期归属详见
产物与校验。全部八种组合在
test/__snapshots__/prompt/ 下有完整可读的 Prompt 快照。
产品与移动端设计默认值由 GenUI Server 在
packages/genui/server/design/design-guidance.ts 中单独组合,本地 Prompt
负责具体的 Lynx 运行时、布局和产物约束。

