引入上下文片段、固定槽与投影排序,并完善机遇裁定与游玩期 UI。

把创作产物收敛为可挂载片段与 play_slots/context_order,同步修订世界模拟器模块与运行时拼装。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-08-03 01:36:32 +08:00
parent 00dfcb6615
commit 94f67fa744
69 changed files with 7786 additions and 1283 deletions

View File

@@ -1,135 +1,147 @@
# Worker 规格
# 游玩拓扑
> 能力文档。程序只切割下方 **fence 块**`##` 标题仅供人读。
> 写法说明:`docs/world-simulator-modules.md`;范例:`aesthetics-interaction`
> 可选默认契约见 `worker-templates/`(缺省合并用,非本步全文)
> **禁止自由发明执行单元。** 只从固定槽勾选;程序按 `play_slots` 展开 workers
> 方法:`docs/progressive-data-design.md`;模板:`worker-templates/`。
## meta
```meta
name: Worker 规格
name: 游玩拓扑
id: worker-spec
artifact: 设计.worker规格
declaration: >
钉一个游玩期执行单元(职责、读写、挂载);多演员时可多次调用
勾选固定游玩槽位(主世界层 / 叙事转述 / 可选角色视角 / 可选机遇裁定;写手路径为大纲+章节),
禁止自由发明新的执行单元 ref
when: |
已能说出「游玩时谁上场做什么」,需要把某一个演员钉成可调度契约时;
多演员需分次钉清时(本能力可反复)
体验契约已大致清楚,需要决定游玩期启用哪些固定槽时;
要修订已勾选槽位(开/关 perspective、chance 等)时
when_not: |
体验/机制仍混沌,还说不清删掉谁会坏体验时 → 先上游能力
已在收成「细化终稿」且只需合并已有规格 → 交给细化终稿,勿重复问卷
体验/站位仍混沌 → 先美学纲领与交互范式
只需收成完整运行规格 → 交给细化终稿(本步只交槽位勾选)
不要用本步「发明」世界观/性格/变量专用执行单元。
boundary: |
本能力:一次或本步焦点内钉清一个游玩期执行单元中文名、ref、职责、何时上场、读写 tag、验收点、为何需要
产物写入「设计.worker规格」可含累积列表最终合并进「设计.worker集」由「细化终稿」完成
细化终稿:收成完整 Worker 集、表、常驻上下文;本步不假装交终稿
拓扑图谱:多演员依赖与数据流总图;本步可写本单元读写,不画全图
生成规则 / 叙事指南:规则与态度正文;本步只声明挂载哪些 tag不重写全文
本能力:输出 play_slots及写手路径的 writing_slots可选覆盖挂载说明不写完整 设计.worker集
细化终稿:按本步勾选展开 workers、合并常驻与 tables
变量设计 / 变量控制上下文:真值与投影,不是推理槽
机遇裁定chance按需程序工具槽不进每轮管线
叙事指南与故事推进:挂到转述槽(推进可兼挂主世界层);世界/机制:挂到主世界层——本步只点名槽
```
## opening
```opening
先点名「下一个要钉的演员」(一个即可):
游玩时用哪些固定槽?(只勾选,不要发明新角色名当「新系统」)
1. 中文称呼TA 在游玩里叫什么?(例:世界推进、叙事转述、大纲、章节正文)
2. 职责一句话:删掉 TA 会丢掉哪段体验?
3. 何时上场:每轮?用户点名写章时?某条件触发?
世界模拟类常见:
1. 主世界层(裁决,几乎总要)——要 / 不要
2. 叙事转述(写你看见的正文,几乎总要)——要 / 不要
3. 角色视角(仅当有强秘密、不能进主世界层时)——要 / 不要(默认不要)
4. 机遇裁定(骰子/抽签/比点等真随机,按需调用、不进每轮)——要 / 不要(默认不要;有战斗检定、抽签事件时建议开)
若你已有多个演员想法,先写最核心的一个;其余可再跑本能力
写手/扩写类常见:大纲/细纲 + 章节正文(固定两槽,同上只勾选)
变量、性格分档、世界观:不是槽,后面用变量/世界等技能收进上下文。
```
## task
```task
你正在执行剧本中的「Worker 规格」步骤。产物写入「设计.worker规格」。
你正在执行「游玩拓扑」。产物写入「设计.worker规格」。
一次 design-step 以钉清**一个**游玩期执行单元为主;若用户一次抛出多个且关系简单,可写入 `actors` 数组但须逐个写清 rationale并在 summary 标明本步焦点
核心操作:让用户勾选固定槽,写成 `play_slots`(世界模拟)或 `writing_slots`(扩写)。**禁止**新建未在固定列表中的 ref
固定 ref 白名单:
- 世界模拟每轮:`world-simulator`gm、`narrator`、`role-decide`perspective默认关
- 世界模拟按需:`chance`机遇裁定默认关invocation=on_demand
- 扩写:`outline`、`chapter-writer`
- 禁止:`variable-update`、自造 kebab、为世界观/性格再拆槽
执行顺序:
1. 读依赖产物与体验契约;正推「需要谁」——禁止题材默认演员套餐
2. 若已有「设计.worker规格」增量同 ref 更新;新 ref 追加;不要无故删除用户已验收条目(除非用户要求改)。
3. 为该单元填写name中文、ref英文 kebab可与 worker-templates 对齐、duty、when、rationale、acceptance、context/outputs 建议
4. acceptance面向用户的可读终稿倾向 `review`;纯中间裁决/整理倾向 `continue`;吃不准就 ask_user
5. ref 可参考包内模板(如 narrator、world-simulator、outline、chapter-writer但必须以本局体验为准勿强行两端都上
6. 输出符合 output 的 JSON
1. 读配方与体验契约,判断路径:世界模拟 vs 写手分段
2. 默认世界模拟:`gm: true, narrator: true, perspective: false, chance: false`
仅信息隔离才开 perspective需要骰子/抽签/比点等真随机时开 chance
3. 写手路径:`outline` + `chapter-writer` 默认都开;用户明确只要正文则可关 outline
4. 可写简短 `mount_notes`(哪类上游产物挂哪槽),不粘贴长文
5. 输出 JSON。summary`游玩拓扑 · gm+转述` 或 `游玩拓扑 · gm+转述+机遇` 等
若程序已发默认问题:禁止重复同一开场。
summary`Worker 规格 · {中文名} · …`
若程序已发默认问题:禁止重复同一开场;在首答上补洞
```
## principles
```principles
1. 删掉检验:说不清「丢掉哪段体验」的演员不要
2. 正推:体验 → 手段 → 演员;禁止「世界模拟就一定要 world-simulator + narrator」
3. 写手/分段常见最小集:大纲/细纲outline+ 章节正文chapter-writer按需加减
4. 扮演/世界推进常见:世界裁决 + 叙事转述;能合并则问用户是否合并
5. name 给人看ref 给机器;二者成对出现
6. 本步不写完整表 schema、不写整份 Worker 集终稿
7. 常驻上下文挂载只点名「需要挂哪些已有产物 tag」不在本步粘贴长文。
1. 只勾选不发明ref 必须在白名单内
2. 默认少槽:世界模拟 = 主世界层 + 转述perspective 默认关
3. 变量 / Data / Progressive 不是执行单元
4. 删掉检验仍适用:关某个槽要说得清损失什么
5. 本步不输出完整 Worker 集、不写 tables 全文(交给细化终稿 / 变量设计)
6. 可修订已有勾选,不要为「更聪明」加槽
```
## probe
```probe
12 点
12 点
缺验收点:本演员产出是「给用户读的一段」还是「给下一演员的中间结果」?
缺 ref更接近包内哪个模板职责给中文选项勿逼用户记英文
多演员纠结:能否合并成一个?合并会损失什么
写手路径:是否需要「先大纲后正文」两个演员,还是只要分段写手?
- 正文是否必须由独立转述写?(不要则 gm 兼呈现narrator=false——需用户明确
- 是否有「主世界层不该知道的角色秘密」?(有才 perspective=true
- 扩写:要不要先验大纲再写章
不要问「还想加什么 Worker」。
```
## output
```output
{
"brief": "一句话:本步钉的演员如何服务体验",
"actors": [
{
"name": "叙事转述",
"ref": "narrator",
"duty": "…",
"when": "…",
"rationale": "删掉则…",
"acceptance": "review",
"context": {
"static": ["设计.worker集"],
"dynamic": ["用户.最新输入"]
},
"outputs": ["输出.用户展示"],
"presentation": {
"tone": "可选;转述类可填"
}
}
"brief": "一句话:本局启用哪些固定槽",
"path": "world_sim|writing",
"play_slots": {
"gm": true,
"narrator": true,
"perspective": false,
"chance": false
},
"writing_slots": {
"outline": true,
"chapter_writer": true
},
"mount_notes": [
"叙事指南与故事推进 → narrator推进兼 gm",
"世界/机制/变量规则 → gm",
"真随机检定 → chance按需",
"真值与 side_effects → 细化终稿 tables"
],
"增量说明": "相对旧稿新增/改了哪个 ref",
"开放问题": ["…"]
"开放问题": []
}
```
`acceptance` 只能是 `review``continue`。未知字段省略。
填写规则:
- `path=world_sim` 时必须有 `play_slots``writing_slots` 可省略。
- `path=writing` 时必须有 `writing_slots``play_slots` 可省略。
- `chance` 缺省视为 false为 true 时不进每轮序,仅可按需调度。
- 不要输出自造 `actors[]` / 自由 `workers[]`
- 旧产物若含 `actors[]`:本步应改写为槽位勾选,不再追加自定义 ref。
## checklist
```checklist
- [ ] 每个演员能否通过删掉检验
- [ ] name/ref 是否成对acceptance 是否写出
- [ ] 是否误交完整 设计.worker集 或表结构
- [ ] 是否题材默认套演员
- [ ] 增量是否误删已有条目?
- [ ] 是否只有白名单槽,无自造 ref
- [ ] perspective / chance / 只要正文等非常规选择是否有理由
- [ ] 是否误把变量管理做成槽?是否误把 chance 当成每轮 LLM
- [ ] 是否误交完整 设计.worker集
```
## examples
```examples
好:
- 扩写:先钉「大纲/细纲」outlinecontinue 或 review 按用户是否要验大纲再另一步钉「章节正文」chapter-writerreview
- 扮演:世界推进 continue + 叙事转述 review
- play_slots: gm+narratorperspective/chance falsemount_notes 一行
- 有凶手真名不能进 GMperspective true并说明只出反应建议
- 需要检定/抽签chance true按需程序工具
坏:
- 一次甩出 8 个演员且无 rationale
- 只写英文 id 给用户看
- 本步直接输出整份 version:1 Worker 集冒充终稿
- actors 里发明 affinity-manager、lore-keeper、dice-masterLLM
- 为性格分档再拆一个执行单元。
```