完善创作节点循环与等待态交互,并大幅打磨 Web 壳与会话运行时。

- 节点循环:配方开局直坐 DAG 第一步;验收后先问下一步意向,再确认开干并可钉编排参数;「按意见修改」只重跑当前节点。
- 询问分流:能力 opening 走说话面引导,可跳过追问按题干去重;追问与产物同轮挂载,避免拆成两段历史。
- 运行时:补强 revision 重跑、创作流程合并/进度指针、工具循环与 worker 执行;新增运行日志与 web:watch。
- 前端:统一等待态文案与底栏主按钮,完善询问卡/产物验收/呈现壳样式与交互。
- 同步世界模拟器模块提示、编排文档与相关测试。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-08-17 01:28:12 +08:00
parent 20938b04d7
commit ec474cb946
56 changed files with 7460 additions and 1372 deletions

View File

@@ -54,8 +54,10 @@ feeds: design_only
业务字段全部放在「正文」内;须含 schema / 技能 / brief建议填 mount 与稳变(本步不写数字 order
一次 design-step、一场对话、一次验收。参与方式与美学内容在同一步内交叉追问不要先交「半份交互」再开「半份美学」。
用户已答过追问:把答复写入正文三块,`追问.题目` 优先 `[]`;禁止在「交互范式」与「美学纲领」之间轮流补洞拖验收。核心体验与权限边界够用即可收。
若程序已发出默认问题:用户首答在「用户.worker答复」开场白在「创作.能力开场白」。禁止重复同一开场;在首答基础上补洞、追问、产出。
开局通常已由配方写入「设计.创作流程」第一步;若「用户.需求」已有首句:程序会跳过默认问题——首句即本步对话,只补真正缺口。
```
## principles
@@ -74,9 +76,11 @@ feeds: design_only
## probe
```probe
用户首句或黑板已有的直接采纳。一次 askUser 12 点,优先具体选项/短场景
用户首句或黑板已有的直接采纳。一次只在产物「追问」写 12 点(建议选项 + 示例);顶层 askUser 留 null不要同一问写两遍
已有一轮追问答复或核心体验+权限边界已可执行:`追问.题目` 用 `[]`,让用户验收。禁止这轮问交互、下轮问美学地来回打转。
【默认问题已覆盖】变造(原型+变点)、代入与否、最想感受到的核心。首答后按缺口补,勿重问已答清的。
若开场已跳过(用户.需求已有首句):把首句当默认问题的答复,只补真正缺口。
【参与 · 结构性】
- 用户与 <user>:代入程度 / 情感距离 / 控制期待 / 多角色
@@ -205,7 +209,7 @@ feeds: design_only
2. **公共三段**`正文`=产物主体;`自评`=完备度打分(**分数 010 十分制,禁止百分数**`追问`=导语+题目(建议选项/示例)。禁止用散文代替这三段。
3. **本技正文三块**`设定逻辑`(参与/内容维度/区域/复杂性/完备度)+ `交互范式` + `美学纲领`。未知省略或「未定」,禁止编造百科。
4. `mount` 建议挂主世界层+转述;**禁止**写数字 `order``稳变` 定稿后多为 `stable`
5. `追问.题目` 一次宜 13 题;有建议选项;允许「其它」。已答清的不要再问。
5. `追问.题目` 一次宜 13 题;有建议选项与示例;允许「其它」。已答清的不要再问。题目只写在「追问」askUser 为 null。
6. summary`美学纲领与交互范式 · {brief 缩略}`
## checklist
@@ -216,7 +220,7 @@ feeds: design_only
- [ ] 未写 order、未输出执行单元列表
- [ ] brief 能点题核心体验?变造/代入/满足来源清楚或已标未定?
- [ ] 交互范式权限与美学纲领互相保护、不矛盾?
- [ ] 追问只打薄弱点,带建议选项?
- [ ] 追问只打真正薄弱点,带建议选项?已答过则题目为空、准备验收?
- [ ] 有没有为「完整」强行填充百科或偏离用户核心?
```

View File

@@ -46,11 +46,11 @@ modules:
- key: target
label: 生成对象
required: true
hint: 本轮为哪一类内容建规则;编排时 askUser 给选项+其它
hint: 本轮为哪一类内容建规则;编排时 askUser 给选项+其它;用户改对象时必须同步改 rule_id 与步骤 id
- key: rule_id
label: 规则 id
required: false
hint: 建议英文 kebab-case;可执行时再最终钉死
hint: 英文 kebab-case,须与 target 对应女租客→female-tenants丧尸→zombies改对象时禁止沿用旧 id
- key: lifecycle_intent
label: 生命周期意图
required: false

View File

@@ -68,6 +68,7 @@ feeds: gm,auditor
4. 写满规则三块:生成与描写(可较长)+ 产物格式(**单层 JSON**:每条产物是一层键值,无嵌套对象)+ 池(需要才填;绑顶层字段)。
5. 逐字段过筛:每个属性都要能回答「对本对象族是否必要」。冗余字段删掉(如女主规则里的「性别」);对象族必需字段不得漏(如 D&D 怪物的等级、攻击骰)。
6. `rule_id`params 已给则用;否则稳定 kebab-case。已有产物按 rule_id 增量。
若本步对象与 params 不一致(用户中途改了对象),以最新对象为准并重钉对应英文 rule_id禁止沿用旧 id。
7. 按自评三维打分并填追问;输出 JSON。禁止夹带最终实例 records。
若程序已发默认问题:禁止重复开场;在首答上补洞。

View File

@@ -32,6 +32,17 @@ feeds: gm
## opening
```opening
核心体验已有方向时,用几句话想想:它具体靠什么撑住?(想到什么写什么,不必整齐;点名即可,不必论证来源或补起源史。)
1. 这体验主要靠哪些东西成立?
角色的某一面、一段关系、世界条件、规则或情境……用你自己的词点名。
例:丈夫会把异常证据合理化;力量越用越侵蚀自我;村里每年必须献祭才能过冬。
2. 拿掉或改弱哪一样,核心感觉会明显变味甚至垮掉?
一句话即可——只点「缺了就不对」的,装饰和以后再展开的先别列。
3. 若已有具体画面或作品参照,它主要指哪一切面在撑体验?
例:信息差、无法撤销的前提、身份代价、循环反馈……不必复述整部设定。
```
## task

View File

@@ -34,14 +34,14 @@ feeds: narrator
```opening
本局在固定呈现壳上做适配(不是设计新界面)。
0. 七选一壳(主面积给谁)
· prose — 纯散文(正文≈全屏)
· chat_monitor — 对话 + 顶栏芯片
· spotlight — 场面主视(正文最大)
· turn_panel — 回合面板(场面+侧栏交互)
· split_board — 双栏(左故事·右线索
· choice_dock — 选择坞(底部大行动区)
· chapter_reader — 章节阅读
0. 按「要同时看见什么」七选一:
· prose — 只要正文
· chat_monitor — 正文 + 扫状态
· spotlight — 大正文 + 弱状态
· turn_panel — 场面 + 交互物 + 行动
· split_board — 正文 ‖ 线索
· choice_dock — 局面 + 选项
· chapter_reader — 章正文 + 进度
1. 要微调什么监控字段、块称呼、要不要建议行动、tone_chrome…
2. 有没有隐藏段给模型/程序维护变量?

View File

@@ -44,90 +44,9 @@ uiPrompt: |
# 世界模拟器 · 总管
作者清单见 `docs/world-simulator-modules.md`
你只负责读取 `设计.创作流程` DAG并选择下一个创作节点
你是 **总管**:负责 design / play 的 **调度**,不直接写正文。
禁止默认把一切做成「世界模拟」;按用户意图正推最小能力组合。
- 没有 DAG 或 DAG 需要追加节点:`design-flow`
- DAG 已给出下一个可执行节点:`design-step`
## 导演 · 能力 · 剧本
```text
用户手动选【导演】recipes/ 【能力】池modules/
世界模拟器 / 扩写助手 … 美学纲领与交互范式 / …
│ │
└──────────── design-flow ───────────┘
以用户所选为起点 → 排出近期增量 DAG可追加、可同能力多次
→ 产出【剧本】流程(设计.创作流程status=open|closed
```
- **导演**:用户新建时手动选定;方法起点,可调味
- **能力**:共用工序;各导演都从同一池选型;`repeatable` 可反复编入
- **剧本**:本局谈成的**可变增量 DAG**与规格;不是一次排死的固定全程
- **禁止**:替用户猜测或改选导演;新建时不要再叠第二层「配方」选择
## 创作与游玩分界
```text
design
design-flow → 用户验收 设计.创作流程(近期 steps + status
→ 反复 design-step程序按当前步注入模块 prompt + 依赖产物)
→ 当前 steps 做完且 status=open → 再 design-flow追加 / 反复调用 / 或 closed
可选opening-generator
→ 用户手动进 play
play
用户输入
→ auditor旁观维护默认空操作无长对话史
→ perspective?(仅强信息隔离)
→ gm / world-simulator主世界层settlement.v1variable_changes 由 Runtime 合并)
→ narrator用户可见正文通常在此 review
chance 仅按需;禁止发明未声明 ref
```
## 启动agent-first
1. 首屏 `uiPrompt`
2. 用户首句 → `用户.需求` → 总管 tool loop
3. 尚无已验收流程 → `run_worker(design-flow)`
4. 流程已有未完成步骤 → `run_worker(design-step)`
5. 当前步骤都验收完但 `status=open` → 再 `design-flow`(扩步或收口)
6. `status=closed` 且步骤完成、终稿可用后若需开局 → `opening-generator`
## Skill 注册表
| id | 说明 |
|----|------|
| design-flow | 以用户已选导演为起点,编排/增量修订剧本 DAG |
| design-step | 执行流程中当前一步(模块由程序注入) |
| opening-generator | 开场白(创作末尾可选) |
`design-core` / `design-fixed` / `design-worker` / `design-refine` **已废弃**,禁止调度。
## 验收策略
| worker | requiresApproval | acceptanceMode |
|--------|------------------|----------------|
| design-* | true | user_confirmed |
| opening-generator | true | user_confirmed |
| auditor / world-simulator / role-decide | falseplay | continue声明默认 |
| narrator | falseplay 调度) | review等人看终稿 |
## 总管优先行为
1. 有需求、尚无已验收 `设计.创作流程``design-flow`
2. 流程已有、存在未验收步骤 → `design-step`
3. 已列步骤全验收但 `status=open``design-flow`(追加反复步或设 closed
4. `waiting_user(review_artifact)` → 引导验收
5. reject → 收修订 → 重跑同一 worker含修订流程 = 再调味)
6. 终稿(含 `设计.worker集`)已 accept 且需开局 → `opening-generator`
7. **play**:按 `play_slots``auditor → perspective? → gm → narrator``pendingSideEffectWorkers` 优先
(旁观与主世界层怎么配合:见 `docs/play-dm-auditor.md`——旁观看门补表DM 断事,勿默认多轮传话)
## 禁用行为
- 调度已废弃的 design-core / design-fixed / design-worker / design-refine
- 跳过 design-flow 直接 design-step无流程时
- 一次 design-flow 排死全程固定长链(应增量)
- 调度声明未列出的 play ref
- Agent 挑选模型
- play 中把旁观维护当正文作者,或跳过 gm 直接 narrator
节点如何执行、何时等待、验收、返工、结束和运行状态变化均由 Runtime 与节点自身处理。

View File

@@ -1,7 +1,7 @@
# 扩写助手 · 配方
# 写方法论:适用、核心思路、设计流程、原则。
# 各能力何时用 / 不用 → 读能力 meta编排器会注入勿在此重复。
# steps = 近期起点不是固定全程 DAG。
# steps = 近期起点;选中本配方时程序写入「设计.创作流程」,开局即坐在第一步(不是固定全程 DAG
when: 大纲/分段扩写、写手统筹、先纲后章、成稿向助手、长文/爽文类体验

View File

@@ -1,7 +1,7 @@
# 世界模拟器 · 配方
# 写方法论:适用、核心思路、设计流程、原则。
# 各技能何时用 / 不用 → 读技能 meta编排器会注入勿在此重复。
# steps = 近期起点不是固定全程 DAG。
# steps = 近期起点;选中本配方时程序写入「设计.创作流程」,开局即坐在第一步(不是固定全程 DAG
when: 回合互动、世界推进、角色扮演、沉浸推演类体验

View File

@@ -44,9 +44,12 @@ contextSegments:
上下文里会有:
1. **用户已选配方】**:该方法的适用、核心思路、设计流程与原则 + 近期起点 steps——**不是**锁死流水线;**禁止**替用户改选其它配方
2. **能力 · 可选工序】**:固定中文名 + 声明 + **何时用 / 何时不用 / 边界**(来自各能力 meta+(若有)编排参数——步骤只能从这里选;标〔可反复〕的可多次编入
3. **已有剧本草案】/【已验收步骤】**:若有,在其上追加或改未验收步,**不要**推倒重来
1. **流程进度】**(程序钉死):已完成哪些步、草案里已有哪些步、哪些能力才允许再编入。必须先读完再排。
2. **用户已选配方】**:该方法的适用、核心思路、设计流程与原则 + 近期起点 steps——**不是**锁死流水线;**禁止**替用户改选其它配方
3. **能力 · 可选工序】**:固定中文名 + 声明 + **何时用 / 何时不用 / 边界**(来自各能力 meta+(若有)编排参数——步骤只能从这里选;标〔可反复〕的可多次编入
4. **【已有剧本草案】/【已验收步骤】**:若有,在其上追加或改未验收步,**不要**推倒重来
开局说明:程序可能已按配方 `steps` 写入近期起点(用户已坐在 DAG 第一步,例如「美学纲领与交互范式」)。此时**不要**把开局步再规划一遍仅追加缺口。listed 步已齐仍需扩写时,保留已完成 id只加新步。
## 增量 DAG核心
@@ -56,9 +59,9 @@ contextSegments:
- **跟配方方法论**:用配方的 core / process / principles 理解整局怎么设计、何时收成。
- **跟能力 meta**:某步该不该排,看能力的「何时用 / 何时不用 / 边界」;**不要**在配方里找各能力调用条件,也不要凭题材默认全选。
- 有「编排参数」声明的能力:写入 DAG 前必须钉齐 **必填 params**
- 参数不明时:**先 askUser**(优先 options + 允许其它),再产出流程;禁止把「生成什么 / 调用哪个规则」推迟到 design-step。
- 用户先认可带参数的 DAG 雏形,再进入执行;用户提出新要求时,再调本 worker 修订未验收步或追加新步。
- 有「编排参数」声明的能力:写入 DAG 时可先留空壳;**确认开干前**必须钉齐必填 params用户在「下一步」意向后、点同意开始时补齐
- 参数不明时:可先产出带空 params 的步骤,或 askUser;禁止把「生成什么 / 调用哪个规则」到 design-step 执行中途
- 用户先认可**下一节点**(含参数),再进入执行;用户提出新要求时,再调本 worker 修订未验收步或追加新步。
同能力**可以**多次出现(尤其〔可反复〕):每次一次调用、一次验收、产物写入同一 artifact增量补全。id 应尽量带上调用目标,如 `生成规则·怪物`,避免无信息的 `#2`
@@ -105,13 +108,20 @@ contextSegments:
5. `params` = 本步调用参数(对象)。能力目录声明了编排参数时,**必填项必须写出**;可选则能推断就写
6. `status``"open"` = 还可能追加;`"closed"` = 不再扩步(可走收成)
7. 已验收步骤的 id **必须保留**;只能追加新步,或改未验收步的依赖/顺序/params
8. 配方建议 steps 只作近期起点;按能力 meta 按需选用,勿默认全选、勿一次排满
9. **禁止**把「交互」与「美学」拆成两步
10. **禁止**在本步写能力正文、自由 Worker 列表、表结构
11. **禁止**编排「反复发明执行单元」;收成链:确认「游玩拓扑」→(上下文已多时)「上下文投影排序」→「细化终稿」。挂谁可早、排第几须晚,勿让中段技能写死 order
12. 参数或选型不够时,用 askUser 问 12 点(**优先带 options并允许其它**
13. 依赖真实产物的步骤(如具体实例依赖某条生成规则)须等上游验收后再编排,并从产物中列出可选项供用户选
14. `summary``流程 · N 步 · open|closed · …`
8. 已完成的**非反复**技能(美学纲领、实现机制、舞台骨架、叙事指南等)禁止再排一次执行;只有目录标了〔可反复〕的(生成规则、具体实例等)才可再编入新 id
9. 配方建议 steps 只作近期起点;按能力 meta 按需选用,勿默认全选、勿一次排满
10. **禁止**把「交互」与「美学」拆成两步
11. **禁止**在本步写能力正文、自由 Worker 列表、表结构
12. **禁止**编排「反复发明执行单元」;收成链:确认「游玩拓扑」→(上下文已多时)「上下文投影排序」→「细化终稿」。挂谁可早、排第几须晚,勿让中段技能写死 order
13. 参数或选型不够时,用 askUser 问 12 点(**优先带 options并允许其它**)。
只许问**排布层**的事:下一步排哪个能力、某步的必填 params 取什么值。
**禁止**问体验偏好、设定细节、口味倾向等能力正文问题——那是 design-step 的活;
已验收步骤里问过的题,**禁止**再抛一遍(用户会读成「那一步要重做」)
14. 依赖真实产物的步骤(如具体实例依赖某条生成规则)须等上游验收后再编排,并从产物中列出可选项供用户选
15. `summary``流程 · N 步 · open|closed · …`
16. **改对象必须改后台 id**:用户把「生成规则」从女租客改成丧尸怪物时,须同步改
`params.target``params.rule_id`(对应英文 kebab-case`zombies`)、以及步骤 `id`(如 `生成规则·丧尸怪物`)。
**禁止**只改中文对象却沿用旧 `rule_id` / 旧步骤 id。
## 自检
@@ -123,5 +133,7 @@ contextSegments:
- 有编排参数的步骤,必填 params 是否已钉齐?缺参是否应先 askUser 而不是产出空壳?
- depends_on 是否都指向更靠前的步骤 id
- 已验收 id 是否都还在?
- 【流程进度】里已完成的非反复技能,是否误当成新规划又排了一次?
- askUser 是否只问了排哪步 / 填哪个参数,而不是体验偏好等正文问题?
- 需要反复补同类内容时,是否用了新 id + 新 params 追加而非改写旧步?
- 收成前是否把 `status` 设为 `closed`

View File

@@ -5,6 +5,7 @@ name: 创作 · 执行步骤
description: >-
按已认可的创作流程,执行当前一步工序。提示词与产物 tag 由程序按模块注入。
流程是增量 DAG本步只读禁止自行扩步或重排。
outputTags 由程序注入为该步能力 artifact勿把「创作.当前步骤」当产物写回。
version: 1
stage: design
inputTags:
@@ -15,8 +16,7 @@ inputTags:
- "用户.修订说明"
- "设计.创作流程"
- "创作.当前步骤"
outputTags:
- "创作.当前步骤"
outputTags: []
inputMerge: latest
contextSegments:
- id: flow
@@ -46,7 +46,7 @@ contextSegments:
1. 只写本步产物(程序指定的 output tag不要改其它步骤产物
2. 产物用简洁 JSON 或结构化中文,方便界面渲染;少写机器变量名
3. 若本步有**默认问题**:程序已先发给用户;首答在「用户.worker答复」/「创作.能力开场白」。**禁止**再用 LLM 重复同一开场白
4. 信息不足 → askUser 12 点(优先 options
4. 信息不足context-fragment 产物把题写在「追问」12 点,建议选项 + 示例),顶层 askUser 为 null。仅完全无法产出时才用顶层 askUser
5. `summary``{本步能力名} · …`
6. **禁止**重排或扩写流程;流程只读。需要追加「再来一次生成规则」等 → 由总管再调 design-flow
7. **本步参数**由编排期写入 steps[].params程序会注入【本步参数】。按参数执行禁止再问「这一步生成什么 / 调用哪个规则」。参数缺失或与目录必填项不符 → 停止产出,提示返回 design-flow 补参