旧产物名仍能读到,避免改名后上下文对不上。 Co-authored-by: Cursor <cursoragent@cursor.com>
11 KiB
11 KiB
回复呈现
meta
name: 回复呈现
id: status-bar
artifact: 设计.监控栏
declaration: >
定义普通楼层每轮回复实际启用的语义区域、出现条件、权威来源与内容要求;不决定前端排版和渲染。
when: |
本局会游玩、每轮有一条助手回复时就使用。默认声明正文区和文字选项;用户明确不要选项时关掉选项区。回复里还有抬头、状态、小故事或数据卡时,也在本步声明。
排在故事推进与交互范式之后、正文组成之前。用户谈到选项、状态栏、每轮除正文外还看什么时也使用。
when_not: |
本局没有游玩回复(纯转换、资料整理、一次性成稿)→ 不使用。
持久 0 层卡、不增加普通楼层 → 0层回复呈现。
语义区已经钉死,只讨论 HTML、CSS、Tab 或分区 → 正文组成。语义区还没有时,仍先本步。
boundary: |
本能力决定回复由哪些可见或隐藏语义区域组成、何时出现、内容来自哪里、怎样才算填对。
正文组成负责把这些区域放到前端的具体位置并实现 HTML/CSS/JS、Tab 和特殊渲染。
字数区间与扩写/续写占比以故事推进与交互范式已写的为准,本步照写进正文内容要求,不另起一套数字。
变量设计与拓扑图谱定义权威数据和更新规则;本能力只决定回复是否包含其展示区或隐藏更新区。
feeds: gm,narrator
opening
每轮回复除正文外,还需要哪些可见内容?逐项说明它何时出现、由模型生成还是由程序投影,以及用户是否可见。有地图或状态时,指出要投影的字段。
task
为普通楼层定义每轮回复的语义区域合同,写入 `设计.监控栏`。只写本局实际启用的区域;未启用的区域直接省略。
每个区域写清:
- 用途与用户可见性。
- 每轮出现或满足条件才出现。
- 来源是模型生成、程序权威投影,还是维护通道。
- 对应的上游引用与正向内容要求。
- 没有内容时是省略、给空态,还是仍须输出。
正文区的 `内容要求` 照写 `设计.故事推进与交互范式` 里已经定下的目标字数或区间、扩写占比、续写占比。数字与上游一致,不另起一套。状态、地图等权威内容使用程序投影,正文模型不重复生成。文字选项默认启用:`内容约束` 写 4 条,每条约束选项该满足什么,不写成品行动句。用户明确不要选项时,省略该区。
表维护由旁观副 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",
"区域种类": "抬头|小故事|数据卡|结构|文字选项",
"来源": {
"方式": "model_generated|program_projection",
"ref": "上游产物、运行状态或维护策略的稳定引用",
"字段": ["程序投影时只选择实际需要的字段"]
},
"内容要求": [
"正向说明该区域应该提供什么"
],
"空值处理": "omit|empty_state|error"
},
{
"id": "choices",
"名称": "文字选项",
"用途": "给用户几条方向不同的行动参考",
"用户可见": true,
"出现": {
"方式": "every_turn",
"条件": ""
},
"内容类型": "list",
"区域种类": "文字选项",
"来源": {
"方式": "model_generated",
"ref": "设计.故事推进与交互范式"
},
"选项": {
"数量": "本局每轮几条",
"内容约束": [
"选项必须满足的条件",
"第二条约束,仍不是成品行动",
"第三条约束",
"第四条约束"
]
},
"内容要求": [
"按四条内容约束生成;每条是约束,不是成品行动"
],
"空值处理": "omit"
}
]
}
}
硬规则:
- 输出合法 JSON;
语义区域只含实际启用项,不写启用:false或未启用清单。 - 普通楼层至少含
body,默认再含文字选项。正文内容要求照写故事推进与交互范式的字数区间和扩写/续写占比,不另起数字。 - 每个区域必须声明出现方式、内容类型、区域种类、来源、内容要求和空值处理。可见区的区域种类只能是抬头、正文、小故事、数据卡、结构、文字选项。
program_projection必须给稳定 ref;状态和拓扑数据不得标为临场或要求模型重新生成。- 不建立主回复隐藏填表区(无
state_ops/maintenance_channel);表由旁观副 LLM 维护。 - 文字选项默认写入。
内容约束恰好 4 条,每条是对选项的约束,不是成品行动。不写可点击、按钮动作或回传协议。用户明确不要选项时省略该区。 - 不选壳,不写布局、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
- [ ] 只列实际启用区域,普通楼层含正文?
- [ ] 每个区域的出现条件、来源、要求与空值处理完整?
- [ ] 状态、地图等权威数据均由程序投影,模型没有重复生成?
- [ ] 没有建立主回复里的隐藏填表区?
- [ ] 正文内容要求写了字数区间和扩写/续写占比,且与故事推进与交互范式一致?
- [ ] 默认有文字选项;内容约束恰好 4 条,每条是约束而不是成品行动?
- [ ] 用户明确不要选项时,该区已省略?
- [ ] 未写布局、HTML/CSS/JS、Tab、SVG 或交互动作?
examples
好:
- 正文内容要求照写上游已定的「800–2500 字,扩写 60%,续写 40%」,不改成另一套区间。
- 文字选项默认在。内容约束四条,例如「一句此刻能做的行动」「彼此风险不同」「不写旁白」「不重复上轮原句」。
- 展示状态:新增 kv 区,来源指向变量当前值及要露出的字段,由程序投影。
缺料时:
- 故事推进还没写字数区间 → 正文内容要求该项写「未定」,gap 指向那一份,不在本步另定数字。
- 用户说不要选项 → 省略文字选项区,其余照写。
偏了就改回:
- 内容约束写成四条成品行动(「推门进去」「先观察」)→ 改成四条必须满足的约束。
- 本步把 800–2500 改成 2000–4000 → 改回故事推进与交互范式里的数字。
- 为了完整感再加隐藏填表区 → 删掉;表由旁观副 LLM 维护。