新建作品改为直接进入对话落盘,按本局创作方案写能力,并把楼层呈现和零层卡分开。
输入栏同时可以按分组切换模型。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,212 @@
|
||||
# 0 层正文组成
|
||||
|
||||
## meta
|
||||
|
||||
```meta
|
||||
name: 0层正文组成
|
||||
id: zero-layer-reply-format
|
||||
artifact: 设计.0层正文组成
|
||||
declaration: >
|
||||
把 0 层语义槽位落成一张跨轮持久前端:定义固定外壳、槽位位置、Tab 与 slot_updates 渲染合同。
|
||||
when: |
|
||||
已有 0层回复呈现,需要决定持久卡如何显示及怎样原地应用槽位更新时使用。
|
||||
when_not: |
|
||||
本局使用普通消息楼层 → 正文组成。
|
||||
还不知道卡内有哪些语义槽位 → 先 0层回复呈现。
|
||||
boundary: |
|
||||
0层回复呈现决定槽位内容和更新语义;本能力决定固定外壳、位置、渲染与更新应用。
|
||||
权威状态由程序投影;本能力只消费数据,不让正文模型重复生成。
|
||||
feeds: gm,narrator
|
||||
```
|
||||
|
||||
## opening
|
||||
|
||||
```opening
|
||||
把已启用槽位做成一张持久卡。先确定主工作面、Tab 或辅助区关系,再为 replace、append、data 三种更新写稳定渲染入口。
|
||||
```
|
||||
|
||||
## task
|
||||
|
||||
```task
|
||||
为 0 层模式生成持久前端,写入 `设计.0层正文组成`。开场只创建一次外壳;后续助手回合不新增可见气泡,而是提交 `zero-layer.update.v1` 更新现有槽位。
|
||||
|
||||
执行顺序:
|
||||
1. 读取 0层回复呈现,只处理实际启用的可见槽位。
|
||||
2. 从【壳参考库】选一只与本局已启用槽位最接近的壳。按该壳备注改写样本里的名称、栏目、配色和内部小节。本局没有的区从样本骨架删除并重排,不留空位。槽位更新方式仍以 0层回复呈现为准。
|
||||
3. 为每个槽位定义 DOM 落点、显示名、渲染器和空态。Tab、折叠、缩放只做本地查看。
|
||||
4. 定义 `zero-layer.card.v1` 初始状态和 `zero-layer.update.v1` 更新合同:
|
||||
- `replace`:替换目标槽当前内容。
|
||||
- `append`:按顺序追加记录,由程序执行上限或压缩规则。
|
||||
- `data`:对程序权威数据应用结构化投影,不接收模型伪造的完整状态。
|
||||
5. 隐藏维护通道不创建 DOM。模型只提交允许它生成的槽位;状态和拓扑更新由程序投影。
|
||||
6. 写完整 HTML/CSS/JS,创作时一次生成并固定。美化用配色、字体层级、边框、间距,以及 CSS 或简单内联 SVG,按本次能写稳的程度完成。JS 使用宿主提供的 `zeroLayer.onInit(renderCard)` 与 `zeroLayer.onPatch(applyPatch)`;不得依赖正则替换。地图 SVG 只从结构化数据绘制。
|
||||
7. 给一份非正史初始卡和一次更新预览,覆盖所有可见槽位与空态。
|
||||
|
||||
HTML、CSS、JS 合计不超过 60 KB。材料足够便直接成稿;会改变主工作面的缺口交给 `self_score.gap`。产物正文不放评分、诊断、追问或开放问题。
|
||||
```
|
||||
|
||||
## principles
|
||||
|
||||
```principles
|
||||
1. 固定外壳只创建一次;每轮只更新目标槽位,不重发整页代码。
|
||||
2. 正文或核心工作面保持最高阅读优先级,辅助 Tab 不平均争夺注意力。
|
||||
3. 更新模式来自 0层回复呈现,前端不能擅自把 replace 改成 append。
|
||||
4. 程序投影槽只消费权威数据;正文模型不输出状态副本、地图 SVG 或完整卡快照。
|
||||
5. 每次更新带目标槽位和模式;程序校验允许列表与 revision 后原子提交。
|
||||
6. 动态文字安全渲染;Markdown 使用宿主安全能力,不能拼接未清洗 HTML。
|
||||
7. 允许本地 Tab、折叠、缩放和 SVG 图谱;禁止联网、表单、弹窗、顶层导航和宿主行动回传。
|
||||
8. 正规路径使用结构化 slot_updates;正则只属于外部兼容适配器,不写进本产物。
|
||||
9. 美化落在配色、字体层级、边框、间距和简单内联 SVG 上,写进 CSS,按本次能写稳的程度完成。
|
||||
```
|
||||
|
||||
## probe
|
||||
|
||||
```probe
|
||||
每轮 1~2 点。优先确认主工作面、哪些槽位放入 Tab、正文是替换还是卡内日志,以及结构化地图需要哪种可读降级。
|
||||
```
|
||||
|
||||
## output
|
||||
|
||||
```output
|
||||
{
|
||||
"schema": "context-fragment.v1",
|
||||
"技能": "0层正文组成",
|
||||
"brief": "一句话说明持久卡的主工作面、辅助导航与更新方式",
|
||||
"mount": ["world-simulator", "narrator"],
|
||||
"稳变": "stable",
|
||||
"正文": {
|
||||
"参考壳": [
|
||||
{
|
||||
"id": "壳参考库方法 id",
|
||||
"采用": "借用的布局或局部交互方法",
|
||||
"本局化": "怎样适配本局槽位"
|
||||
}
|
||||
],
|
||||
"阅读结构": {
|
||||
"主工作面": "body 或本局核心槽位",
|
||||
"导航": "无|tabs|本局描述",
|
||||
"响应式": "窄屏与宽屏如何保持主工作面优先"
|
||||
},
|
||||
"卡合同": {
|
||||
"schema": "zero-layer.card.v1",
|
||||
"字段": {
|
||||
"card_id": "稳定卡 id",
|
||||
"revision": "从 0 开始的程序 revision",
|
||||
"active_view": "当前本地视图;不写入世界真相",
|
||||
"slots": "以槽位 id 为键的持久状态"
|
||||
}
|
||||
},
|
||||
"更新合同": {
|
||||
"schema": "zero-layer.update.v1",
|
||||
"字段": {
|
||||
"base_revision": "更新所依据的 revision",
|
||||
"slot_updates": [
|
||||
{
|
||||
"slot_id": "目标槽位 id",
|
||||
"mode": "replace|append|data",
|
||||
"content": "replace/append 使用;类型与槽位一致",
|
||||
"data": "data 使用;由程序权威投影提供"
|
||||
}
|
||||
]
|
||||
},
|
||||
"提交": "程序校验槽位、模式、来源和 revision 后原子应用并持久化"
|
||||
},
|
||||
"槽位落点": [
|
||||
{
|
||||
"slot_id": "与0层回复呈现一致",
|
||||
"位置": "DOM 区域或 Tab id",
|
||||
"显示名": "需要标题时填写",
|
||||
"渲染": "safe_markdown|text|kv|list|table|topology_svg",
|
||||
"允许模式": "replace|append|data",
|
||||
"空态": "首次无内容时显示什么",
|
||||
"降级": "结构化渲染失败时的可读形式"
|
||||
}
|
||||
],
|
||||
"不渲染": [
|
||||
{
|
||||
"id": "隐藏维护通道 id;无则省略",
|
||||
"交给": "运行时维护解析器"
|
||||
}
|
||||
],
|
||||
"frontend": {
|
||||
"html": "<div id=\"zero-layer-app\">完整稳定外壳</div>",
|
||||
"css": "完整样式与响应式规则",
|
||||
"js": "使用 zeroLayer.onInit(renderCard) 与 zeroLayer.onPatch(applyPatch) 的完整代码"
|
||||
},
|
||||
"预览": {
|
||||
"initial_card": {
|
||||
"schema": "zero-layer.card.v1",
|
||||
"card_id": "preview",
|
||||
"revision": 0,
|
||||
"active_view": "main",
|
||||
"slots": {}
|
||||
},
|
||||
"one_update": {
|
||||
"schema": "zero-layer.update.v1",
|
||||
"base_revision": 0,
|
||||
"slot_updates": []
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
硬规则:
|
||||
1. 输出合法 JSON;槽位落点覆盖 0层回复呈现的全部可见槽位,id 与更新模式一致。
|
||||
2. `frontend.html/css/js` 完整且总量不超过 60 KB;JS 必须实现初始化与增量更新入口。
|
||||
3. 后续回合只提交 `zero-layer.update.v1`,不重发 HTML 或完整卡。
|
||||
4. `data` 槽只接受程序权威投影;隐藏维护通道不进入 DOM。
|
||||
5. 更新必须带 `base_revision`,由程序校验后原子提交;失败时保持旧卡。
|
||||
6. 禁止正则作为正规更新协议;禁止网络、表单、弹窗、顶层导航和行动回传。
|
||||
7. topology 读取结构化节点与连接绘制 SVG,并提供列表降级。
|
||||
8. 预览是非正史验收数据,不写成开场。
|
||||
9. 产物正文不含自评、追问或开放问题。
|
||||
10. `mount` 固定为 `["world-simulator", "narrator"]`。
|
||||
|
||||
## score
|
||||
|
||||
```score
|
||||
槽位落实:
|
||||
- 5:每个可见槽位都有落点、允许模式、渲染器、空态和降级。
|
||||
- 3:主体完整,但一个辅助槽位的空态或降级含糊。
|
||||
- 1:漏槽或模式与语义合同冲突。
|
||||
|
||||
持久更新:
|
||||
- 5:初始化、revision、原子 slot_updates 与失败保持旧值形成闭环。
|
||||
- 3:可更新,但 revision 或失败处理有一处不清。
|
||||
- 1:仍要求每轮重发整张页面或依赖文本替换。
|
||||
|
||||
权威绑定:
|
||||
- 5:模型槽与程序投影槽边界清楚,状态和拓扑没有双写。
|
||||
- 3:主要正确,但一个数据槽来源含糊。
|
||||
- 1:模型每轮重编权威状态。
|
||||
|
||||
界面结构:
|
||||
- 5:主工作面明确,Tab 和辅助区服务本局体验,窄屏仍可用。
|
||||
- 3:总体可读,但一个辅助区抢占注意力。
|
||||
- 1:机械地堆满 Tab,没有主次。
|
||||
|
||||
实现与安全:
|
||||
- 5:代码完整、安全渲染、无联网与回传,结构化区域有降级。
|
||||
- 3:主体可运行,但一处安全或降级细节不完整。
|
||||
- 1:只有外观描述、空代码或不安全 HTML 拼接。
|
||||
```
|
||||
|
||||
## checklist
|
||||
|
||||
```checklist
|
||||
- [ ] 所有可见槽位都有落点,模式与语义合同一致?
|
||||
- [ ] 外壳只初始化一次,后续只应用 slot_updates?
|
||||
- [ ] revision、原子提交与失败保持旧值完整?
|
||||
- [ ] 权威状态没有被模型重复生成,隐藏维护区未进 DOM?
|
||||
- [ ] 前端完整、安全、无正则依赖与外部联网?
|
||||
- [ ] 美化已用配色、字体层级、边框、间距或简单 SVG 写进 CSS,程度限于本次能写稳的部分?
|
||||
```
|
||||
|
||||
## examples
|
||||
|
||||
```examples
|
||||
- 机械终端:正文为主工作面;公司指令、监控表盘、地图分 Tab;指令 replace、日志 append、表盘和地图 data。
|
||||
- 学校舞台:正文 replace;地图 data;已知线索 append 并有上限;切 Tab 只改变本地视图。
|
||||
- 不合适:让模型每轮输出完整 HTML;用正则替换 `<公司指令>`;把按钮点击直接回传为角色行动。
|
||||
```
|
||||
Reference in New Issue
Block a user