统一开场白须含字面玩家占位并收紧转述配方。
保证开场产物可在游玩时再替换为当前用户角色。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -143,7 +143,7 @@ modules:
|
|||||||
name: 开场白与开场变量
|
name: 开场白与开场变量
|
||||||
closer: true
|
closer: true
|
||||||
declaration: >-
|
declaration: >-
|
||||||
创作终节点:写出 1~多条开场白并钉同真相初值;
|
创作终节点:写出 1~多条开场白(正文须含字面 @玩家)并钉同真相初值;
|
||||||
选定后程序落库、结束创作并保存定稿
|
选定后程序落库、结束创作并保存定稿
|
||||||
artifact: 设计.开场白与开场变量
|
artifact: 设计.开场白与开场变量
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ name: 开场白与开场变量
|
|||||||
id: opening-setup
|
id: opening-setup
|
||||||
artifact: 设计.开场白与开场变量
|
artifact: 设计.开场白与开场变量
|
||||||
declaration: >
|
declaration: >
|
||||||
创作终节点:写出 1~多条开场白并钉同真相初值;选定后落库、结束创作并保存定稿
|
创作终节点:写出 1~多条开场白(须含字面 @玩家)并钉同真相初值;选定后落库、结束创作并保存定稿
|
||||||
when: |
|
when: |
|
||||||
收成链已齐(至少体验契约可引用,且「细化终稿」已产出或可立即收成运行规格),需要可开玩的第一段剧情与同真相初值。
|
收成链已齐(至少体验契约可引用,且「细化终稿」已产出或可立即收成运行规格),需要可开玩的第一段剧情与同真相初值。
|
||||||
排在收成之后作最后一步。用户要进游玩但还没有第一屏 → 排。
|
排在收成之后作最后一步。用户要进游玩但还没有第一屏 → 排。
|
||||||
@@ -42,20 +42,25 @@ feeds: narrator
|
|||||||
## task
|
## task
|
||||||
|
|
||||||
```task
|
```task
|
||||||
你正在执行「开场白与开场变量」。这是**创作最后一步**。产物必须是 **context-fragment.v1** JSON,写入「设计.开场白与开场变量」。
|
你正在执行「开场白与开场变量」。这是创作最后一步。产物必须是 **context-fragment.v1** JSON,写入「设计.开场白与开场变量」。
|
||||||
|
|
||||||
主产物是 **1~多条开场剧情**(用户第一屏),不是填表工具。用户将选定其中一条;选定后程序结束创作并保存。
|
主产物:1~3 条可开玩开场白(选定后落库结束创作)。开场须服从叙事指南、正文组成可见块序、监控栏(若有)、变量真值。
|
||||||
必须遵循:叙事指南与故事推进、正文组成(可见块序、隐藏段若开场就要写)、监控栏字段(若启用)、变量真值名单。
|
|
||||||
|
**用户角色占位(产物规格,不是可选项):**
|
||||||
|
- `开场白全文`、`开场白候选`、有字的 `开场可见块.内容` 里,凡指称用户扮演角色,第三人称点名处必须写字面量 `@玩家`(六个字符:`@` + `玩家`)。
|
||||||
|
- 每条候选全文至少出现一次 `@玩家`。禁止写死具体姓名(如林晚、阿泽);禁止用「用户」「主角」顶名字位。
|
||||||
|
- 「你」可与 `@玩家` 并用;若全文只有「你」、零个 `@玩家`,视为不合格,改写后再交。
|
||||||
|
- 进游玩时程序把 `@玩家` 换成当前用户角色名;创作稿必须保留字面 `@玩家`。
|
||||||
|
|
||||||
执行顺序:
|
执行顺序:
|
||||||
1. 读依赖:worker 集/美学/叙事/正文组成/监控栏/变量设计/舞台与实例。
|
1. 读依赖:worker 集/美学/叙事/正文组成/监控栏/变量设计/舞台与实例。
|
||||||
2. 写出 **1~3 条**可开玩的开场白候选(角度/第一拍可不同,设定必须同一真相)。推荐那条写入 `开场白全文`,全部写入 `开场白候选`。
|
2. 写 1~3 条开场候选(同真相、第一拍可不同)→ `开场白全文` + `开场白候选`(含 `@玩家`)。
|
||||||
3. 按正文组成的可见块写出开场各块内容(至少正文块);隐藏段仅当开场即需声明初值变更时使用(通常初值走「开场变量」字段,隐藏段可空)。
|
3. 按正文组成可见块填 `开场可见块`;隐藏段通常空。
|
||||||
4. 钉开场变量:与开场事实同一真相;能从设定推断的填上;冲突则以开场叙述为准并改表。
|
4. 钉开场变量(与开场同真相;冲突以叙述为准)。
|
||||||
5. 若有监控栏:给出开场时监控栏展示快照(短)。
|
5. 若有监控栏:开场快照(短)。
|
||||||
6. 自评 + 追问;输出 JSON。
|
6. 交稿前自检:全文搜索确认每条候选含 `@玩家`;再自评 + 追问;输出 JSON。
|
||||||
|
|
||||||
禁止:先问卷填表再糊开场;禁止开场与初值打架;禁止重写 Worker 集;禁止只交空壳等下一节点。
|
缺上游契约时:能写则按已有材料写开场并标开放问题;不能成立第一拍则追问 1~2 点,勿交空壳。
|
||||||
|
|
||||||
summary:`开场白与开场变量 · …`(点题场景)。
|
summary:`开场白与开场变量 · …`(点题场景)。
|
||||||
```
|
```
|
||||||
@@ -63,18 +68,19 @@ summary:`开场白与开场变量 · …`(点题场景)。
|
|||||||
## principles
|
## principles
|
||||||
|
|
||||||
```principles
|
```principles
|
||||||
1. 开场为主,表为配套:表服务「这一刻世界是什么样」。
|
1. 开场为主,表为配套。
|
||||||
2. 遵守版式:用户看见的结构按正文组成;文风按叙事指南;笔墨焦点同样适用。
|
2. 版式跟正文组成;文风跟叙事指南。
|
||||||
3. 同真相:开场写身无分文 → 资产真值不得很富。
|
3. 同真相:开场与开场变量一致。
|
||||||
4. 可行动:第一拍结束要有「接下来能做什么」的空间,非说明书。
|
4. 可行动:第一拍结束有下一步空间。
|
||||||
5. 短:可读完、愿意进游玩;不是第一章全文。
|
5. 短:愿点进游玩,非第一章。
|
||||||
6. 隐藏真值/未解锁映射档不得剧透进可见开场。
|
6. 不剧透隐藏档。
|
||||||
|
7. 用户角色名位 = 字面 `@玩家`(见 task 规格);不合格则改写。
|
||||||
```
|
```
|
||||||
|
|
||||||
## probe
|
## probe
|
||||||
|
|
||||||
```probe
|
```probe
|
||||||
开场地点/冲突不清;某真值开场值推不出;版式块是否都要在开场出现(有的块首轮可空)。一次 1~2 点。
|
开场地点/冲突不清;某真值开场值推不出;版式块是否都要在开场出现;候选是否漏写 `@玩家`。一次 1~2 点。
|
||||||
```
|
```
|
||||||
|
|
||||||
## output
|
## output
|
||||||
@@ -93,14 +99,14 @@ summary:`开场白与开场变量 · …`(点题场景)。
|
|||||||
"开场可见块": [
|
"开场可见块": [
|
||||||
{
|
{
|
||||||
"块id": "与正文组成.visible块一致",
|
"块id": "与正文组成.visible块一致",
|
||||||
"内容": "该块开场文本;可空块写空字符串并说明为何首轮空"
|
"内容": "该块开场文本;点名用户角色写 @玩家"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"开场白全文": "推荐那条:按块序拼好的用户可见开场(主阅读件)",
|
"开场白全文": "例:清晨,@玩家推开宿舍门,走廊里只有冷风。……",
|
||||||
"开场白候选": [
|
"开场白候选": [
|
||||||
"推荐那条(与开场白全文相同)",
|
"推荐那条(与开场白全文相同;必含 @玩家)",
|
||||||
"可选第二条:同一真相、不同第一拍/角度",
|
"可选第二条(必含 @玩家)",
|
||||||
"可选第三条"
|
"可选第三条(必含 @玩家)"
|
||||||
],
|
],
|
||||||
"开场变量": [
|
"开场变量": [
|
||||||
{
|
{
|
||||||
@@ -139,6 +145,11 @@ summary:`开场白与开场变量 · …`(点题场景)。
|
|||||||
"名": "可开玩",
|
"名": "可开玩",
|
||||||
"分数": 8,
|
"分数": 8,
|
||||||
"说明": "是否短、可感、有下一步行动空间"
|
"说明": "是否短、可感、有下一步行动空间"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"名": "玩家占位",
|
||||||
|
"分数": 8,
|
||||||
|
"说明": "每条候选是否含字面 @玩家、无写死姓名"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"薄弱点": "一句话"
|
"薄弱点": "一句话"
|
||||||
@@ -158,23 +169,25 @@ summary:`开场白与开场变量 · …`(点题场景)。
|
|||||||
```
|
```
|
||||||
|
|
||||||
硬规则:
|
硬规则:
|
||||||
1. context-fragment.v1;自评契约符合/同真相/可开玩。
|
1. context-fragment.v1;自评含「玩家占位」。
|
||||||
2. `开场白全文` 与 `开场变量` 必填;`开场白候选` 1~3 条(含推荐);监控栏快照无监控栏则为 `[]`。
|
2. `开场白全文` 与 `开场变量` 必填;`开场白候选` 1~3 条;监控栏无则为 `[]`。
|
||||||
3. 不输出完整 worker 集;不发明新真值名(须来自变量设计,若无变量设计则可极少数字段并标明临时)。
|
3. 每条开场候选正文必须含字面 `@玩家`;不发明新真值名。
|
||||||
4. summary:`开场白与开场变量 · {brief 缩略}`。
|
4. summary:`开场白与开场变量 · {brief 缩略}`。
|
||||||
|
|
||||||
## checklist
|
## checklist
|
||||||
|
|
||||||
```checklist
|
```checklist
|
||||||
- [ ] 写出 1~3 条开场候选,推荐条与 `开场白全文` 一致?
|
- [ ] 1~3 条候选,推荐条 = `开场白全文`?
|
||||||
- [ ] 开场遵循正文组成块序与叙事口径?
|
- [ ] 每条候选全文可搜到 `@玩家`?无写死姓名?
|
||||||
- [ ] 变量与开场同真相?可行动空间清楚?
|
- [ ] 版式与叙事口径?变量同真相?有行动空间?
|
||||||
- [ ] 未剧透隐藏档?未写成第一章全文?
|
- [ ] 未剧透隐藏档、未写成第一章?
|
||||||
```
|
```
|
||||||
|
|
||||||
## examples
|
## examples
|
||||||
|
|
||||||
```examples
|
```examples
|
||||||
好:末日醒来缺水——开场正文写干渴与门外声响;口粮=1、威胁=邻层异响;监控栏短显示;无姓名性别栏。
|
好:「冷风灌进来时,@玩家还握着空水瓶。」(有字面 @玩家)
|
||||||
坏:先填完 20 个表字段再写两句「你醒了」;开场说破产表里却有百万资产。
|
好:「你(@玩家)站在闸机前,票夹是空的。」(你 + @玩家)
|
||||||
|
坏:全文只有「你推开门」——零个 `@玩家`。
|
||||||
|
坏:「林晚推开门」——写死姓名。
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
recipes:
|
recipes:
|
||||||
- id: 数据化跑团体验
|
- id: 数据化跑团体验
|
||||||
name: 数据化跑团体验
|
name: 数据化跑团体验
|
||||||
declaration: 回合互动跑团;跨轮数值真值 + 分档映射投影(带数值)
|
declaration: AIRP / 交互式小说;设定为主,可选跨轮真值与分档映射
|
||||||
- id: 文本生成器
|
- id: 文本生成器
|
||||||
name: 文本生成器
|
name: 文本生成器
|
||||||
declaration: 创作收范例与模仿面;开玩后主世界出正文、转述出文风/壳
|
declaration: 创作收范例与模仿面;开玩后主世界出正文、转述出文风/壳
|
||||||
|
|||||||
@@ -1,28 +1,34 @@
|
|||||||
# 数据化跑团体验 · Boss 直聘进料配方
|
# 数据化跑团体验 · Boss 直聘进料配方
|
||||||
# 注入转述总助手「本局配方」;不种节点 DAG。
|
# 注入转述总助手「本局配方」;不种节点 DAG。
|
||||||
|
# 名字带「数据化」,内核仍是 AIRP / 交互式小说。
|
||||||
|
# 各能力何时落盘 → 系统提示【能力 · 何时落盘】(modules meta);本配方只给顺序骨架。
|
||||||
|
|
||||||
when: >-
|
when: >-
|
||||||
用户要回合制角色扮演 / 沉浸推演,且体验靠跨轮数值或阶段推进
|
用户要回合制角色扮演、沉浸推演或交互式小说(AIRP / IF);
|
||||||
(好感、资源、章节、地点、任务阶段等);按值换态度、大纲或场景文案
|
在普通设定之外,还可能需要跨轮记住少量状态,或按阈值换态度/大纲/场景文案
|
||||||
|
|
||||||
core: >-
|
core: >-
|
||||||
把用户原话收成可开玩规格:设定类 insert;跨轮状态 declare_variable;
|
理论上总是先设计美学纲领与体验核心,用来锚定「用户会在意什么」;
|
||||||
阈值→文案 declare_map。作用对象是本局黑板;开玩后由主世界层读投影与真值写正文。
|
再按需用核心规则(实现机制)钉下那套特殊故事设计;然后才往外兑现舞台、
|
||||||
默认只开主世界层,原文即终稿。
|
叙事、真值、映射、版式与开场。作用对象是本局黑板;开玩后主世界层读投影与
|
||||||
|
真值写正文,默认只开主世界层、原文即终稿。
|
||||||
|
具体某一刀能不能落:对照【能力 · 何时落盘】的何时用 / 何时不用;本配方不重复罗列。
|
||||||
|
|
||||||
process:
|
process:
|
||||||
- 先钉站位、每轮看什么、体验核与禁忌 → insert 用户.需求 / 设计.美学 / 设计.世界设定 等(order 偏小)。缺一句关键承诺就问一句;勿问卷。
|
- 每轮先对照【能力 · 何时落盘】与已有产物:只推进「何时用」已成立的一刀;条件含糊或未到 → 短确认或问挡住的 1 点,不批量 insert / declare。
|
||||||
- 必须跨轮记住的状态 → declare_variable(key、type、initial、user_visible)。只立承重字段;性格/态度长文不立成可写变量。
|
- 【骨架序 · 1】美学纲领与体验核心(能力表里通常总是先做)→ insert 设计.美学纲领与交互范式。模糊则细化;不确定则询问。未锚定前不建议下游。
|
||||||
- 有「到某值换一套文案」→ declare_map(field 对准真值;bands 写区间或精确值 + content;target_tag 用 上下文.* 或 大纲.*)。缺分档细节就问档位边界与每档要点,再落盘。
|
- 【骨架序 · 2】实现机制(仅当能力「何时用」成立:有拿掉就换骨架的变造法则)→ insert 设计.实现机制。何时不用成立则跳过,不追问要不要加规则。
|
||||||
- 需要版式 → insert 设计.正文组成;要第一幕 → 按该格式 insert 设计.开场白。用户本轮只谈数值则只做 D,不硬塞开场白。
|
- 【骨架序 · 3+】其余能力(舞台、生成规则、叙事、变量、回复呈现、正文组成、开场白…)各自对照何时用再落;变量走 declare_variable / declare_map。一次一两刀。
|
||||||
- 材料只够本配方就只做本配方;聊完一轮用自然语言短确认 + 建议下一刀补什么。
|
- 聊完一轮:短确认本轮落了什么 + 建议「条件已近」的下一刀(勿推荐尚未满足何时用的能力)。
|
||||||
|
|
||||||
principles:
|
principles:
|
||||||
- 承重才立真值;派生文案 = f(真值),只走映射投影。
|
- 锚定优先:美学不定稳,不做下游;完善设定时不要忘掉核心体验。
|
||||||
- 分档正文写在 declare_map 的 bands.content;缺则问清后再 declare,不要用 insert 把整张分档表塞进设定散文。
|
- 何时落盘以能力 meta 为准;配方顺序是骨架,不是许可抢跑。
|
||||||
- 默认无独立叙事转述、无旁观;用户点名要文风层或程序盯表时再议。
|
- 正推:美学卡上用户会在意的部分 → 缺口 → 再落对应产物;换核就换补什么。
|
||||||
- 保留用户原意;规格只走 toolcall,聊天只确认与建议。
|
- 承重才立真值;派生文案 = f(真值),只走映射。真值是兑现体验的加层,不是主戏。
|
||||||
|
- 默认无独立叙事转述、无旁观;用户点名再议。
|
||||||
|
- 保留用户原意;规格只走 toolcall。
|
||||||
|
|
||||||
brief: 数据化跑团:设定 + 真值 + 分档映射 → 可开玩
|
brief: 美学锚定 → 按需机制 → 对照能力何时落盘再兑现;可选真值+映射
|
||||||
|
|
||||||
steps: []
|
steps: []
|
||||||
|
|||||||
@@ -21,5 +21,5 @@ suggested_outputs:
|
|||||||
- 运行.初始变量
|
- 运行.初始变量
|
||||||
- 变量.当前
|
- 变量.当前
|
||||||
prompt_excerpt: |
|
prompt_excerpt: |
|
||||||
若有设计.开场白与开场变量:落库开场白全文与开场变量,遵守正文组成版式。
|
若有设计.开场白与开场变量:落库开场白全文与开场变量,遵守正文组成版式;保留字面 @玩家。
|
||||||
若无:现写开场,表与开场同真相。禁止先填表再糊开场。
|
若无:现写开场(正文须含 @玩家),表与开场同真相。禁止先填表再糊开场。
|
||||||
|
|||||||
@@ -42,11 +42,11 @@ contextSegments:
|
|||||||
创作末尾兜底(DAG **没有**「开场白与开场变量」时才需要本 worker)。
|
创作末尾兜底(DAG **没有**「开场白与开场变量」时才需要本 worker)。
|
||||||
规格已定。优先读取 **`设计.开场白与开场变量`**:
|
规格已定。优先读取 **`设计.开场白与开场变量`**:
|
||||||
|
|
||||||
- 若已有且可用:把其中「开场白全文」写入 `输出.开场白`,把「开场变量」写成 `运行.初始变量` / `变量.当前`(表格式);可微调不可另起炉灶。
|
- 若已有且可用:把其中「开场白全文」写入 `输出.开场白`,把「开场变量」写成 `运行.初始变量` / `变量.当前`(表格式);可微调不可另起炉灶。微调时仍须保留字面 `@玩家`。
|
||||||
- 若无:再站在 Worker 集 + 正文组成 + 叙事指南 + 变量设计上现写开场,并钉同真相初值。
|
- 若无:再站在 Worker 集 + 正文组成 + 叙事指南 + 变量设计上现写开场,并钉同真相初值。
|
||||||
|
|
||||||
```text
|
```text
|
||||||
主产物:输出.开场白(用户读的第一幕;须符合正文组成版式)
|
主产物:输出.开场白(用户读的第一幕;须符合正文组成版式;须含字面 @玩家)
|
||||||
辅产物:运行.初始变量 / 变量.当前(与开场同一真相)
|
辅产物:运行.初始变量 / 变量.当前(与开场同一真相)
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -57,7 +57,7 @@ contextSegments:
|
|||||||
你是开场落库者(兼必要时的开场作者):
|
你是开场落库者(兼必要时的开场作者):
|
||||||
|
|
||||||
1. 先读 `设计.开场白与开场变量`(若有),再读 Worker 集 / 定稿摘要 / 用户需求
|
1. 先读 `设计.开场白与开场变量`(若有),再读 Worker 集 / 定稿摘要 / 用户需求
|
||||||
2. **落库或写出开场白**:遵守叙事指南与正文组成(块序、监控栏、隐藏段约定)
|
2. **落库或写出开场白**:遵守叙事指南与正文组成;用户角色名位写字面 `@玩家`
|
||||||
3. **落表**:初值与开场事实一致;能推断则推断
|
3. **落表**:初值与开场事实一致;能推断则推断
|
||||||
|
|
||||||
## 重心(务必遵守)
|
## 重心(务必遵守)
|
||||||
@@ -65,16 +65,17 @@ contextSegments:
|
|||||||
```text
|
```text
|
||||||
结合前面的世界 + 故事 + 表结构 → 写开场白
|
结合前面的世界 + 故事 + 表结构 → 写开场白
|
||||||
表是开场的配套落地,服务「这一刻世界是什么样」
|
表是开场的配套落地,服务「这一刻世界是什么样」
|
||||||
禁止:先当问卷填完表,再随便糊一段开场
|
开场正文必须含字面 @玩家(至少一处);禁止写死姓名;禁止全文只有「你」而零个 @玩家
|
||||||
禁止:开场与表互相打架(开场写身无分文,表里资产却很多)
|
不合格则改写后再写入 输出.开场白
|
||||||
```
|
```
|
||||||
|
|
||||||
## 开场白怎么写
|
## 开场白怎么写
|
||||||
|
|
||||||
- 扎根已定设定:地点、规则、人物关系、核心前提(如「不会被感染」)都要在场或可感,不要另起炉灶
|
- 扎根已定设定:地点、规则、人物关系、核心前提都要在场或可感
|
||||||
- 遵守 `narrative_guide` 与 `input_protocol`;隐藏表字段不要剧透进开场
|
- 遵守 narrative_guide 与 input_protocol;隐藏表字段不要剧透
|
||||||
- 第一拍就要有「接下来用户能做什么」的空间,不要说明书/设定集口吻
|
- 第一拍要有「接下来能做什么」的空间
|
||||||
- 长度以可读完、愿意点进游玩为准;不要写成第一章全文
|
- 长度以可读完、愿点进游玩为准
|
||||||
|
- **用户角色占位**:第三人称点名处写 `@玩家`;「你」可并用;交稿前确认正文含 `@玩家`。例:`冷风里,@玩家握着空瓶。`
|
||||||
|
|
||||||
## 表(辅,与开场同真相)
|
## 表(辅,与开场同真相)
|
||||||
|
|
||||||
@@ -131,7 +132,7 @@ contextSegments:
|
|||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
"outputs": {
|
"outputs": {
|
||||||
"输出.开场白": "……(主产物,完整可读)",
|
"输出.开场白": "……须含字面 @玩家……",
|
||||||
"运行.初始变量": "{ ... rows ... }",
|
"运行.初始变量": "{ ... rows ... }",
|
||||||
"变量.当前": "{ ... 与初始一致 ... }"
|
"变量.当前": "{ ... 与初始一致 ... }"
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user