让选题填写与游玩投影读到一致的规格口径。 Co-authored-by: Cursor <cursoragent@cursor.com>
10 KiB
10 KiB
开场白与开场变量
meta
name: 开场白与开场变量
id: opening-setup
artifact: 设计.开场白
declaration: >
普通楼层创作终节点,且可增殖:每条开场是一个节点,落成 `设计.开场白#场景短码`。
默认写 1 条;用户要多个入口时再增殖。每条自带 present.v1、同真相初态与这条开场的最少玩家角色事实。
全部保存。游玩时左右切换,选中的一条作为 0 层。
when: |
回复呈现、正文组成和其它本局内容能力均已完成,且程序已依次编译信息可见范围、游玩执行方式、上下文排序与运行配置后,需要可开玩的第一屏时使用。
when_not: |
语义区域或前端模板未钉 → 先回复呈现、正文组成。
`设计.worker集` 尚未由程序组装 → 先运行收口工具链。
只改文风或真值规则 → 叙事指南 / 变量设计。
要做持久 0 层开场 → 0层开场白与初态,不在本步兼顾。
boundary: |
本能力只写开场候选与各候选初态。不重开篇幅、文风、区域清单或前端模板。
只填正文组成声明为模型生成的 blocks;状态与拓扑由程序按候选初态投影。
随机数是变量表隐藏行:本步不写具体数字。0 层玩法不依赖随机;普通楼层在第一次正式回复时由程序补齐随机行。
每条开场单独落盘。游玩时左右切换,选中的一条作为 0 层;创作里不把入口收成一道先选定的题。
feeds: gm,narrator
opening
设定已齐时,用几句话说清第一拍:玩家进场时在哪、正发生什么、结束后显然能做什么。默认写一条开场。还要别的入口时,每条再增殖一个开场节点;进游玩后左右切换,选中的一条作为 0 层。
task
读取程序已组装的 `设计.worker集` 和全部最终层产物,把每一张开场写成 `设计.开场白#场景短码`。这是普通楼层创作终节点;不得在本步首次整理执行单元或上下文顺序。
position 必须带场景短码,例如 `设计.开场白#opening-cycle2`。改某一条就再 insert 同一个完整 tag。裸 `设计.开场白` 和整包 `设计.开场白与开场变量` 会和带短码的卡抢同一条写入,不要使用。
默认只生成 1 条,仍然要带场景短码。用户要多个入口时,每条再 insert 一个新的短码。不要把多条入口收成聊天里的选择题,也不要把多条塞进同一次 insert。游玩时按这些短码左右切换,选中的一条作为 0 层,并整套换该条正文、初态与角色。
每一张卡携带:
- 符合正文组成数据契约的 `present.v1`(只填模型生成区)
- 可选一句区分说明
- 这一条开场的玩家角色 `meta.用户角色`(名字 + 简介):不同开场的玩家可以不同,写在各自卡里;程序会同步成同短码的主角设定,游玩切到这条时替换 `@玩家`
- 与该条叙述同真相的变量初值:这张卡有要开场定下的变量才写 `开场变量`;没有就不写,卡仍然是 `设计.开场白#场景短码`
- 若本局有拓扑:当前位置/焦点与已揭示范围
硬规格:
1. 可见正文里凡指称玩家角色的名字位都写字面 `@玩家`,每条至少出现一次。「你」可以和 `@玩家` 并用(如「你(@玩家)站在闸机前」),但全文只有「你」、零个 `@玩家` 不合格;不写死具体姓名,也不用「用户」「主角」顶名字位。
2. `present.v1` 的区域只覆盖正文组成声明的模型生成 blocks;程序投影区留空给程序灌。
3. 不输出 `名称.随机数` 的具体数组;随机行由程序在第一次正式回复前或回复时补齐。
4. 开场宜短,愿点进游玩即可,不抄故事推进的单轮篇幅预算当第一章。
5. 人物、地点、势力只引用已有产物里的;第一拍需要的路人只写身份,不在开场新造有名有姓的设定。
材料足够便直接成稿;会改变第一拍成立的缺口交给 `self_score.gap`。产物正文不放评分、诊断、追问或开放问题。
principles
1. 开场为主,初态配套。叙述与该条变量、拓扑初态必须同真相;写完发现两者对不上时以叙述为准,改初值。
2. 默认一条。多条是不同入口,每条一个 `设计.开场白#场景短码`,不是同文换皮,也不是先让用户选唯一开场。没有变量的卡省略 `开场变量`,短码照旧。
3. 玩家角色最少化:把这个角色交还给用户扮演。`用户角色.简介` 只写这条开场成立所必需的客观事实——身份、处境、与在场人物的已知关系,一到三句;不写性格、心理、动机、口癖、外貌细节,也不替玩家定态度或下一步。共通的主角设定已有的事实不重抄,只写这条开场独有或与它不同的部分。
4. 用户没给名字时不编名字,省略 `用户角色`,正文照用 `@玩家`;这条开场必需的身份事实写进叙述里让玩家看见。
5. 只写模型生成区。状态芯片、地图等权威显示由程序投影,不在开场正文里重编一份。
6. 文风、视角和人称跟叙事指南与交互范式;不剧透隐藏档,不写成第一章,不在本步改前端模板。
7. 本步结束后创作收口;不要再排后续内容能力。
probe
每轮 1~2 点。优先确认地点与冲突、某真值开场值是否推得出、多条时入口差异是否成立、每条是否含 `@玩家`。不追问前端重设计或随机骰面。
output
position: 设计.开场白#场景短码
content:
{
"schema": "present.v1",
"shell": "与正文组成一致",
"blocks": {
"body": "清晨,@玩家推开门。……",
"其余模型生成区": "read_module 回包 reply_contract.model_blocks 里的每一项都要出现,类型按契约"
},
"meta": {
"区分": "多条时写这一入口和其它条差在哪;仅一条可省略",
"用户角色": {
"名字": "用户给过的名字;没给就省略整个用户角色",
"简介": "一到三句客观事实:这条开场里玩家是谁、处境如何、与在场人物的已知关系"
},
"开场变量": [
{
"名": "与变量设计真值名一致",
"值": "初值",
"依据": "开场事实"
}
],
"拓扑初态": [
{
"topology_id": "有拓扑时填写",
"当前位置": "节点 id",
"已揭示": ["节点或连接 id"]
}
],
"suggested_actions": ["若正文组成启用文字选项则给短建议;否则 []"]
}
}
硬规则:
1. 每次 insert 只写一张卡。position 是 `设计.开场白#场景短码`,content 是这一张的 `present.v1`。
2. 这张卡有初值才写 `meta.开场变量`;没有变量就省略该字段,position 仍带场景短码。
3. `present.v1` 只含正文组成允许模型生成的 blocks;可见正文须含字面 `@玩家`。
4. 不同卡可有不同用户角色与初态;切换时整套替换,不混用。
5. 不输出随机数具体值,不重写前端,不把程序投影区填成模型编造状态。
6. 产物正文不含自评、追问或开放问题。
7. 玩家角色只写在 `meta.用户角色`,名字不进 blocks 正文;程序据此写入同短码的 `设计.主角设定#场景短码`,不要另 insert 一份。
score
开场必要:
- 5:第一拍清楚、有行动空间,短到愿意开玩。
- 3:能开玩,但入口或下一步略含糊。
- 1:像第一章摘要,或缺冲突与下一步。
前端符合:
- 5:present.v1 只填模型生成区,且与正文组成契约一致。
- 3:主体符合,有一个次要区域或空态处理含糊。
- 1:裸散文,或把程序投影区填成模型重编数据。
状态自洽:
- 5:每条候选的变量与拓扑初态都与该条叙述同真相,互不串味。
- 3:默认条自洽,备选条有一处初态含糊。
- 1:叙述与初值冲突,或多条共用一套却声称不同入口。
角色占位:
- 5:每条含字面 `@玩家`;`用户角色.简介` 只有这条开场必需的客观事实,玩家性格与决定留给用户。
- 3:占位正确,但简介多写了性格、动机或与共通主角设定重复的内容。
- 1:写死姓名、全文只有「你」没有 `@玩家`,或简介替玩家定了性格和态度。
收口可切换:
- 5:默认条明确,全部候选可保存;多条时入口差异成立。
- 3:能收口,但多条差异偏弱。
- 1:默认不清,或未要求多条却堆出重复候选。
checklist
- [ ] position 是 `设计.开场白#场景短码`,没有另写裸 `设计.开场白` 或 `设计.开场白与开场变量`?
- [ ] 默认 1 条;仅用户要求时才再增殖别的短码?
- [ ] 有初值才写 `开场变量`;没有变量就省略,卡名不变?
- [ ] 含 `@玩家`,present.v1 只含模型生成区?
- [ ] `用户角色.简介` 只有必需客观事实,没有性格、心理和替玩家做的决定?
- [ ] 初态与这条叙述同真相,未填写随机数具体值?
- [ ] 未重开前端、篇幅或区域清单?
examples
- 单条:`设计.开场白#debt-hall`,堂屋债契,body 含 `@玩家`,开场变量写债额初值;状态栏由程序投影。
- 用户要两条入口:`设计.开场白#lender` 与 `设计.开场白#office`,各带自己的初态。没有初值的那条省略开场变量。
- 单条带玩家角色:`meta.用户角色` 为 `{"名字":"沈聿","简介":"本地放贷人,持有这家的债契;与这对母女相识但不熟。"}`,body 写「清晨,@玩家推开堂屋门,债契还摊在桌上。」
- 不合适:再写一份裸 `设计.开场白` 或 `设计.开场白与开场变量`;开场里填写 `敏捷.随机数=[…]`。
- 不合适:全文只有「你推开门」,零个 `@玩家`。
- 不合适:简介写「沉稳果决,内心渴望被认可,决定今天收回债款」——性格、心理和决定都该留给玩家。