引入游玩回合与开场收口,抽出可替换 agent 司机并支持运行中止;完善预设洞位、世界书拼装与试跑,并打磨会话运行时与 Web 交互。
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -25,7 +25,7 @@ worker-templates/
|
||||
```text
|
||||
选导演(recipes)→ design-flow → 验收近期 设计.创作流程(status=open)
|
||||
→ 反复 design-step(注入 modules/{id}/prompt.md)
|
||||
→ 不够则再 design-flow(可追加 repeatable 能力)→ closed
|
||||
→ 不够则再 design-flow(可追加 repeatable 新建,或 mode=revise 回头修改)→ closed
|
||||
→ (可选)opening-generator → 手动进 play
|
||||
```
|
||||
|
||||
|
||||
@@ -76,28 +76,15 @@ feeds: design_only
|
||||
## probe
|
||||
|
||||
```probe
|
||||
用户首句或黑板已有的直接采纳。一次只在产物「追问」写 1~2 点(建议选项 + 示例);顶层 askUser 留 null,不要同一问写两遍。
|
||||
已有一轮追问答复或核心体验+权限边界已可执行:`追问.题目` 用 `[]`,让用户验收。禁止这轮问交互、下轮问美学地来回打转。
|
||||
本步只钉三件:站位(代入 / 镜头看哪 / 爽从哪来)、核心感觉(反复感受到什么)、轮转边界(何时等用户)。
|
||||
|
||||
【默认问题已覆盖】变造(原型+变点)、代入与否、最想感受到的核心。首答后按缺口补,勿重问已答清的。
|
||||
若开场已跳过(用户.需求已有首句):把首句当默认问题的答复,只补真正缺口。
|
||||
用户首句或黑板已有的直接采纳。默认问题已覆盖变造、代入、核心感觉;开场若已跳过,把「用户.需求」首句当答复。已答清的不重问。
|
||||
|
||||
【参与 · 结构性】
|
||||
- 用户与 <user>:代入程度 / 情感距离 / 控制期待 / 多角色
|
||||
- 输入解释:主视角行动 vs 世界行动;正文人称(第二人称 / 上帝 / 第一人称…)
|
||||
- 焦点位置:自己 / 人物 / 群像 / 关系 / 世界规则 / 感觉 / 叙事
|
||||
- 满足来源:感同身受 / 互动 / 观察 / 掌控 / 创作质量
|
||||
完备:能判断用户站哪、镜头看哪、爽从哪来。
|
||||
缺其中一件:在产物「追问」写 1~2 点(建议选项 + 短场景);顶层 askUser 为 null。三件够验收:`追问.题目` 为 `[]`,内容维度等其余键写「未定」或省略。
|
||||
|
||||
【内容 · 深度随焦点】
|
||||
核心感觉;人物与关系;身体与感官;背景与规则(宜短);意义与主题。
|
||||
变造已定位的,只挖服务核心体验的部分。
|
||||
用户讲人物、舞台、规则:只抽取能改这三件的一句写入正文,其余写入「开放问题」,本步不追问细节。
|
||||
|
||||
【轮转】
|
||||
思考与抉择、言语:何时等、怎么等、例外、输入后怎么补(只确认/补细节/补心理/连带后果)。
|
||||
|
||||
【收成三块】
|
||||
体验内核(含形状:过程/张力/层次/构成/循环);呈现要点;边界禁忌。
|
||||
用两种站位或两种感觉的短场景让用户选或改,不追问开放式「你还想要什么」。
|
||||
```
|
||||
|
||||
## output
|
||||
|
||||
@@ -4,8 +4,13 @@
|
||||
# name = 固定中文名(流程 JSON 的 name;同能力可多次时靠 step.id 区分)
|
||||
# declaration = catalog 短声明(可被 prompt.md ```meta 覆盖)
|
||||
# artifact = 执行期产物 tag(程序映射;不写进流程 JSON)
|
||||
# repeatable = true 时允许同能力多次编入增量 DAG(如生成规则、具体实例)
|
||||
# params = 可选;编排进 DAG 时 steps[].params 的声明(required 须在执行前钉齐)
|
||||
# repeatable = true 时允许同能力多次**新建**编入增量 DAG(如生成规则、具体实例)。
|
||||
# 回头修改已完成节点不是 repeatable:DAG 用 mode=revise + revises,继承旧产物。
|
||||
# closer = true 时为创作终节点:选定后程序落库、关 DAG、保存定稿
|
||||
# auto = true 时为程序步:不抛默认问题、不经「同意并开始」,提案后直接执行(产物仍验收)
|
||||
# kind = 节点特性。缺省=普通执行步。prior-artifact=先验产物(须先定写什么;params 是规划产物,不拦执行)
|
||||
# params = 可选;普通节点=编排进 DAG 时 steps[].params 的声明(required 须在执行前钉齐)
|
||||
# 〔先验产物〕=规划产物字段(可提前填,空则步内钉)
|
||||
# opening = 可选;覆盖 prompt.md 里 ```opening 默认问题(一般只写在 prompt.md)
|
||||
#
|
||||
# 编排选型:程序会读取各 modules/{id}/prompt.md 的 meta
|
||||
@@ -15,8 +20,10 @@
|
||||
# 后来写能力:同结构 prompt.md(含默认问题)+ 本表一行索引
|
||||
#
|
||||
# 世界模拟器常用能力见下「体验→世界→机制→呈现→收成」;编排按需选用,勿默认全选。
|
||||
# 流程是可变增量 DAG:勿一次排完全程;可反复调用标了 repeatable 的能力。
|
||||
# 有编排参数的能力:DAG 步骤必须是带 params 的具体调用,禁止空壳进 design-step。
|
||||
# 流程是可变增量 DAG:勿一次排完全程;可反复调用标了 repeatable 的能力(每次=彻底新建)。
|
||||
# 已完成节点要改:编排 mode=revise(继承旧稿),不要再排一条 fresh。
|
||||
# 有编排参数的普通能力:DAG 步骤必须是带 params 的具体调用,禁止空壳进 design-step。
|
||||
# 〔先验产物〕例外:params 是规划产物,可空;「写什么」在步内钉。
|
||||
|
||||
modules:
|
||||
# —— 体验契约 ——
|
||||
@@ -37,6 +44,7 @@ modules:
|
||||
|
||||
- id: generation-rules
|
||||
name: 生成规则
|
||||
kind: prior-artifact
|
||||
repeatable: true
|
||||
declaration: >-
|
||||
仅当某类内容既重要又无法凭基底稳定生成时:写出规则
|
||||
@@ -45,19 +53,17 @@ modules:
|
||||
params:
|
||||
- key: target
|
||||
label: 生成对象
|
||||
required: true
|
||||
hint: 本轮为哪一类内容建规则;编排时 askUser 给选项+其它;用户改对象时必须同步改 rule_id 与步骤 id
|
||||
hint: 规划字段;编排器已知写哪一类就填。空则步内钉
|
||||
- key: rule_id
|
||||
label: 规则 id
|
||||
required: false
|
||||
hint: 英文 kebab-case,须与 target 对应(女租客→female-tenants,丧尸→zombies);改对象时禁止沿用旧 id
|
||||
hint: 英文 kebab-case,须与 target 对应(女租客→female-tenants);改对象时禁止沿用旧 id
|
||||
- key: lifecycle_intent
|
||||
label: 生命周期意图
|
||||
required: false
|
||||
hint: runtime_only | seed_only | seed_and_runtime;不明则 askUser
|
||||
hint: runtime_only | seed_only | seed_and_runtime;不明则步内钉
|
||||
|
||||
- id: concrete-instances
|
||||
name: 具体实例
|
||||
kind: prior-artifact
|
||||
repeatable: true
|
||||
declaration: >-
|
||||
按预生成规则原样产出实际产物;不设计、不改合同;可按 rule_id/批次反复调用
|
||||
@@ -65,15 +71,12 @@ modules:
|
||||
params:
|
||||
- key: rule_id
|
||||
label: 调用规则
|
||||
required: true
|
||||
hint: 必须来自已验收生成规则中 seed_only/seed_and_runtime 的真实 rule_id;编排时给选项
|
||||
hint: 规划字段;须来自已验收生成规则中 seed_only/seed_and_runtime 的 rule_id。空则步内钉
|
||||
- key: batch_goal
|
||||
label: 批次目标
|
||||
required: false
|
||||
hint: 本批要锚定什么(如开局重要NPC)
|
||||
- key: count
|
||||
label: 数量
|
||||
required: false
|
||||
hint: 数字或「按规则」;contextual 时写清规模依据
|
||||
|
||||
- id: narrative
|
||||
@@ -127,9 +130,10 @@ modules:
|
||||
# —— 开局(创作偏晚) ——
|
||||
- id: opening-setup
|
||||
name: 开场白与开场变量
|
||||
closer: true
|
||||
declaration: >-
|
||||
写出遵循正文组成/叙事等契约的开场一小段,并钉同真相的开场变量初值;
|
||||
开场为主、填表为辅;可与 opening-generator 落库
|
||||
创作终节点:写出 1~多条开场白并钉同真相初值;
|
||||
选定后程序落库、结束创作并保存定稿
|
||||
artifact: 设计.开场白与开场变量
|
||||
|
||||
# —— 收成 / 钉声明(共用;世界模拟器按需) ——
|
||||
@@ -144,9 +148,10 @@ modules:
|
||||
- id: context-order
|
||||
name: 上下文投影排序
|
||||
repeatable: false
|
||||
auto: true
|
||||
declaration: >-
|
||||
根据各上游上下文概括,为启用槽写出扁平投影序(含对话.历史与 projection);
|
||||
挂谁已定、排第几在本步;不发明执行单元、不重写长文
|
||||
先抄固定执行单元名册,再为每个已启用者写出扁平投影序
|
||||
(含对话.历史与 projection);不发明槽、不重写长文、不演情节选择题
|
||||
artifact: 设计.上下文投影排序
|
||||
|
||||
- id: refine
|
||||
|
||||
@@ -27,7 +27,11 @@ feeds: gm
|
||||
## opening
|
||||
|
||||
```opening
|
||||
规则已由【本步参数】rule_id 钉死。有批次目标或数量偏好可一句带过;否则直接「按规则生成」。
|
||||
先认定本批按哪条规则生成:
|
||||
- 若【规划产物】已有 rule_id,以此为起点;要换规则就在本步改(须仍是已验收的预生成规则)。
|
||||
- 若规划为空,从已验收生成规则里选出一条预生成规则。
|
||||
|
||||
有批次目标或数量偏好可一句带过;否则直接「按规则生成」。
|
||||
```
|
||||
|
||||
## task
|
||||
@@ -37,9 +41,11 @@ feeds: gm
|
||||
|
||||
本步 = 规则执行器。禁止重议对象族、生命周期、schema 或描写方法。
|
||||
|
||||
本步是〔先验产物〕:先定调用哪条规则,再生成 records。读【规划产物】当起点;规划可空。
|
||||
|
||||
执行顺序:
|
||||
1. 取出 `params.rule_id` 对应规则;非预生成生命周期或缺信息 → 停止并指出缺口。
|
||||
2. 数量:`params.count` 有数字用数字,否则用规则「数量」;`batch_goal` 只作不违反规则的筛选。
|
||||
1. 认定 `rule_id`:规划有则采用(用户要换则以最新为准,须仍是已验收的预生成规则);空则先从依赖产物里选出。不要停下来让编排器补参。非预生成生命周期或缺信息 → 停止并指出缺口。
|
||||
2. 数量:规划 `count` 有数字用数字,否则用规则「数量」;`batch_goal` 只作不违反规则的筛选。
|
||||
3. 完全按规则的「生成与描写」+「产物格式」+「池」生成 `records`(单层 JSON;键=schema 顶层字段)。
|
||||
4. 按规则自检;不合格内部重做。已有产物则追加批次(除非用户要求替换)。
|
||||
5. 输出 JSON;追问通常 `[]`。
|
||||
@@ -72,9 +78,9 @@ summary:`具体实例 · {对象} · {n}条`
|
||||
"mount": ["world-simulator"],
|
||||
"稳变": "stable",
|
||||
"正文": {
|
||||
"rule_id": "与 params 一致",
|
||||
"rule_id": "与本步认定一致(规划有则对齐)",
|
||||
"本批数量": 3,
|
||||
"批次条件": ["params.batch_goal 等;无则 []"],
|
||||
"批次条件": ["规划 batch_goal 等;无则 []"],
|
||||
"batch_id": "英文 kebab-case",
|
||||
"records": [
|
||||
{
|
||||
@@ -111,7 +117,7 @@ summary:`具体实例 · {对象} · {n}条`
|
||||
## checklist
|
||||
|
||||
```checklist
|
||||
- [ ] 按 params.rule_id 的预生成规则执行?
|
||||
- [ ] 按本步认定的 rule_id(规划或步内钉)的预生成规则执行?
|
||||
- [ ] records 单层、键值符合产物格式与全部约束?
|
||||
- [ ] 自评为合规模?未改合同?
|
||||
```
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
# 上下文投影排序
|
||||
|
||||
> 技能文档。程序只切割下方 **fence 块**;`##` 标题仅供人读。
|
||||
> **本步只排出扁平投影序,不发明执行单元,不重写设定长文。**
|
||||
> 「对话.历史」也是可投影标签(改 projection 裁剪长度);见 `docs/context-fragment-design.md`。
|
||||
> **先抄程序钉死的执行单元名册,再给每个已启用者分配上下文与顺序。**
|
||||
> 不发明执行单元,不重写设定长文,不演游玩选项。
|
||||
> 「对话.历史」也是可投影标签;见 `docs/context-fragment-design.md`。
|
||||
|
||||
## meta
|
||||
|
||||
@@ -11,36 +12,32 @@ name: 上下文投影排序
|
||||
id: context-order
|
||||
artifact: 设计.上下文投影排序
|
||||
declaration: >
|
||||
根据各上游上下文的概括,为每个启用槽写出扁平投影序
|
||||
(含对话.历史标签与 projection);不发明槽、不重写正文
|
||||
先列出本局固定执行单元(程序名册),再为每个已启用者写出扁平投影序
|
||||
(含对话.历史与 projection);不发明槽、不重写正文、不演情节选择题
|
||||
when: |
|
||||
游玩槽已确认(或可按默认),且主要上下文块已有可摘要产物,
|
||||
需要决定插入顺序与投影级别、再收成运行规格时。
|
||||
需要决定各执行单元看见什么、以何顺序插入时。
|
||||
when_not: |
|
||||
体验/站位仍混沌 → 先美学纲领与交互范式。
|
||||
槽位未定且用户拒绝默认 → 先游玩拓扑。
|
||||
上游上下文仍大量空洞、无法判断稳/变 → 先补缺口,勿空排。
|
||||
只需勾选槽 → 游玩拓扑;只需合并终稿 → 细化终稿。
|
||||
boundary: |
|
||||
本技能:读各块概括 → 产出每槽 inserts[](order / ref / projection / 可选 note);须含对话.历史。
|
||||
无「历史前/后」硬分区;对话.历史本身是可排序的一项。
|
||||
游玩拓扑:槽位权威;本步不增白名单外 ref(含按需 chance 不进每轮序)。
|
||||
中段技能:可带 mount 与稳/变信号,最终 order 以本步为准。
|
||||
本技能:抄名册 → 凭各块 brief/挂载/稳变 给每槽 inserts[]。
|
||||
名册权威在程序(及已勾选的游玩拓扑);本步不增白名单外 id。
|
||||
中段技能可带 mount 与稳/变;最终 order 以本步为准。
|
||||
细化终稿:把本步排序表收进运行规格 context_order;本步不输出完整 设计.worker集。
|
||||
禁止把依赖产物里的游玩示例(迎上去/推开/反客为主 等)当成当前要问的题。
|
||||
feeds: design_only
|
||||
```
|
||||
|
||||
## opening
|
||||
|
||||
```opening
|
||||
准备排出各游玩槽的扁平投影序(只排序,不改设定正文)。
|
||||
按已验收产物的概括,给每个固定执行单元分配上下文顺序(只排序,不改设定、不演游玩)。
|
||||
|
||||
请确认或补充:
|
||||
1. 启用槽是否仍是默认?(世界模拟:主世界层 + 叙事转述;角色视角默认关)
|
||||
2. 「对话.历史」希望夹在哪、投影多狠?(默认 summary)
|
||||
3. 有没有「几乎永不改」或「每轮必变」的块要特别强调?
|
||||
|
||||
若前面产物够用,可直接回复「按已有概括排序」。
|
||||
名册由程序钉死:旁观维护(表格)/ 主世界层 / 叙事转述 / 可选角色视角 / 按需机遇。
|
||||
若前面产物够用,直接回复「按已有概括排序」。
|
||||
```
|
||||
|
||||
## task
|
||||
@@ -48,40 +45,45 @@ feeds: design_only
|
||||
```task
|
||||
你正在执行「上下文投影排序」。产物写入「设计.上下文投影排序」。
|
||||
|
||||
输入:已启用槽;各上游上下文的短摘要(及 mount / 稳变信号,若有)。
|
||||
输出:按槽分组的格式化排序表——Runtime/终稿据此把投影插到固定位置。
|
||||
执行顺序(必须按此,禁止颠倒):
|
||||
1. **抄名册**:以程序注入的【本局固定执行单元】为准列出 agents[](id / label / enabled / when / duty)。
|
||||
启用与否跟已勾选游玩拓扑走;未勾选则按默认:旁观+主世界层+转述开,角色视角关,机遇关。
|
||||
2. **再分配**:只对 enabled 的每轮槽写 inserts(order / ref / projection / 可选 note)。
|
||||
凭上游 **brief、挂载、稳变** 排序,禁止把百科全文再读一遍当创作。
|
||||
|
||||
规则:
|
||||
1. 禁止发明执行单元或白名单外 ref。
|
||||
2. 禁止重写上游长文;只写 order、ref、projection 与一句 note(勿再写硬锚点分区)。
|
||||
3. 每槽扁平数字序:order 0=该槽固定人设;其后按「稳→对话.历史→易变」软排。
|
||||
4. 必须包含一项 ref=`对话.历史`(默认 projection=summary);历史由程序维护,本步只决定夹在哪、投影多狠。
|
||||
5. 常见块名用新 artifact:设计.舞台骨架 / 设计.叙事指南与故事推进 / 设计.正文组成 / 设计.监控栏 等。
|
||||
1. 禁止发明白名单外 id(含画图等未入册槽)。
|
||||
2. 禁止重写上游长文;只写顺序与投影。
|
||||
3. 每轮槽:order 0=该槽固定人设;其后按「稳→对话.历史→易变」软排。
|
||||
4. 主世界层与转述必须含 ref=`对话.历史`(默认 projection=summary);旁观维护默认不含历史。
|
||||
5. 按需槽(机遇)enabled 时 inserts 可空。
|
||||
6. 越稳越靠前;本轮输入/真值/裁决通常在历史之后。
|
||||
7. 同一内容可挂多槽;chance 为按需槽,不必排进每轮 inserts。
|
||||
8. summary:如 `投影排序 · 主世界层 N 条 · 含历史`。
|
||||
7. 同一内容可挂多槽;chance 不必排进每轮 inserts。
|
||||
8. summary:如 `投影排序 · 旁观+主世界层+转述`。
|
||||
|
||||
若程序已发默认问题:禁止重复同一开场;在首答上产出表。
|
||||
若程序已发默认问题:禁止重复同一开场;用户说「按已有概括排序」或等价同意 → **立刻产出表**,禁止再问情节内选项。
|
||||
禁止 askUser 出游玩选择题(迎上去/推开她/反客为主 等)。材料已齐则顶层 askUser 为 null。
|
||||
```
|
||||
|
||||
## principles
|
||||
|
||||
```principles
|
||||
1. 晚排序:此时才能区分常变与重要;勿回退去发明新槽。
|
||||
2. 概括驱动:凭摘要与稳变信号排序,不把百科全文再读一遍当创作。
|
||||
3. 历史是标签:用投影裁剪,不要假装「整段历史永远在中间锚点」。
|
||||
4. 缓存优先:少变块靠前;高频变块靠后。
|
||||
5. 投影分级:full / summary / fields / fixed——历史默认 summary。
|
||||
6. 可修订已有排序表;用户改稳变判断时只改序,不改上游产物 id。
|
||||
1. 名册先行:先有哪些执行单元,再谈每单元看什么。
|
||||
2. 晚排序:此时才能区分常变与重要;勿回退去发明新槽。
|
||||
3. 概括驱动:凭摘要与稳变信号排序,不把设定长文再当创作。
|
||||
4. 历史是标签:用投影裁剪;旁观维护默认不进对话.历史。
|
||||
5. 缓存优先:少变块靠前;高频变块靠后。
|
||||
6. 投影分级:full / summary / fields / fixed——历史默认 summary。
|
||||
7. 可修订已有排序表;用户改稳变判断时只改序,不改上游产物 id。
|
||||
```
|
||||
|
||||
## probe
|
||||
|
||||
```probe
|
||||
一次 askUser 1~2 点,优先 options:
|
||||
- 某块稳/变判断冲突时,问用户更偏「少改利缓存」还是「每轮必须看见」。
|
||||
一次 askUser 1~2 点,且必须关于「挂哪槽 / 稳还是变 / 投影级别」:
|
||||
- 某块稳/变判断冲突时,问更偏「少改利缓存」还是「每轮必须看见」。
|
||||
- 角色视角若开启,问哪些块禁止进主世界层。
|
||||
已齐则直接产出,勿为凑问题而问。
|
||||
已齐则直接产出,勿为凑问题而问。禁止问剧情里发生什么、谁敲门、玩家选哪一招。
|
||||
```
|
||||
|
||||
## output
|
||||
@@ -89,29 +91,64 @@ feeds: design_only
|
||||
```output
|
||||
{
|
||||
"schema": "context-order.v1",
|
||||
"brief": "一句话:本局扁平投影序(含对话.历史)",
|
||||
"play_slots": { "gm": true, "narrator": true, "perspective": false },
|
||||
"slots": [
|
||||
"brief": "一句话:本局有哪些执行单元、各自上下文怎么排",
|
||||
"agents": [
|
||||
{
|
||||
"ref": "world-simulator",
|
||||
"label": "主世界层",
|
||||
"id": "auditor",
|
||||
"label": "旁观维护",
|
||||
"enabled": true,
|
||||
"when": "every_turn",
|
||||
"duty": "查表/补规则,不写正文、不写真相",
|
||||
"inserts": [
|
||||
{ "order": 0, "ref": "worker.persona", "projection": "fixed", "note": "槽位人设" },
|
||||
{ "order": 1, "ref": "设计.实现机制", "projection": "summary", "note": "承重规则摘要" },
|
||||
{ "order": 2, "ref": "对话.历史", "projection": "summary", "note": "按投影裁剪" },
|
||||
{ "order": 3, "ref": "变量.当前", "projection": "fields", "note": "真值" },
|
||||
{ "order": 4, "ref": "用户.最新输入", "projection": "full", "note": "本轮" }
|
||||
{ "order": 0, "ref": "worker.persona", "projection": "fixed", "note": "人设" },
|
||||
{ "order": 1, "ref": "设计.变量设计与更新规则", "projection": "summary" },
|
||||
{ "order": 2, "ref": "设计.生成规则", "projection": "summary" },
|
||||
{ "order": 3, "ref": "变量.当前", "projection": "fields" },
|
||||
{ "order": 4, "ref": "用户.最新输入", "projection": "full" }
|
||||
]
|
||||
},
|
||||
{
|
||||
"ref": "narrator",
|
||||
"label": "叙事转述",
|
||||
"id": "gm",
|
||||
"label": "主世界层",
|
||||
"enabled": true,
|
||||
"when": "every_turn",
|
||||
"duty": "读真值与规则,出裁决包",
|
||||
"inserts": [
|
||||
{ "order": 0, "ref": "worker.persona", "projection": "fixed", "note": "转述人设" },
|
||||
{ "order": 0, "ref": "worker.persona", "projection": "fixed" },
|
||||
{ "order": 1, "ref": "设计.舞台骨架", "projection": "summary" },
|
||||
{ "order": 2, "ref": "对话.历史", "projection": "summary" },
|
||||
{ "order": 3, "ref": "变量.当前", "projection": "fields" },
|
||||
{ "order": 4, "ref": "用户.最新输入", "projection": "full" }
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "narrator",
|
||||
"label": "叙事转述",
|
||||
"enabled": true,
|
||||
"when": "every_turn",
|
||||
"duty": "只把裁决写成用户可见正文",
|
||||
"inserts": [
|
||||
{ "order": 0, "ref": "worker.persona", "projection": "fixed" },
|
||||
{ "order": 1, "ref": "设计.叙事指南与故事推进", "projection": "summary" },
|
||||
{ "order": 2, "ref": "对话.历史", "projection": "summary" },
|
||||
{ "order": 3, "ref": "运行.本轮.裁决", "projection": "full", "note": "settlement" }
|
||||
{ "order": 3, "ref": "运行.本轮.裁决", "projection": "full" }
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "perspective",
|
||||
"label": "角色视角",
|
||||
"enabled": false,
|
||||
"when": "every_turn",
|
||||
"duty": "强信息隔离时出反应建议",
|
||||
"inserts": []
|
||||
},
|
||||
{
|
||||
"id": "chance",
|
||||
"label": "机遇裁定",
|
||||
"enabled": false,
|
||||
"when": "on_demand",
|
||||
"duty": "骰子/抽签;按需调用,不进每轮",
|
||||
"inserts": []
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -120,10 +157,12 @@ feeds: design_only
|
||||
## checklist
|
||||
|
||||
```checklist
|
||||
- [ ] agents 只使用程序名册 id(auditor / gm / narrator / perspective / chance)
|
||||
- [ ] 未发明白名单外执行单元
|
||||
- [ ] 未重写上游长文,只有排序/投影
|
||||
- [ ] 每启用槽有 order 0 人设位
|
||||
- [ ] 每槽含「对话.历史」且有合理 projection
|
||||
- [ ] 未把游玩选项示例当成当前提问
|
||||
- [ ] 已启用的每轮槽有 order 0 人设位
|
||||
- [ ] 主世界层与转述含「对话.历史」;旁观维护默认无历史
|
||||
- [ ] 少变块整体靠前、本轮/真值靠后(软规则)
|
||||
- [ ] 与游玩拓扑勾选一致
|
||||
```
|
||||
|
||||
@@ -36,8 +36,11 @@ feeds: gm,auditor
|
||||
## opening
|
||||
|
||||
```opening
|
||||
本轮生成对象已由编排参数钉死(见【本步参数】target)。请直接谈该类内容:
|
||||
先认定本轮规则写哪一类内容:
|
||||
- 若【规划产物】已有对象,以此为起点;要改对象就在本步改。
|
||||
- 若规划为空,先钉对象族,再谈规则。
|
||||
|
||||
然后谈:
|
||||
1. 若不做专门规则、只靠世界设定临场写,最怕出现什么不可接受的结果?
|
||||
2. 更需要:开局先钉一批、游玩中再随机补,还是只在游玩期动态生成?
|
||||
3. 哪些产物字段需要「池」?(池挂在 JSON 字段上,如气质标签池→`气质`;可多个;没有就说没有)
|
||||
@@ -56,19 +59,19 @@ feeds: gm,auditor
|
||||
3. **池**(可选):每个池挂在产物格式里的某个字段(变量)上,供该字段抽取/组装/枚举;
|
||||
一条规则可多个池;无则 `池: []`。
|
||||
|
||||
对象族已由【本步参数】`target` 钉死;禁止再问「这一步生成什么」,禁止顺手扩到其它族。
|
||||
本步是〔先验产物〕:先定本轮对象族,再写规则。读【规划产物】当起点;规划可空。禁止顺手扩到其它族。
|
||||
|
||||
执行顺序:
|
||||
1. 读 params 与依赖。缺 `target` → 停止并提示补参。
|
||||
1. 认定对象族:规划有 `target` 则采用(用户要改则以最新为准);规划为空则先钉对象。不要停下来让编排器补参。
|
||||
2. 双门槛:重要性 + 基础上下文不足。任一项不成立 → 结论「无需专门规则」,`rules: []`。
|
||||
3. 两项成立时,生命周期三选一(params.lifecycle_intent 合理则采用):
|
||||
3. 两项成立时,生命周期三选一(规划里 `lifecycle_intent` 合理则采用):
|
||||
- `runtime_only`:仅游玩期动态生成;不要求「具体实例」。
|
||||
- `seed_only`:由「具体实例」预生成;规则用完可丢。
|
||||
- `seed_and_runtime`:先种子实例;规则与实例都保留,游玩期仍可按同规则生成。
|
||||
4. 写满规则三块:生成与描写(可较长)+ 产物格式(**单层 JSON**:每条产物是一层键值,无嵌套对象)+ 池(需要才填;绑顶层字段)。
|
||||
5. 逐字段过筛:每个属性都要能回答「对本对象族是否必要」。冗余字段删掉(如女主规则里的「性别」);对象族必需字段不得漏(如 D&D 怪物的等级、攻击骰)。
|
||||
6. `rule_id`:params 已给则用;否则稳定 kebab-case。已有产物按 rule_id 增量。
|
||||
若本步对象与 params 不一致(用户中途改了对象),以最新对象为准并重钉对应英文 rule_id,禁止沿用旧 id。
|
||||
6. `rule_id`:规划已给则用;否则稳定 kebab-case。已有产物按 rule_id 增量。
|
||||
若本步对象与规划不一致,以最新对象为准并重钉对应英文 rule_id,禁止沿用旧 id。
|
||||
7. 按自评三维打分并填追问;输出 JSON。禁止夹带最终实例 records。
|
||||
|
||||
若程序已发默认问题:禁止重复开场;在首答上补洞。
|
||||
@@ -93,7 +96,7 @@ summary:建立 → `生成规则 · {对象} · {仅动态|仅预生成|预生
|
||||
## probe
|
||||
|
||||
```probe
|
||||
每轮 1~2 点。禁止重问 params 已钉的 target / rule_id。
|
||||
每轮 1~2 点。规划已钉且用户未改对象时,禁止重问 target / rule_id。规划为空或用户要换对象时,先问本轮生成什么。
|
||||
|
||||
优先:整条规则是否必要;某字段该不该进表(冗余 vs 漏接口);单层格式类型/枚举/边界;哪些字段要池。
|
||||
若双门槛不成立 → 建议跳过,停追问字段与格式。
|
||||
@@ -111,9 +114,9 @@ summary:建立 → `生成规则 · {对象} · {仅动态|仅预生成|预生
|
||||
"稳变": "stable",
|
||||
"正文": {
|
||||
"本步参数": {
|
||||
"target": "与 params 一致",
|
||||
"target": "与本步认定的对象一致(规划有则对齐,步内改则以最新为准)",
|
||||
"rule_id": "已钉或本步拟定;跳过时可空字符串",
|
||||
"lifecycle_intent": "params 原值或空"
|
||||
"lifecycle_intent": "规划原值、本步钉死值或空"
|
||||
},
|
||||
"必要性判断": {
|
||||
"生成对象": "本轮对象族",
|
||||
|
||||
@@ -32,7 +32,7 @@ feeds: narrator,gm
|
||||
美学里的感觉已有方向时,请谈「正文怎么写、故事怎么往前」(想到什么写什么):
|
||||
|
||||
1. 像什么文风?遣词什么味道?笔墨花在谁身上?有什么绝对不能写?
|
||||
2. 故事怎么推进?要不要跟好感/进度挂钩?有没有情境要换一套写法?
|
||||
2. 故事往前靠什么:场面自己推、等用户决策,还是无专门推进?正文若有几种写法档要切换(官能 / 爽文 / 恐怖 / 情色这类),点名即可;没有就说没有。
|
||||
```
|
||||
|
||||
## task
|
||||
@@ -45,9 +45,10 @@ mount:`narrator` 与 `world-simulator` 都挂同一份全文——不要为省
|
||||
|
||||
执行顺序:
|
||||
1. 继承美学体验与禁忌,改写成做法向句子。
|
||||
2. 写纲领、遣词(含示范)、笔墨焦点、禁忌/不偏好;需要时写情境备用。
|
||||
3. 写推进与决策(可写「无专门推进」);变量只写钩子。
|
||||
4. 自评 + 追问。
|
||||
2. 写纲领、遣词(含示范)、笔墨焦点、禁忌/不偏好。
|
||||
3. 情境备用 = 写法档(体裁/调性容器),不是具体桥段。有切换则每条写:名字=档名(如「官能小说」「网文爽文」「展示恐怖」「展示情色」),用法=该档怎么遣词、笔墨落哪、何时切进来。无切换则 `[]`。用户若报出「当众折辱」「独处一室」这类场合,升一档写进对应写法档,场合本身不单列。
|
||||
4. 写推进与决策(可写「无专门推进」);变量只写钩子。
|
||||
5. 自评 + 追问。
|
||||
|
||||
summary:`叙事指南与故事推进 · …`
|
||||
```
|
||||
@@ -58,14 +59,21 @@ summary:`叙事指南与故事推进 · …`
|
||||
1. 感觉 vs 做法:美学写要什么爽;本步写怎么遣词、笔墨落哪、故事怎么推。
|
||||
2. 遣词与禁忌要可执行;绝对禁忌 ≠ 不偏好。
|
||||
3. 推进可轻可无;表规格交给变量/生成规则。
|
||||
4. 整份双挂即可;禁止拆成两个技能。
|
||||
4. 情境备用是写法档:名字用「官能小说」「网文爽文」「展示恐怖」「展示情色」同级;用法写该档遣词与何时切入。无切换则空数组。
|
||||
5. 整份双挂即可;禁止拆成两个技能。
|
||||
```
|
||||
|
||||
## probe
|
||||
|
||||
```probe
|
||||
每轮 1~2 点。已在美学写清的感觉勿重问。
|
||||
优先:体裁遣词、笔墨详谁、禁忌、推进门控。
|
||||
本步只钉四件:遣词可执行、笔墨落点、绝对禁忌、推进方式(场面推进 / 用户决策 / 无专门推进)。
|
||||
|
||||
已在美学写清的感觉改写成做法向句子,不重问「想感受到什么」。
|
||||
|
||||
缺其中一件:在产物「追问」写 1~2 点(建议选项 + 短句示例)。四件够验收:`追问.题目` 为 `[]`。推进方式不明则正文写「无专门推进」,不问好感公式、进度表或事件池。
|
||||
|
||||
用户谈到变量增减、生成规则、舞台百科:只抽取能改遣词 / 禁忌 / 推进方式的一句,其余写入「开放问题」。
|
||||
用户提到要换写法:收成写法档写入「情境备用」(官能 / 爽文 / 恐怖 / 情色这类),不追问具体场合怎么摆;没提则 `[]`。
|
||||
```
|
||||
|
||||
## output
|
||||
@@ -99,7 +107,16 @@ summary:`叙事指南与故事推进 · …`
|
||||
"绝对禁忌": ["…"],
|
||||
"不偏好": ["…"]
|
||||
},
|
||||
"情境备用": [],
|
||||
"情境备用": [
|
||||
{
|
||||
"名字": "展示情色",
|
||||
"用法": "切到身体与权力交换时:感官词加重、节奏放慢、对话变短;切回日常则收。"
|
||||
},
|
||||
{
|
||||
"名字": "网文爽文",
|
||||
"用法": "打脸/反转时:可复述对方原话、结果写满、过程可略。"
|
||||
}
|
||||
],
|
||||
"推进与决策": {
|
||||
"有无专门推进": "有|无",
|
||||
"驱动力来源": "…",
|
||||
@@ -126,18 +143,20 @@ summary:`叙事指南与故事推进 · …`
|
||||
```
|
||||
|
||||
硬规则:合法 JSON;示范至少 1 段;禁忌与不偏好都要有;双挂;禁止 order;summary 见 task。
|
||||
情境备用若有:名字必须是写法档(官能小说 / 网文爽文 / 展示恐怖 / 展示情色 同级),用法写该档的遣词与切入口;不是「当众折辱」「物资告急」这类具体桥段。无切换则 `[]`。
|
||||
|
||||
## checklist
|
||||
|
||||
```checklist
|
||||
- [ ] 一份产物同时服务转述与主世界层?
|
||||
- [ ] 遣词+示范+禁忌够用?推进清楚或明确无?
|
||||
- [ ] 情境备用若有,是否是写法档(官能/爽文/恐怖/情色同级)而非具体桥段?无切换是否为 `[]`?
|
||||
- [ ] 未为省 token 拆两套投影?
|
||||
```
|
||||
|
||||
## examples
|
||||
|
||||
```examples
|
||||
好:一次问清爽文遣词 + 好感门控倒追,整份挂两边。
|
||||
坏:拆成「文风技能」和「推进技能」两步;或为省 token 给两边裁成两套残缺稿。
|
||||
好:一次钉清遣词 + 笔墨落点 + 禁忌;推进写「等用户决策」或「无专门推进」;情境备用是「展示情色」「网文爽文」两档及切换时笔墨。
|
||||
坏:拆成「文风技能」和「推进技能」两步;追问好感公式 / 事件池;或把「当众折辱」「独处一室」当成情境备用。
|
||||
```
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
|
||||
> 技能文档。程序只切割下方 **fence 块**;`##` 标题仅供人读。
|
||||
> 产物外壳:`docs/context-fragment-design.md`。
|
||||
> 创作偏晚:规格与呈现契约已齐,写「迈进世界的第一拍」并钉开场真值。
|
||||
> 磁盘 worker `opening-generator` 可执行/落库本产物到 `输出.开场白` 与 `运行.初始变量`。
|
||||
> **创作终节点**:规格与呈现契约已齐。写出 1~多条开场白供选定;选定后程序落库、关闭工作流、保存定稿。
|
||||
> 不必再调磁盘 worker `opening-generator`(无本步时它仍可作兜底落库)。
|
||||
|
||||
## meta
|
||||
|
||||
@@ -12,20 +12,21 @@ name: 开场白与开场变量
|
||||
id: opening-setup
|
||||
artifact: 设计.开场白与开场变量
|
||||
declaration: >
|
||||
写出遵循正文组成/叙事/监控栏等契约的开场一小段,并钉与之同真相的开场变量初值;
|
||||
开场为主、填表为辅
|
||||
创作终节点:写出 1~多条遵循正文组成/叙事/监控栏契约的开场白,并钉与之同真相的开场变量初值;
|
||||
选定后程序落库、结束创作并保存定稿
|
||||
when: |
|
||||
体验、舞台、叙事、变量(若有)、正文组成等已大致可引用,
|
||||
需要可开玩的第一段剧情与初始真值快照时;通常在细化终稿前后、进游玩前。
|
||||
体验、舞台、叙事、变量(若有)、正文组成、细化终稿等已大致可引用,
|
||||
需要可开玩的第一段剧情与初始真值快照时;排在收成链之后,作为最后一步。
|
||||
when_not: |
|
||||
体验/呈现仍混沌 → 先美学与正文组成等。
|
||||
只要改文风不要开场 → 叙事指南。
|
||||
只要改真值规则不要开场文 → 变量设计。
|
||||
尚未细化终稿、Worker 集未齐 → 先收成。
|
||||
boundary: |
|
||||
本技能:开场正文(按正文组成块序拼出用户可见第一屏)+ 开场变量初值 + 可选监控栏初值示意。
|
||||
本技能是创作终节点:1~多条开场正文(按正文组成块序)+ 开场变量初值 + 可选监控栏初值示意。
|
||||
必须遵守已验收的叙事指南、正文组成、监控栏、变量设计;不重做这些契约。
|
||||
具体实例:开场可引用已有实例名片,不在本步新造百科。
|
||||
opening-generator:可将本产物写入 输出.开场白 / 运行.初始变量 / 变量.当前。
|
||||
选定后由程序写入 输出.开场白 / 运行.初始变量 / 变量.当前,关闭 DAG 并保存定稿;不要在本步之后再排其它能力。
|
||||
feeds: narrator
|
||||
```
|
||||
|
||||
@@ -42,19 +43,20 @@ feeds: narrator
|
||||
## task
|
||||
|
||||
```task
|
||||
你正在执行「开场白与开场变量」。产物必须是 **context-fragment.v1** JSON,写入「设计.开场白与开场变量」。
|
||||
你正在执行「开场白与开场变量」。这是**创作最后一步**。产物必须是 **context-fragment.v1** JSON,写入「设计.开场白与开场变量」。
|
||||
|
||||
主产物是**开场一小段剧情**(用户第一屏),不是填表工具。
|
||||
主产物是 **1~多条开场剧情**(用户第一屏),不是填表工具。用户将选定其中一条;选定后程序结束创作并保存。
|
||||
必须遵循:叙事指南与故事推进、正文组成(可见块序、隐藏段若开场就要写)、监控栏字段(若启用)、变量真值名单。
|
||||
|
||||
执行顺序:
|
||||
1. 读依赖:worker 集/美学/叙事/正文组成/监控栏/变量设计/舞台与实例。
|
||||
2. 按正文组成的可见块写出开场各块内容(至少正文块);隐藏段仅当开场即需声明初值变更时使用(通常初值走「开场变量」字段,隐藏段可空)。
|
||||
3. 钉开场变量:与开场事实同一真相;能从设定推断的填上;冲突则以开场叙述为准并改表。
|
||||
4. 若有监控栏:给出开场时监控栏展示快照(短)。
|
||||
5. 自评 + 追问;输出 JSON。
|
||||
2. 写出 **1~3 条**可开玩的开场白候选(角度/第一拍可不同,设定必须同一真相)。推荐那条写入 `开场白全文`,全部写入 `开场白候选`。
|
||||
3. 按正文组成的可见块写出开场各块内容(至少正文块);隐藏段仅当开场即需声明初值变更时使用(通常初值走「开场变量」字段,隐藏段可空)。
|
||||
4. 钉开场变量:与开场事实同一真相;能从设定推断的填上;冲突则以开场叙述为准并改表。
|
||||
5. 若有监控栏:给出开场时监控栏展示快照(短)。
|
||||
6. 自评 + 追问;输出 JSON。
|
||||
|
||||
禁止:先问卷填表再糊开场;禁止开场与初值打架;禁止重写 Worker 集。
|
||||
禁止:先问卷填表再糊开场;禁止开场与初值打架;禁止重写 Worker 集;禁止只交空壳等下一节点。
|
||||
|
||||
summary:`开场白与开场变量 · …`(点题场景)。
|
||||
```
|
||||
@@ -95,7 +97,12 @@ summary:`开场白与开场变量 · …`(点题场景)。
|
||||
"内容": "该块开场文本;可空块写空字符串并说明为何首轮空"
|
||||
}
|
||||
],
|
||||
"开场白全文": "按块序拼好的用户可见开场(主阅读件)",
|
||||
"开场白全文": "推荐那条:按块序拼好的用户可见开场(主阅读件)",
|
||||
"开场白候选": [
|
||||
"推荐那条(与开场白全文相同)",
|
||||
"可选第二条:同一真相、不同第一拍/角度",
|
||||
"可选第三条"
|
||||
],
|
||||
"开场变量": [
|
||||
{
|
||||
"名": "与变量设计真值名一致",
|
||||
@@ -153,13 +160,14 @@ summary:`开场白与开场变量 · …`(点题场景)。
|
||||
|
||||
硬规则:
|
||||
1. context-fragment.v1;自评契约符合/同真相/可开玩。
|
||||
2. `开场白全文` 与 `开场变量` 必填;监控栏快照无监控栏则为 `[]`。
|
||||
2. `开场白全文` 与 `开场变量` 必填;`开场白候选` 1~3 条(含推荐);监控栏快照无监控栏则为 `[]`。
|
||||
3. 不输出完整 worker 集;不发明新真值名(须来自变量设计,若无变量设计则可极少数字段并标明临时)。
|
||||
4. summary:`开场白与开场变量 · {brief 缩略}`。
|
||||
|
||||
## checklist
|
||||
|
||||
```checklist
|
||||
- [ ] 写出 1~3 条开场候选,推荐条与 `开场白全文` 一致?
|
||||
- [ ] 开场遵循正文组成块序与叙事口径?
|
||||
- [ ] 变量与开场同真相?可行动空间清楚?
|
||||
- [ ] 未剧透隐藏档?未写成第一章全文?
|
||||
|
||||
@@ -45,7 +45,8 @@ feeds: narrator
|
||||
|
||||
1. 要微调什么?(监控字段、块称呼、要不要建议行动、tone_chrome…)
|
||||
2. 有没有隐藏段给模型/程序维护变量?
|
||||
3. 不要谈「再发明一种全新布局」。
|
||||
3. 定稿时会用前面情节架空一幕灌进壳里,专供你看版式/美化(内容随便,不当正史)。
|
||||
4. 不要谈「再发明一种全新布局」。
|
||||
```
|
||||
|
||||
## task
|
||||
@@ -64,7 +65,8 @@ feeds: narrator
|
||||
4. 监控栏:字段意图(细则可交「设计监控栏」);无 monitor 的壳写「不启用」。
|
||||
5. 隐藏段(若有):定界与用途。
|
||||
6. 填「呈现壳.微调」;前端拆分区域必须与壳一致。
|
||||
7. 自评 + 追问;禁止写 context `order`。
|
||||
7. **示例**:用前面已定情节架空一幕,按本步壳与可见块灌进 `present.v1` 形状,专供验收版式/美化;示例文可短,游玩正文字数不在本步打磨。
|
||||
8. 自评 + 追问;禁止写 context `order`。
|
||||
|
||||
summary:`正文组成 · 适配 {shell_id} · …`。
|
||||
```
|
||||
@@ -73,7 +75,8 @@ summary:`正文组成 · 适配 {shell_id} · …`。
|
||||
|
||||
```principles
|
||||
1. 创作 = 选壳 + 适配微调
|
||||
不是 UI 创意;布局骨架只读。
|
||||
不是 UI 创意;布局骨架只读。本步验收重点是「看起来对不对」,不是故事写得好不好。
|
||||
「按意见修改」:以最新产物为底;用户要求按先后都有效,冲突时以较新的为准。用户说整体可以、或只提美化/行距/显示名 → 不换 shell_id。换壳必须用户点名。
|
||||
|
||||
2. 只改微调轴
|
||||
字段、显示名、开关、tone_chrome、空态;不改分区、不增区域、不自造壳。
|
||||
@@ -85,6 +88,11 @@ summary:`正文组成 · 适配 {shell_id} · …`。
|
||||
|
||||
5. 与转述、变量分工
|
||||
文风归叙事指南;真值归变量设计;本步只交壳适配契约。
|
||||
游玩单轮用户主读正文默认 500~2000 字,写进「拼装与终稿.单轮正文篇幅」,供转述遵守。
|
||||
|
||||
6. 示例 = 壳与美化预览,非正史
|
||||
用已定材料随便架空一幕,把各区域/监控/行动坞撑满,让用户看见版式。
|
||||
禁止把示例当成开场白或游玩 canon;禁止为写好看而新造设定;文笔及格即可,勿打磨成章。
|
||||
```
|
||||
|
||||
## probe
|
||||
@@ -92,8 +100,8 @@ summary:`正文组成 · 适配 {shell_id} · …`。
|
||||
```probe
|
||||
每轮 1~2 点。
|
||||
|
||||
优先:选哪个壳;微调哪些字段/显示名;隐藏段要不要。
|
||||
不追问:新布局、完整 CSS、事件池 schema、文风遣词。
|
||||
优先:选哪个壳;微调哪些字段/显示名;隐藏段要不要;示例灌数是否让版式看得清。
|
||||
不追问:新布局、完整 CSS、事件池 schema、文风遣词、示例文笔好坏。
|
||||
```
|
||||
|
||||
## output
|
||||
@@ -130,7 +138,7 @@ summary:`正文组成 · 适配 {shell_id} · …`。
|
||||
"可空": true,
|
||||
"填充方": "叙事转述|程序拼装|监控栏|其它",
|
||||
"内容形态": "散文|短列表|键值行|其它",
|
||||
"示例": "可选一句/三行示意"
|
||||
"示例": "可选:该块一句占位(总预览见正文.示例)"
|
||||
}
|
||||
],
|
||||
"监控栏锚点": {
|
||||
@@ -172,7 +180,27 @@ summary:`正文组成 · 适配 {shell_id} · …`。
|
||||
"终稿tag": "通常 输出.用户展示",
|
||||
"拼装方": "叙事转述一次写出各块|程序按块拼接|混合",
|
||||
"推荐灌数": "分块壳优先 present.v1;prose 可为纯 Markdown",
|
||||
"单轮正文篇幅": "默认 500~2000 字(汉字,写入 body);短于 500 仅当用户明确要求极短",
|
||||
"与裁决包关系": "转述读 settlement 再填各块;隐藏段可含 variable_changes 镜像"
|
||||
},
|
||||
"示例": {
|
||||
"性质": "验收预览|非正史|仅看壳与美化",
|
||||
"依据": ["前面已定情节/设定要点,一两句即可"],
|
||||
"用来说明": "这幕只为撑开版式(分区、监控、行动坞、显示名…),内容可糙",
|
||||
"灌数": {
|
||||
"schema": "present.v1",
|
||||
"shell": "与正文.呈现壳.shell_id 一致",
|
||||
"blocks": {
|
||||
"monitor": "若该壳有 monitor:短键值;否则省略",
|
||||
"header": "若有则短字;无则省略",
|
||||
"body": "架空主读文(短段即可,勿写成章)",
|
||||
"aside": "若有则短线索/备注;无则省略",
|
||||
"footer": "若有则可空或一句"
|
||||
},
|
||||
"meta": {
|
||||
"suggested_actions": ["若该壳开建议行动则给 2~3 个占位选项;否则 []"]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"自评": {
|
||||
@@ -191,6 +219,11 @@ summary:`正文组成 · 适配 {shell_id} · …`。
|
||||
"名": "可实现",
|
||||
"分数": 8,
|
||||
"说明": "shell_id 是否在七种壳内;分区与隐藏段是否可交给转述/程序"
|
||||
},
|
||||
{
|
||||
"名": "版式可感",
|
||||
"分数": 8,
|
||||
"说明": "示例灌数是否按壳撑开各区,使人一眼能验收美化(不论文笔)"
|
||||
}
|
||||
],
|
||||
"薄弱点": "一句话"
|
||||
@@ -213,10 +246,12 @@ summary:`正文组成 · 适配 {shell_id} · …`。
|
||||
1. 合法 JSON;含公共三段外壳。
|
||||
2. 正文须含 `呈现壳.shell_id`(七种之一)与 `微调`;可见块只挂壳已有区域。
|
||||
3. `可见块` 至少 1 条(通常含 body);禁止自造区域 id / 第五种壳。
|
||||
4. 禁止程序 API schema、context `order`、完整 CSS。
|
||||
5. 自评:可见完备 / 监控克制 / 可实现(=壳适配是否可执行)。
|
||||
6. summary:`正文组成 · 适配 {shell_id} · {brief 缩略}`。
|
||||
7. 兼容旧称产物 tag「设计.回复格式」。
|
||||
4. 正文须含 `示例`:`性质` 标明非正史;`灌数` 为 `present.v1`,`shell` 与本步 shell_id 一致;只填该壳已有区域。
|
||||
5. 示例内容可糙:只为验收壳与美化;禁止当开场白/正史;禁止为示例新造设定。
|
||||
6. 禁止程序 API schema、context `order`、完整 CSS。
|
||||
7. 自评:可见完备 / 监控克制 / 可实现 / 版式可感。
|
||||
8. summary:`正文组成 · 适配 {shell_id} · {brief 缩略}`。
|
||||
9. 兼容旧称产物 tag「设计.回复格式」。
|
||||
|
||||
## checklist
|
||||
|
||||
@@ -225,18 +260,22 @@ summary:`正文组成 · 适配 {shell_id} · …`。
|
||||
- [ ] shell_id 在七种壳内?可见块未超出该壳分区?
|
||||
- [ ] 微调轴已填或明确默认?监控栏未塞死名片字段?
|
||||
- [ ] 隐藏段(若有)定界清楚?未写 CSS 工程?
|
||||
- [ ] 有示例灌数(present.v1),壳一致、各区撑开,且标明非正史?
|
||||
- [ ] 未把示例写成开场白或打磨成长文?
|
||||
```
|
||||
|
||||
## examples
|
||||
|
||||
```examples
|
||||
好:
|
||||
- 适配 chat_monitor:微调监控字段=好感/今日话题;body 显示名=「短信」。
|
||||
- 适配 chapter_reader:只开 header+body;aside 关。
|
||||
- 适配 turn_panel:开 suggested_actions;监控只盯体力/好感。
|
||||
- 适配 chat_monitor:微调监控字段=好感/今日话题;body 显示名=「短信」;示例灌数把气泡区+监控撑开,文笔随便。
|
||||
- 适配 chapter_reader:只开 header+body;aside 关;示例给短章头+一段 body。
|
||||
- 适配 turn_panel:开 suggested_actions;监控只盯体力/好感;示例 meta 带 2~3 个占位行动。
|
||||
|
||||
坏:
|
||||
- 「我们自定义一种左右分栏新界面」。
|
||||
- 不写 shell_id,只写「要好看的 UI」。
|
||||
- 监控栏列出姓名、性别等死设定。
|
||||
- 示例写成第一章正史,或为写好看新造未定设定。
|
||||
- 示例 shell 与呈现壳不一致,或灌了壳没有的区域。
|
||||
```
|
||||
|
||||
@@ -21,8 +21,8 @@ process:
|
||||
- 需要门控/分档/程序事件:先「变量设计与更新规则」,再「变量控制上下文」。变量与 Progressive 不是执行单元。
|
||||
- 挂载归属(非顺序):世界/机制/生成 → 主世界层;叙事指南与故事推进 → 叙事转述(推进兼挂主世界层);美学进常驻。勿为世界观或性格表另开槽。拓扑图谱在固定槽已够用时通常跳过。
|
||||
- 需要把美学「感觉」落成遣词/笔墨焦点/禁忌与推进时用「叙事指南与故事推进」;事件表 schema 仍用生成规则,真值门控用变量设计。
|
||||
- 收成链(顺序固定):上游上下文大致齐 →「上下文投影排序」→「细化终稿」→ status: closed。禁止在排序步发明 ref 或重写长文。
|
||||
- 进游玩前可排「开场白与开场变量」(遵循正文组成/叙事/变量);再由 opening-generator 落库到输出.开场白与运行.初始变量。
|
||||
- 收成链(顺序固定):上游上下文大致齐 →「上下文投影排序」→「细化终稿」→ 需要开场则排「开场白与开场变量」(〔收口〕:选定后结束创作并保存)。
|
||||
- 「开场白与开场变量」写出 1~多条开场白;选定后程序落库到输出.开场白与运行.初始变量,不必再调 opening-generator。
|
||||
- 变量:真值 + Data 映射索引(实例表在具体实例)+ 维护语句(裁决包/隐藏段,非 chance)+ 旁观汇总挂载(变量控制上下文)。
|
||||
|
||||
principles:
|
||||
|
||||
@@ -39,5 +39,7 @@ prompt_excerpt: |
|
||||
"meta": { "suggested_actions": ["…"] }
|
||||
}
|
||||
monitor 用短键值(芯片),勿写长文。只填该壳已有区域。
|
||||
用户主读正文(body)默认 500~2000 字(汉字):写成可连读的场面/对话推进,不要几句短信就结束。
|
||||
禁止在正文里写出 tag 名(「输出.用户展示」)、压缩摘要或过程日志。
|
||||
禁止写出 do_not_say;禁止编造包中没有的事实。
|
||||
若裁决含 tone_hint / npc_moves / suggested_actions,须体现在 body 或 meta。
|
||||
|
||||
@@ -34,19 +34,19 @@ contextSegments:
|
||||
label: "## 【用户已选配方】只读引用"
|
||||
- id: user-demand
|
||||
tier: dynamic
|
||||
tags: ["用户.需求", "book.brief", "用户.最新输入", "用户.worker答复", "用户.修订说明"]
|
||||
tags: ["用户.需求", "book.brief", "用户.worker答复"]
|
||||
label: "## 用户表述"
|
||||
---
|
||||
|
||||
# 创作 · 流程编排
|
||||
|
||||
你只做一件事:根据用户表述,编排或**增量修订**一份剧本流程(可变 DAG)。
|
||||
你只做一件事:根据【用户要求】编排或**增量修订**一份剧本流程(可变 DAG)。要求按先后都有效,冲突时以较新的为准。
|
||||
|
||||
上下文里会有:
|
||||
|
||||
1. **【流程进度】**(程序钉死):已完成哪些步、草案里已有哪些步、哪些能力才允许再编入。必须先读完再排。
|
||||
2. **【用户已选配方】**:该方法的适用、核心思路、设计流程与原则 + 近期起点 steps——**不是**锁死流水线;**禁止**替用户改选其它配方
|
||||
3. **【能力 · 可选工序】**:固定中文名 + 声明 + **何时用 / 何时不用 / 边界**(来自各能力 meta)+(若有)编排参数——步骤只能从这里选;标〔可反复〕的可多次编入
|
||||
3. **【能力 · 可选工序】**:固定中文名 + 声明 + **何时用 / 何时不用 / 边界**(来自各能力 meta)+(若有)编排参数——步骤只能从这里选;标〔可反复〕的可多次**新建**编入;已完成节点要改用回头修改(mode=revise)
|
||||
4. **【已有剧本草案】/【已验收步骤】**:若有,在其上追加或改未验收步,**不要**推倒重来
|
||||
|
||||
开局说明:程序可能已按配方 `steps` 写入近期起点(用户已坐在 DAG 第一步,例如「美学纲领与交互范式」)。此时**不要**把开局步再规划一遍;仅追加缺口。listed 步已齐仍需扩写时,保留已完成 id,只加新步。
|
||||
@@ -59,11 +59,14 @@ contextSegments:
|
||||
|
||||
- **跟配方方法论**:用配方的 core / process / principles 理解整局怎么设计、何时收成。
|
||||
- **跟能力 meta**:某步该不该排,看能力的「何时用 / 何时不用 / 边界」;**不要**在配方里找各能力调用条件,也不要凭题材默认全选。
|
||||
- 有「编排参数」声明的能力:写入 DAG 时可先留空壳;**确认开干前**必须钉齐必填 params(用户在「下一步」意向后、点同意开始时补齐)。
|
||||
- 参数不明时:可先产出带空 params 的步骤,或 askUser;禁止把「生成什么 / 调用哪个规则」拖到 design-step 执行中途。
|
||||
- 用户先认可**下一节点**(含参数),再进入执行;用户提出新要求时,再调本 worker 修订未验收步或追加新步。
|
||||
- 〔先验产物〕(生成规则、具体实例):可提前规划「写什么」写入 params;执行时程序注入【规划产物】。规划可空——对象在步内钉。提前规划多条(不同对象/批次)是正确的。**禁止**为钉「生成什么 / 调用哪个规则」而 askUser 拦在确认开干前。
|
||||
- 其它有「编排参数」的能力:写入 DAG 时可先留空壳;**确认开干前**必须钉齐必填 params。
|
||||
- 用户先认可**下一节点**,再进入执行;用户提出新要求时,再调本 worker 修订未验收步或追加新步。
|
||||
|
||||
同能力**可以**多次出现(尤其〔可反复〕):每次一次调用、一次验收、产物写入同一 artifact(增量补全)。id 应尽量带上调用目标,如 `生成规则·怪物`,避免无信息的 `#2`。
|
||||
同能力**可以**多次出现。必须分清两种:
|
||||
|
||||
- **彻底新建**(〔可反复〕如生成规则、具体实例):`mode` 缺省或 `"fresh"`,新 id + 新 params。每一次都是新对象/新批次,**不要**改旧条。id 应尽量带上调用目标,如 `生成规则·怪物`,避免无信息的 `#2`。
|
||||
- **回头修改**:用户要改**已经做过**的节点(漏了、谈浅了、后来发现要改)→ 追加新 id,`"mode": "revise"`,`"revises": "<原步 id>"`。程序会注入既有产物,在旧稿上改。非反复技能**禁止**再排一条 fresh;只能 revise。插在最近已验收步之后、尚未执行的步之前。
|
||||
|
||||
## 产出(唯一)
|
||||
|
||||
@@ -94,6 +97,13 @@ contextSegments:
|
||||
"count": "按规则"
|
||||
},
|
||||
"depends_on": ["生成规则·重要NPC"]
|
||||
},
|
||||
{
|
||||
"id": "美学纲领与交互范式·改",
|
||||
"name": "美学纲领与交互范式",
|
||||
"mode": "revise",
|
||||
"revises": "美学纲领与交互范式",
|
||||
"depends_on": ["实现机制"]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -103,25 +113,28 @@ contextSegments:
|
||||
|
||||
1. `steps` 数组顺序 = **建议执行顺序**(依赖须指向更前的步骤)
|
||||
2. `name` = 能力池里的固定中文名(可重复)
|
||||
3. `id` = 本局步骤唯一键;同 name 多次时必须不同;优先语义化(`生成规则·{对象}`)
|
||||
3. `id` = 本局步骤唯一键;同 name 多次时必须不同;新建优先语义化(`生成规则·{对象}`);回头修改用 `{原id}·改`
|
||||
4. `depends_on` = 其它步骤的 **id**(若某 name 在本流程唯一,也可写该 name)
|
||||
5. `params` = 本步调用参数(对象)。能力目录声明了编排参数时,**必填项必须写出**;可选则能推断就写
|
||||
5. `params` = 本步调用参数(对象)。〔先验产物〕:此处是规划产物(可空;已知对象就填,便于区分多条)。其它能力目录声明了编排参数时,**必填项必须写出**;可选则能推断就写。回头修改可省略,程序会从 `revises` 那步继承
|
||||
6. `status`:`"open"` = 还可能追加;`"closed"` = 不再扩步(可走收成)
|
||||
7. 已验收步骤的 id **必须保留**;只能追加新步,或改未验收步的依赖/顺序/params
|
||||
8. 已完成的**非反复**技能(美学纲领、实现机制、舞台骨架、叙事指南等)禁止再排一次执行;只有目录标了〔可反复〕的(生成规则、具体实例等)才可再编入新 id
|
||||
8. 已完成的**非反复**技能禁止再排一条 `mode=fresh`;要改旧稿只能追加 `mode=revise` + `revises`。〔可反复〕再编入新 id 且 fresh = 彻底新建(新对象/新批次),不是改旧条;改旧条同样用 revise
|
||||
9. 配方建议 steps 只作近期起点;按能力 meta 按需选用,勿默认全选、勿一次排满
|
||||
10. **禁止**把「交互」与「美学」拆成两步
|
||||
11. **禁止**在本步写能力正文、自由 Worker 列表、表结构
|
||||
12. **禁止**编排「反复发明执行单元」;收成链:确认「游玩拓扑」→(上下文已多时)「上下文投影排序」→「细化终稿」。挂谁可早、排第几须晚,勿让中段技能写死 order
|
||||
13. 参数或选型不够时,用 askUser 问 1~2 点(**优先带 options,并允许其它**)。
|
||||
只许问**排布层**的事:下一步排哪个能力、某步的必填 params 取什么值。
|
||||
12. **禁止**编排「反复发明执行单元」;收成链:确认「游玩拓扑」→(上下文已多时)「上下文投影排序」→「细化终稿」→(可开玩时)「开场白与开场变量」。挂谁可早、排第几须晚,勿让中段技能写死 order
|
||||
13. 「开场白与开场变量」标〔收口〕:排在细化终稿之后作为最后一步;排入后不要再追加其它步,可将 `status` 设为 `closed`。选定开场由程序落库并保存定稿,不必再调 opening-generator
|
||||
14. 参数或选型不够时,用 askUser 问 1~2 点(**优先带 options,并允许其它**)。
|
||||
只许问**排布层**的事:下一步排哪个能力、普通节点的必填 params 取什么值、是新建还是回头修改哪一步。
|
||||
〔先验产物〕的「生成什么 / 调用哪个规则」在步内钉,**不要**为此 askUser。
|
||||
**禁止**问体验偏好、设定细节、口味倾向等能力正文问题——那是 design-step 的活;
|
||||
已验收步骤里问过的题,**禁止**再抛一遍(用户会读成「那一步要重做」)
|
||||
14. 依赖真实产物的步骤(如具体实例依赖某条生成规则)须等上游验收后再编排,并从产物中列出可选项供用户选
|
||||
15. `summary`:`流程 · N 步 · open|closed · …`
|
||||
16. **改对象必须改后台 id**:用户把「生成规则」从女租客改成丧尸怪物时,须同步改
|
||||
15. 依赖真实产物的步骤(如具体实例依赖某条生成规则)须等上游验收后再编排,并从产物中列出可选项供用户选
|
||||
16. `summary`:`流程 · N 步 · open|closed · …`
|
||||
17. **改对象必须改后台 id**:用户把「生成规则」从女租客改成丧尸怪物时(编排修订或步内改规划),须同步改
|
||||
`params.target`、`params.rule_id`(对应英文 kebab-case,如 `zombies`)、以及步骤 `id`(如 `生成规则·丧尸怪物`)。
|
||||
**禁止**只改中文对象却沿用旧 `rule_id` / 旧步骤 id。
|
||||
这是**改这条规则的对象**(回头修改或改未验收步),与「再来一条新的生成规则」不是一回事。
|
||||
|
||||
## 自检
|
||||
|
||||
@@ -130,10 +143,12 @@ contextSegments:
|
||||
- 是否误排了多次「发明 Worker」?应改为至多一次「游玩拓扑」
|
||||
- 每步是否按能力 meta 的何时用/不用判断过,而非题材默认?
|
||||
- 每步 name 都在【能力】里?同名多次是否都有不同 id?
|
||||
- 有编排参数的步骤,必填 params 是否已钉齐?缺参是否应先 askUser 而不是产出空壳?
|
||||
- 有编排参数的普通步骤,必填 params 是否已钉齐?缺参是否应先 askUser 而不是产出空壳?
|
||||
- 〔先验产物〕是否误把「生成什么」当成确认开干前必填?规划可空;已知对象才写入 params
|
||||
- depends_on 是否都指向更靠前的步骤 id?
|
||||
- 已验收 id 是否都还在?
|
||||
- 【流程进度】里已完成的非反复技能,是否误当成新规划又排了一次?
|
||||
- askUser 是否只问了排哪步 / 填哪个参数,而不是体验偏好等正文问题?
|
||||
- 需要反复补同类内容时,是否用了新 id + 新 params 追加而非改写旧步?
|
||||
- 【流程进度】里已完成的非反复技能,是否误当成 fresh 又排了一次?要改旧稿应 mode=revise
|
||||
- askUser 是否只问了排哪步 / 填哪个参数 / 新建还是回头修改,而不是体验偏好等正文问题?
|
||||
- 需要反复补同类内容时,是否用了新 id + 新 params + fresh 追加(彻底新建),而不是改写旧步?
|
||||
- 用户要改已完成节点时,是否用了 mode=revise + revises,而不是再排一条 fresh?
|
||||
- 收成前是否把 `status` 设为 `closed`?
|
||||
|
||||
@@ -29,24 +29,37 @@ contextSegments:
|
||||
label: "## 【本步】当前工序 id(对应流程 steps[].id)"
|
||||
- id: user-demand
|
||||
tier: dynamic
|
||||
tags: ["用户.需求", "book.brief", "用户.最新输入", "用户.worker答复", "用户.修订说明"]
|
||||
tags: ["用户.需求", "book.brief", "用户.worker答复"]
|
||||
label: "## 用户表述"
|
||||
---
|
||||
|
||||
# 创作 · 执行步骤
|
||||
|
||||
你只做 **【本步】** 标明的那一个工序(流程里的一步 id → 能力 name)。
|
||||
你执行工作流计划里 **【本步】** 那一个工序(步骤 id → 能力 name):按注入的【本步方法】写出该步产物(程序指定的 output tag),交用户验收。其它步骤产物不改;流程只读。
|
||||
|
||||
程序会在提示词中追加该工序的方法正文,并注入依赖步骤的已验收产物。
|
||||
程序会追加该工序的方法正文,并注入依赖步骤的已验收产物。
|
||||
|
||||
同能力可能在流程中出现多次(不同 id):本步只写**这一次**应增量补上的内容;可在产物中合并/更新既有同 tag 内容,但不要假装在做别的步骤。
|
||||
同能力可多次出现(不同 id):
|
||||
|
||||
## 纪律
|
||||
- **新建**(mode 缺省 / fresh):只写这一次应增量补上的新内容;可合并既有同 tag 内容,但不改旧条、不假装在做别的步骤。〔可反复〕的「再来一次」属于这种。
|
||||
- **回头修改**(mode=revise):以【既有产物 · 继承修改】为底稿,改用户点名的部分,保留其余;不从零另起,不再走开场询问。
|
||||
- **按意见修改**(验收底栏):以【待改底稿】(最新产物)为底。用户要求按先后都有效,冲突时以较新的为准;未点名推翻的旧条仍须留在产物里。禁止原样交回。
|
||||
|
||||
1. 只写本步产物(程序指定的 output tag);不要改其它步骤产物
|
||||
2. 产物用简洁 JSON 或结构化中文,方便界面渲染;少写机器变量名
|
||||
3. 若本步有**默认问题**:程序已先发给用户;首答在「用户.worker答复」/「创作.能力开场白」。**禁止**再用 LLM 重复同一开场白
|
||||
4. 信息不足:context-fragment 产物把题写在「追问」(1~2 点,建议选项 + 示例),顶层 askUser 为 null。仅完全无法产出时才用顶层 askUser
|
||||
5. `summary`:`{本步能力名} · …`
|
||||
6. **禁止**重排或扩写流程;流程只读。需要追加「再来一次生成规则」等 → 由总管再调 design-flow
|
||||
7. **本步参数**由编排期写入 steps[].params,程序会注入【本步参数】。按参数执行;禁止再问「这一步生成什么 / 调用哪个规则」。参数缺失或与目录必填项不符 → 停止产出,提示返回 design-flow 补参
|
||||
## 执行
|
||||
|
||||
1. 认定本步要钉的事项:读【本步方法】里 `task` 开头(钉什么、写到哪个 tag)和 `meta.boundary` 的「本技能:」行。
|
||||
2. 读【用户要求】与依赖产物。若有默认问题:程序已发出,首答在「用户.worker答复」——在其答复上继续,不重复开场白。
|
||||
3. 按方法正文填产物。〔先验产物〕读【规划产物】当起点(可空、可在步内修订);其它节点编排参数见【本步参数】,直接采用。
|
||||
4. 产物用简洁 JSON 或结构化中文,少写机器变量名。`summary`:`{本步能力名} · …`
|
||||
|
||||
## 缺料时
|
||||
|
||||
「不足」只指上面第 1 步认定的事项还不能验收。
|
||||
|
||||
- 缺其中一件:在产物「追问」写 1~2 点(建议选项 + 示例),顶层 askUser 为 null。半残 JSON 仍写入 outputs 交验收。仅完全没有可展示正文时才用顶层 askUser。
|
||||
- 这些事项够验收:`追问.题目` 为 `[]`。方法未点名为必须钉死的键,写「未定」或省略,不发问。
|
||||
- 用户谈到 `boundary` 里交给其它技能的话题:只抽取能改本步必钉事项的一句写入正文,其余写入产物「开放问题」(无该键则在说明里记一句),本步不就此追问。
|
||||
- 〔先验产物〕规划为空:先在本步钉「写什么」,再填产物。不要退回编排器补参。
|
||||
- 普通节点【本步参数】缺必填项或与目录不符:停止产出,提示返回流程编排补参。
|
||||
|
||||
需要追加「再来一次」或回头修改其它步时,由编排器再调流程编排。
|
||||
|
||||
@@ -3,8 +3,8 @@ id: opening-generator
|
||||
skill: world-simulator
|
||||
name: 开局 · 开场白
|
||||
description: >-
|
||||
【创作末尾】优先落库「设计.开场白与开场变量」;若无则结合已定规格写出开场白,
|
||||
并钉与开场同真相的初值。主产物是开场白,不是填表。须用户验收。
|
||||
【兜底】DAG 未排「开场白与开场变量」时,在创作末尾落库开场白与初值。
|
||||
若该节点已选定,程序会收口,不必再调本 worker。
|
||||
version: 3
|
||||
stage: design-end
|
||||
inputTags:
|
||||
@@ -29,13 +29,18 @@ contextSegments:
|
||||
label: "## 已定世界与故事规格"
|
||||
- id: user
|
||||
tier: dynamic
|
||||
tags: ["用户.需求", "用户.最新输入", "用户.worker答复", "用户.修订说明", "运行.初始变量", "输出.开场白"]
|
||||
label: "## 用户与开局草稿"
|
||||
tags: ["用户.需求", "用户.最新输入", "用户.worker答复", "用户.修订说明"]
|
||||
label: "## 用户表述"
|
||||
- id: opening-draft
|
||||
tier: static
|
||||
tags: ["运行.初始变量", "输出.开场白"]
|
||||
label: "## 【已有开场】只保留最新稿;若有则在其上改,不要另起"
|
||||
---
|
||||
|
||||
# 开局 · 开场白
|
||||
|
||||
创作末尾:规格已定。优先读取 **`设计.开场白与开场变量`**:
|
||||
创作末尾兜底(DAG **没有**「开场白与开场变量」时才需要本 worker)。
|
||||
规格已定。优先读取 **`设计.开场白与开场变量`**:
|
||||
|
||||
- 若已有且可用:把其中「开场白全文」写入 `输出.开场白`,把「开场变量」写成 `运行.初始变量` / `变量.当前`(表格式);可微调不可另起炉灶。
|
||||
- 若无:再站在 Worker 集 + 正文组成 + 叙事指南 + 变量设计上现写开场,并钉同真相初值。
|
||||
|
||||
Reference in New Issue
Block a user