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