把代入名片从开场白拆到主角设定短码槽,并收紧对话落盘写法。

多开场可各自绑定名片;开玩挂载跳过开场产物并认用户需求类标签。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-09-24 00:59:05 +08:00
co-authored by Cursor
parent da459fb34c
commit a4ad552aff
17 changed files with 417 additions and 58 deletions
@@ -12,7 +12,7 @@ name: 开场白与开场变量
id: opening-setup
artifact: 设计.开场白与开场变量
declaration: >
创作终节点:写出 1~多条开场(每条 = meta 初值/用户角色 + 正文 present.v1,壳与正文组成一致;须含字面 @玩家);选定后落库、结束创作并保存定稿
创作终节点:写出 1~多条开场(每条 = meta 开场变量初值 + 正文 present.v1,壳与正文组成一致;须含字面 @玩家);选定后落库、结束创作并保存定稿。用户代入名片走「主角设定」,勿把名字/简介写进开场正文。
when: |
收成链已齐(至少体验契约可引用,且「细化终稿」已产出或可立即收成运行规格),需要可开玩的第一段剧情与同真相初值。
排在收成之后作最后一步。用户要进游玩但还没有第一屏 → 排。
@@ -22,9 +22,9 @@ when_not: |
只要改真值规则不要开场文 → 「变量设计与更新规则」。
运行规格未齐 → 先「细化终稿」。尚未选定开场前若要补前序节点(如 NPC)→ 插在本步之前,勿以「收口已排入」拒绝追加。
boundary: |
本技能是创作终节点:1~多条开场。每条 = meta(用户角色名字+简介、开场变量初值)+ 正文(present.v1,shell 与「设计.正文组成」一致)。
用户角色跟这条开场走;不同开场可有不同用户角色。初值与该条叙述同真相。
必须遵守已验收的叙事指南、回复呈现、正文组成、变量设计;不重做这些契约。正文不得只交一段散文。
本技能是创作终节点:1~多条开场。每条 = meta(开场变量初值)+ 正文(present.v1,shell 与「设计.正文组成」一致)。
用户代入名片优先「设计.主角设定」;本步可不写用户角色。旧稿若在 meta 带了用户角色仍可读,但不要再往开场正文夹名字/简介。
初值与该条叙述同真相。必须遵守已验收的叙事指南、回复呈现、正文组成、变量设计;不重做这些契约。正文不得只交一段散文。
具体实例:开场可引用已有实例名片,不在本步新造百科。
选定后由程序写入 输出.开场白 / 运行.初始变量 / 运行.开场用户角色 / 变量.当前,关闭 DAG 并保存定稿;不要在本步之后再排其它能力。
feeds: narrator
@@ -55,8 +55,8 @@ feeds: narrator
- 开场比一章短:愿点进游玩即可,不必凑游玩默认 1000~2000 字。
**meta = 这条开场的初始设定:**
- `用户角色`:名字+简介(有代入则必填;不同开场可以不同)。
- `开场变量`:与该条叙述同真相的初值(名与变量设计一致)。顶层再抄一份推荐条的初值,供程序落库。
- `用户角色`:可选;优先已由「主角设定」钉好。若本条必须自带名片且尚无主角设定,可填名字+简介(程序会抬到主角设定节点)。禁止把名字/简介写进 `开场白全文` / 候选正文。
**用户角色占位(产物规格,不是可选项):**
- `开场白全文`、每条候选 `正文`(含 `blocks.body` 及其它有字区域)里,凡指称用户扮演角色,第三人称点名处必须写字面量 `@玩家`(六个字符:`@` + `玩家`)。
@@ -65,11 +65,11 @@ feeds: narrator
- 进游玩时程序把 `@玩家` 换成当前用户角色名;创作稿必须保留字面 `@玩家`。
执行顺序:
1. 读依赖:worker 集/美学/叙事/**正文组成(先抄 shell_id)**/监控栏/变量设计/舞台与实例。
2. 写 1~3 条候选:每条 `meta`(用户角色+开场变量)+ `正文`(present.v1)。同真相、第一拍可不同。
1. 读依赖:worker 集/美学/叙事/**正文组成(先抄 shell_id)**/监控栏/变量设计/舞台与实例/主角设定。
2. 写 1~3 条候选:每条 `meta`(开场变量;用户角色仅在缺主角设定时补)+ `正文`(present.v1)。同真相、第一拍可不同。
3. 推荐条的 present.v1 同时写入 `开场白全文`(对象,不是字符串)。
4. 顶层 `开场变量` = 推荐条 meta 里那份初值。冲突以叙述为准。
5. 交稿前自检:每条 `正文.shell` 与正文组成一致;JSON 搜索 `@玩家`;再自评 + 追问;输出 JSON。
5. 交稿前自检:每条 `正文.shell` 与正文组成一致;JSON 搜索 `@玩家`;正文无「用户角色.名字」行;再自评 + 追问;输出 JSON。
缺上游契约时:能写则按已有材料写开场并标开放问题;不能成立第一拍则追问 1~2 点,勿交空壳。
@@ -202,7 +202,7 @@ summary:`开场白与开场变量 · …`(点题场景)。
硬规则:
1. context-fragment.v1;自评含「玩家占位」与「版式符合」。
2. `开场白全文` 与每条候选 `正文` 必须是 present.v1 对象(含 `schema`/`shell`/`blocks.body`);`shell` 与「设计.正文组成」一致。禁止只交散文字符串。
3. `开场白候选` 1~3 条,每条含 `meta`(用户角色有代入则必填;开场变量与该条同真相)+ `正文`。顶层 `开场变量` 必填(推荐条初值)。
3. `开场白候选` 1~3 条,每条含 `meta`(开场变量与该条同真相;用户角色可选,优先主角设定)+ `正文`。顶层 `开场变量` 必填(推荐条初值)。
4. 每条正文(含 body)必须含字面 `@玩家`;不发明新真值名。
5. summary:`开场白与开场变量 · {brief 缩略}`。
@@ -219,11 +219,12 @@ summary:`开场白与开场变量 · …`(点题场景)。
## examples
```examples
好:正文为 present.v1,shell 与正文组成相同;body 里有字面 @玩家;meta 带用户角色与开场变量。
好:正文为 present.v1,shell 与正文组成相同;body 里有字面 @玩家;meta 带开场变量;名片在主角设定。
好:prose 壳也包成 {"schema":"present.v1","shell":"prose","blocks":{"body":"冷风灌进来时,@玩家还握着空水瓶。"}}。
好:「你(@玩家)站在闸机前,票夹是空的。」写在 blocks.body。
坏:`开场白全文` 只是一段字符串,没有 present.v1。
坏:shell 与正文组成不一致,或灌了该壳没有的区域。
坏:全文只有「你推开门」——零个 `@玩家`。
坏:「林晚推开门」——写死姓名。
坏:在正文或开场白全文里写「用户角色.名字: …」——名片应落「主角设定」。
```
@@ -17,12 +17,12 @@ when: |
when_not: |
旁观或把角色当棋子、不要代入身份 → 不排。
只要体验感觉、不要名片 → 「美学纲领与交互范式」。
NPC 名片 → 「具体实例」。开场第一拍 → 「开场白与开场变量」。
NPC 名片 → 「具体实例」。开场第一拍(叙事)→ 「开场白与开场变量」;名片本身仍走本步,勿写进开场白。
boundary: |
本技能:@玩家 扮演的那一张名片(名字、背景、特殊设定)。
美学纲领与交互范式:体验与轮转——本步不重定。
实现机制:世界法则——金手指写在本步「它能做什么」,法则来源不写。
开场白:第一屏怎么开始——本步不定时间地点冲突。
开场白:第一屏怎么开始——本步不定时间地点冲突;也不把名字/简介塞进开场正文。
feeds: gm
```