让选题填写与游玩投影读到一致的规格口径。 Co-authored-by: Cursor <cursoragent@cursor.com>
10 KiB
10 KiB
回复呈现
meta
name: 回复呈现
id: status-bar
artifact: 设计.监控栏
declaration: >
定义普通楼层每轮回复实际启用的语义区域、出现条件、权威来源与内容要求;不决定前端排版和渲染。
when: |
已有故事推进及本局需要展示的变量、拓扑或其它内容后使用;排在正文组成与开场白之前。
when_not: |
每轮只需普通正文且语义合同已由上游明确、无需额外区域时可使用最小正文区域,不扩展其它块。
只讨论 HTML、CSS、Tab、分区或具体渲染 → 正文组成。
boundary: |
本能力决定回复由哪些可见或隐藏语义区域组成、何时出现、内容来自哪里、怎样才算填对。
正文组成负责把这些区域放到前端的具体位置并实现 HTML/CSS/JS、Tab 和特殊渲染。
故事推进是单轮字数及扩写/续写预算的唯一来源;本能力不重复定义篇幅。
变量设计与拓扑图谱定义权威数据和更新规则;本能力只决定回复是否包含其展示区或隐藏更新区。
feeds: gm,narrator
opening
每轮回复除正文外,还需要哪些语义内容?逐项说明它何时出现、由模型生成还是由程序投影,以及用户是否可见。若有地图或状态展示,请指出权威数据来源;若维护策略要求结构化隐藏更新,也把它列为隐藏区域。
task
为普通楼层定义每轮回复的语义区域合同,写入 `设计.监控栏`。只写本局实际启用的区域;未启用的区域直接省略。
每个区域写清:
- 用途与用户可见性。
- 每轮出现或满足条件才出现。
- 来源是模型生成、程序权威投影,还是维护通道。
- 对应的上游引用与正向内容要求。
- 没有内容时是省略、给空态,还是仍须输出。
正文区域只引用 `设计.故事推进` 的单轮篇幅与扩写/续写预算,不复制数值。状态、地图等权威内容使用程序投影,正文模型不重复生成。选项若启用,写清数量、各项的差异维度(如冒险/稳重)和每项的组成规则,让选项彼此不同;不声明点击交互。
表维护由旁观副 LLM 固定承担;本步**不**建立主回复里的隐藏变量更新区(无 `state_ops` / maintenance_channel)。可见区只投影权威数据。
材料足够便直接成稿;真正会改变区域合同的缺口交给 `self_score.gap`。产物正文不放评分、诊断、追问或开放问题。
principles
1. 语义区域回答“回复里有什么”,正文组成回答“在前端哪里、怎么显示”。
2. 只写实际启用区域。固定每轮出现用 `every_turn`;条件出现须给可判定条件。
3. 模型生成区写内容要求;程序投影区写权威 ref 与字段选择。程序已有的数据不让模型复述一份。
4. 正文篇幅、扩写和续写预算只引用故事推进;文风只引用叙事指南。
5. 状态与拓扑的真相来自运行数据。可见区域只选择投影字段,不在这里修改变量或拓扑。
6. 不在主回复建隐藏填表区;表由旁观副 LLM 维护。
7. 选项是文本建议。是否有交互、点击后做什么,只有正文组成和宿主前端真正实现时才声明。
8. 区域要求使用正向规格;没有特殊要求便保持短,不为完整感堆区域。
9. 每个可见区属于一种:抬头、正文、小故事、数据卡、结构、文字选项。抬头是页首一行短内容;小故事是旁支短文,不推进主线,也不复述正文;条目一多或当前值一长则改用数据卡。数据卡和结构要写出露出的列或字段。
probe
每轮 1~2 点。优先确认某区域是否真的需要、何时出现、由谁生成、权威数据来自哪里。排版、HTML、Tab 和具体渲染留给正文组成。
output
{
"schema": "context-fragment.v1",
"技能": "回复呈现",
"brief": "一句话说明每轮实际包含哪些语义区域及主要权威来源",
"mount": ["world-simulator", "narrator"],
"稳变": "stable",
"正文": {
"语义区域": [
{
"id": "body",
"名称": "正文",
"用途": "承载本轮叙事正文",
"用户可见": true,
"出现": {
"方式": "every_turn",
"条件": ""
},
"内容类型": "markdown",
"区域种类": "正文",
"来源": {
"方式": "model_generated",
"ref": "设计.故事推进"
},
"内容要求": [
"遵守故事推进中的单轮篇幅与扩写/续写预算",
"遵守叙事指南;在本轮自然停笔点结束"
],
"空值处理": "error"
},
{
"id": "本局实际启用的其它区域 id",
"名称": "状态、地图、线索、文字选项或本局自定义名称",
"用途": "这一语义区域帮助用户获得什么信息",
"用户可见": true,
"出现": {
"方式": "every_turn|conditional",
"条件": "conditional 时写程序或模型可判断的条件"
},
"内容类型": "text|markdown|kv|list|table|topology|state_ops",
"区域种类": "小故事|数据卡|结构|文字选项",
"来源": {
"方式": "model_generated|program_projection|maintenance_channel",
"ref": "上游产物、运行状态或维护策略的稳定引用",
"字段": ["程序投影时只选择实际需要的字段"],
"投递": "仅维护区使用:runtime_selects_tool_or_structured"
},
"内容要求": [
"正向说明该区域应该提供什么"
],
"空值处理": "omit|empty_state|error"
},
{
"id": "choices",
"名称": "文字选项",
"用途": "给用户几条方向不同的行动参考",
"用户可见": true,
"出现": {
"方式": "every_turn",
"条件": ""
},
"内容类型": "list",
"区域种类": "文字选项",
"来源": {
"方式": "model_generated",
"ref": "设计.故事推进"
},
"选项": {
"数量": 2,
"各项": [
{ "差异维度": "冒险", "组成": "一句推进风险或探索的具体行动" },
{ "差异维度": "稳重", "组成": "一句观察、保守或缓和局面的具体行动" }
]
},
"内容要求": [
"每项是用户角色此刻能直接采取的一句行动,按各自差异维度写,彼此不重复"
],
"空值处理": "omit"
}
]
}
}
硬规则:
- 输出合法 JSON;
语义区域只含实际启用项,不写启用:false或未启用清单。 - 普通楼层至少含
body;正文只引用故事推进,不复制目标字数、占比或字数预算。 - 每个区域必须声明出现方式、内容类型、区域种类、来源、内容要求和空值处理。可见区的区域种类只能是抬头、正文、小故事、数据卡、结构、文字选项。
program_projection必须给稳定 ref;状态和拓扑数据不得标为临场或要求模型重新生成。- 不建立主回复隐藏填表区(无
state_ops/maintenance_channel);表由旁观副 LLM 维护。 - 文字选项须含
选项:数量,以及每项的差异维度和组成;不写可点击、按钮动作或回传协议。 - 不选壳,不写布局、HTML、CSS、JS、Tab、SVG 或槽位替换;这些属于正文组成。
- 产物正文不含自评、追问或开放问题。
mount固定为["world-simulator", "narrator"];artifact tag 暂时保留设计.监控栏。
score
区域必要性:
- 5:每个区域都服务明确体验或运行需要,没有为完整感添加空壳。
- 3:主体必要,但有一个区域价值偏弱或可并入其它区域。
- 1:堆满状态、线索、选项等区域,却说不清用途。
来源一致性:
- 5:模型生成、程序投影与维护通道区分准确;权威数据都有稳定 ref。
- 3:主要来源正确,但有一个字段仍可能被模型重复生成。
- 1:状态或拓扑没有权威来源,每轮靠正文模型重编。
内容可执行性:
- 5:出现条件、内容类型、正向要求和空值处理足以让下游直接生产。
- 3:区域可理解,但条件或填写要求仍有一处含糊。
- 1:只有区域名称,不知道何时出现或应填什么。
信息负担:
- 5:每轮只出现有用内容,条件区能省略,程序已有数据不重复占用模型输出。
- 3:整体克制,但有轻微重复或一个区域出现过频。
- 1:正文外长期堆积大量无关信息。
职责边界:
- 5:只定义语义内容,并把渲染、维护真相和篇幅分别交给正确节点。
- 3:主体边界正确,但夹有少量排版或重复篇幅要求。
- 1:在本步写 HTML、变量公式或重新定义推进篇幅。
checklist
- [ ] 只列实际启用区域,普通楼层含正文?
- [ ] 每个区域的出现条件、来源、要求与空值处理完整?
- [ ] 状态、地图等权威数据均由程序投影,模型没有重复生成?
- [ ] 内联维护的隐藏 state_ops 已声明运行期选路,副 Worker 路径未建立该区?
- [ ] 正文只引用故事推进,没有重复字数和比例?
- [ ] 未写布局、HTML/CSS/JS、Tab、SVG 或交互动作?
examples
- 只有正文:只列 body,并引用故事推进和叙事指南。
- 展示状态:新增 kv 区域,来源指向变量当前值及明确字段;内容由程序投影。
- 展示地图:新增 topology 区域,说明用户应看到哪些节点、连接或当前位置;具体 SVG、表格或 Tab 留给正文组成。
- 简单变量内联维护:新增用户不可见的 state_ops 语义区域;运行期优先投递为 tool call,工具不可用时进入结构化整包。
- 文字选项:写数量、彼此差异和应提供的行动方向;不声明点击行为。
- 坏:只写「要选项」,不定数量、各项差异维度与组成,结果每轮几条选项大同小异。