保证开场产物可在游玩时再替换为当前用户角色。 Co-authored-by: Cursor <cursoragent@cursor.com>
7.4 KiB
7.4 KiB
开场白与开场变量
技能文档。程序只切割下方 fence 块;
##标题仅供人读。
产物外壳:docs/context-fragment-design.md。
创作终节点:规格与呈现契约已齐。写出 1~多条开场白供选定;选定后程序落库、关闭工作流、保存定稿。
不必再调磁盘 workeropening-generator(无本步时它仍可作兜底落库)。
meta
name: 开场白与开场变量
id: opening-setup
artifact: 设计.开场白与开场变量
declaration: >
创作终节点:写出 1~多条开场白(须含字面 @玩家)并钉同真相初值;选定后落库、结束创作并保存定稿
when: |
收成链已齐(至少体验契约可引用,且「细化终稿」已产出或可立即收成运行规格),需要可开玩的第一段剧情与同真相初值。
排在收成之后作最后一步。用户要进游玩但还没有第一屏 → 排。
when_not: |
体验/呈现仍混沌 → 先「美学纲领与交互范式」与「回复呈现」「正文组成」等。
只要改文风不要开场 → 「叙事指南与故事推进」。
只要改真值规则不要开场文 → 「变量设计与更新规则」。
运行规格未齐 → 先「细化终稿」。尚未选定开场前若要补前序节点(如 NPC)→ 插在本步之前,勿以「收口已排入」拒绝追加。
boundary: |
本技能是创作终节点:1~多条开场正文(按回复呈现清单 + 正文组成展示)+ 开场变量初值。
必须遵守已验收的叙事指南、回复呈现、正文组成、变量设计;不重做这些契约。
具体实例:开场可引用已有实例名片,不在本步新造百科。
选定后由程序写入 输出.开场白 / 运行.初始变量 / 变量.当前,关闭 DAG 并保存定稿;不要在本步之后再排其它能力。
feeds: narrator
opening
设定已齐时,用几句话定开场第一拍:
1. 玩家睁眼/进场时在哪、正发生什么?
2. 开场结束时,TA 显然可以做什么?
3. 此时各真值大概是多少?(能推断的直接说;推不出的标「要问」)
task
你正在执行「开场白与开场变量」。这是创作最后一步。产物必须是 **context-fragment.v1** JSON,写入「设计.开场白与开场变量」。
主产物:1~3 条可开玩开场白(选定后落库结束创作)。开场须服从叙事指南、正文组成可见块序、监控栏(若有)、变量真值。
**用户角色占位(产物规格,不是可选项):**
- `开场白全文`、`开场白候选`、有字的 `开场可见块.内容` 里,凡指称用户扮演角色,第三人称点名处必须写字面量 `@玩家`(六个字符:`@` + `玩家`)。
- 每条候选全文至少出现一次 `@玩家`。禁止写死具体姓名(如林晚、阿泽);禁止用「用户」「主角」顶名字位。
- 「你」可与 `@玩家` 并用;若全文只有「你」、零个 `@玩家`,视为不合格,改写后再交。
- 进游玩时程序把 `@玩家` 换成当前用户角色名;创作稿必须保留字面 `@玩家`。
执行顺序:
1. 读依赖:worker 集/美学/叙事/正文组成/监控栏/变量设计/舞台与实例。
2. 写 1~3 条开场候选(同真相、第一拍可不同)→ `开场白全文` + `开场白候选`(含 `@玩家`)。
3. 按正文组成可见块填 `开场可见块`;隐藏段通常空。
4. 钉开场变量(与开场同真相;冲突以叙述为准)。
5. 若有监控栏:开场快照(短)。
6. 交稿前自检:全文搜索确认每条候选含 `@玩家`;再自评 + 追问;输出 JSON。
缺上游契约时:能写则按已有材料写开场并标开放问题;不能成立第一拍则追问 1~2 点,勿交空壳。
summary:`开场白与开场变量 · …`(点题场景)。
principles
1. 开场为主,表为配套。
2. 版式跟正文组成;文风跟叙事指南。
3. 同真相:开场与开场变量一致。
4. 可行动:第一拍结束有下一步空间。
5. 短:愿点进游玩,非第一章。
6. 不剧透隐藏档。
7. 用户角色名位 = 字面 `@玩家`(见 task 规格);不合格则改写。
probe
开场地点/冲突不清;某真值开场值推不出;版式块是否都要在开场出现;候选是否漏写 `@玩家`。一次 1~2 点。
output
{
"schema": "context-fragment.v1",
"技能": "开场白与开场变量",
"brief": "一句话:开场场景 + 关键初值",
"mount": ["narrator"],
"稳变": "stable",
"正文": {
"依据契约": [
"正文组成 / 叙事指南 / 监控栏 / 变量设计 等已遵循要点"
],
"开场可见块": [
{
"块id": "与正文组成.visible块一致",
"内容": "该块开场文本;点名用户角色写 @玩家"
}
],
"开场白全文": "例:清晨,@玩家推开宿舍门,走廊里只有冷风。……",
"开场白候选": [
"推荐那条(与开场白全文相同;必含 @玩家)",
"可选第二条(必含 @玩家)",
"可选第三条(必含 @玩家)"
],
"开场变量": [
{
"名": "与变量设计真值名一致",
"值": "初值",
"依据": "开场事实/设定推断"
}
],
"监控栏开场快照": [
{
"名": "监控栏字段名",
"显示": "短展示"
}
],
"隐藏段开场": "通常空;若有定界内容则写出",
"落库提示": {
"输出.开场白": "开场白全文",
"运行.初始变量": "开场变量 → 表格式",
"变量.当前": "与初始变量对齐"
},
"用户可行动空间": "开场结束后玩家显然能尝试什么"
},
"自评": {
"维度": [
{
"名": "契约符合",
"分数": 8,
"说明": "是否遵循正文组成/叙事/监控栏"
},
{
"名": "同真相",
"分数": 8,
"说明": "开场叙述与开场变量是否一致"
},
{
"名": "可开玩",
"分数": 8,
"说明": "是否短、可感、有下一步行动空间"
},
{
"名": "玩家占位",
"分数": 8,
"说明": "每条候选是否含字面 @玩家、无写死姓名"
}
],
"薄弱点": "一句话"
},
"追问": {
"导语": "为钉准开场,还需确认:",
"题目": [
{
"问": "…",
"建议选项": ["选项A", "选项B", "其它(请写明)"],
"示例": "可选"
}
]
},
"开放问题": []
}
硬规则:
- context-fragment.v1;自评含「玩家占位」。
开场白全文与开场变量必填;开场白候选1~3 条;监控栏无则为[]。- 每条开场候选正文必须含字面
@玩家;不发明新真值名。 - summary:
开场白与开场变量 · {brief 缩略}。
checklist
- [ ] 1~3 条候选,推荐条 = `开场白全文`?
- [ ] 每条候选全文可搜到 `@玩家`?无写死姓名?
- [ ] 版式与叙事口径?变量同真相?有行动空间?
- [ ] 未剧透隐藏档、未写成第一章?
examples
好:「冷风灌进来时,@玩家还握着空水瓶。」(有字面 @玩家)
好:「你(@玩家)站在闸机前,票夹是空的。」(你 + @玩家)
坏:全文只有「你推开门」——零个 `@玩家`。
坏:「林晚推开门」——写死姓名。