新建作品改为直接进入对话落盘,按本局创作方案写能力,并把楼层呈现和零层卡分开。
输入栏同时可以按分组切换模型。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -1,9 +1,5 @@
|
||||
# 变量设计与更新规则
|
||||
|
||||
> 技能文档。程序只切割下方 **fence 块**;`##` 标题仅供人读。
|
||||
> 方法:`docs/progressive-data-design.md`;外壳:`docs/context-fragment-design.md`。
|
||||
> 与「正文组成」隐藏段、生成规则/具体实例的 Data 表、旁观汇总对齐。
|
||||
|
||||
## meta
|
||||
|
||||
```meta
|
||||
@@ -11,78 +7,59 @@ name: 变量设计与更新规则
|
||||
id: variable-design
|
||||
artifact: 设计.变量设计与更新规则
|
||||
declaration: >
|
||||
体验必须跨轮记住少数状态时:钉真值、谁可写、如何变、维护语句,以及按值换文案的映射索引
|
||||
定义必须跨轮保存的最少真值、合法更新条件、权限与派生映射,供程序选择简单状态工具或复杂维护副 Worker。
|
||||
when: |
|
||||
体验需要跨轮记住少数状态,否则会糊:必须可查询、门控、防重复,或到某值换一套态度/文案/章纲。
|
||||
用户点名要好感/资源/阶段数字、分档换性格、进度门控时排。
|
||||
某项状态若不持久保存,就会导致数值、阶段、资源、门控或已发生事实跨轮漂移时使用。
|
||||
when_not: |
|
||||
无状态纯对话,或状态只临场描写、从不程序化 → 不排。
|
||||
只要大段设定不要门控 → 「舞台骨架」/「生成规则」。
|
||||
只规定谁的提示词看见什么 → 「变量控制上下文」。
|
||||
只规定每轮给用户看哪些(正文/字数/变量/日期)→ 「回复呈现」。
|
||||
状态只需从最近正文理解、无需查询或门控 → 不使用。
|
||||
节点与连接构成的地图、关系或路径 → 拓扑图谱。
|
||||
大段设定或同类对象合同 → 舞台骨架 / 生成规则。
|
||||
boundary: |
|
||||
本技能:真值清单、更新规则、维护语句约定、Data 映射索引、side_effects 草案。
|
||||
分档长文/性格切片正文:由生成规则定格式、具体实例填表;本步做索引与门控,不重写整表。
|
||||
正文组成:隐藏段定界符——本步钉「维护语句写什么」;定界样式与之对齐。
|
||||
随机范围整理:检定/掷骰取值范围汇总(程序插备用数)——不是变量表维护手段;本步不收随机表。
|
||||
变量控制上下文:挂载对象与旁观汇总视野。
|
||||
细化终稿:收成 tables.side_effects。
|
||||
feeds: gm
|
||||
本能力定义什么是真值、什么事实允许它改变,以及改变后的约束;不决定 API 投递方式。
|
||||
少量简单变量由程序生成主世界层状态工具;复杂变量与拓扑等由维护合同编译工具汇总。
|
||||
变量控制上下文负责详细可见范围;正文组成负责展示。本能力不写隐藏段、正则、maintain 包或界面格式。
|
||||
feeds: gm,auditor
|
||||
```
|
||||
|
||||
## opening
|
||||
|
||||
```opening
|
||||
先说「玩的时候必须记住、否则体验会糊」的东西:
|
||||
|
||||
1. 数字/阶段?(好感、章节、资源…)一次性门?
|
||||
2. 有没有「到了某值换一套态度/大纲」的表?(表正文可已在具体实例里)
|
||||
3. 每轮如何声明变量变了?(旁观维护 maintain.v1 / 正文隐藏段键值 / 两者)
|
||||
4. 旁观或主世界层是否需要一份「当前映射摘要」(如好感档→性格要点)?
|
||||
说说哪些状态必须跨轮准确记住,以及什么已经发生的事实才能让它们改变。只列不保存就会出错的真值;临时描写不用变量化。
|
||||
```
|
||||
|
||||
## task
|
||||
|
||||
```task
|
||||
你正在执行「变量设计与更新规则」。产物必须是 **context-fragment.v1** JSON,写入「设计.变量设计与更新规则」。
|
||||
为本局定义跨轮真值及其更新规则,写入 `设计.变量设计与更新规则`。先做必要性检验,再为每个真值写稳定 id、类型、初始化要求、公开性、允许写入者、允许操作、范围和基于事实的更新规则。
|
||||
|
||||
三分:
|
||||
- **真值**:跨轮必须记住的少数字段(好感、章节…)
|
||||
- **Data 映射**:阈值→切片大表(性格档、章纲、事件池)——格式归生成规则,行归具体实例;本步建索引并指向实例/规则 id
|
||||
- **Progressive**:side_effects 按真值边沿投影当前切片;旁观/主世界层读投影或汇总,不整表常驻
|
||||
区分两类判断:
|
||||
- `deterministic`:程序能从明确指令、公式或工具结果直接计算。
|
||||
- `narrative_inference`:必须结合本轮正文中已经成立的事实判断;须写证据要求,不能凭倾向猜测。
|
||||
|
||||
**维护语句**:规定如何声明变更(供程序拆进 `变量.当前`)。主路径是旁观维护 `maintain.v1`(读本轮正文推断 table_ops);可选正文隐藏段键值。主世界层不交 settlement 裁决包。
|
||||
这不是掷骰;随机数走「随机范围整理」+ 程序插入的备用数。隐藏段定界与「正文组成」对齐。
|
||||
若真值只用于选择分档文本或实例切片,保存真值并引用映射来源,不把派生结果建立成第二个可写真值。若跨越阈值会触发一次性或边沿效果,写成触发规则。
|
||||
|
||||
执行顺序:
|
||||
1. 读美学/机制/生成规则/具体实例/正文组成;不重开体验。
|
||||
2. 立真值(承重才建);写写入源与更新规则。
|
||||
3. 建 Data 映射索引:每张表写清键依哪个真值、材料来自哪条 rule_id/batch、给旁观/投影用的摘要字段。
|
||||
4. 写维护语句约定:形状、必填键、与隐藏段/旁观维护的关系、示例一句。
|
||||
5. 写 side_effects(once/every_edge → replace_tag 等)。
|
||||
6. 自评 + 追问;输出 JSON。
|
||||
最后根据变量数量、相互依赖、判断方式和触发复杂度给出维护复杂度事实,供程序选择 `none / inline_tool / inline_structured / auditor_bundle`;这是建议,不绑定 API 能力。
|
||||
|
||||
summary:`变量设计 · …`(点题主真值 + 有无映射表)。
|
||||
材料足够便直接成稿;真正会改变变量合同的缺口交给 `self_score.gap`。产物正文不放评分、诊断、追问或开放问题。
|
||||
```
|
||||
|
||||
## principles
|
||||
|
||||
```principles
|
||||
1. 承重才立真值;派生性格不落第二可写格。
|
||||
2. 映射内容:具体实例生成 → 本步索引汇总 → side_effects/变量控制上下文供给旁观与主世界层。
|
||||
3. 维护靠「声明 + 程序合并」,不靠模型直接改库:
|
||||
- 主路径:旁观维护 maintain.v1(读本轮正文)和/或正文隐藏段(正则/定界)→ Runtime 合并进 变量.当前
|
||||
- 边沿:side_effects 换投影 tag
|
||||
- 用户手改;chance 只出随机数,不替代维护语句
|
||||
4. 维护语句必须可生成、可校验:固定键名、短值、禁止散文糊弄。
|
||||
5. 旁观要看的是「当前档摘要」,不是整份实例库;汇总句或投影 tag 即可。
|
||||
6. 宁少勿多;与监控栏字段可交集但职责不同(监控=用户看见;真值=程序真相)。
|
||||
1. 承重才立真值:必须可查询、计算、门控或防止重复;仅为描写方便的状态不落库。
|
||||
2. 字段不多不少且互不重叠。余额与存款只留一个;由好感推得的态度档不另设可写字段。
|
||||
3. 更新规则以已发生事实为证据,写清条件、操作和边界。模型可以判断事实,程序负责校验与提交。
|
||||
4. 类型决定操作:number/integer 可 `set|delta`;enum/string/boolean 可 `set`;set 可 `add|remove`。不用散文值绕过类型。
|
||||
5. 公开性只区分用户可见与隐藏;更细的主世界层、转述、旁观投影交给变量控制上下文。
|
||||
6. 阈值映射只保存引用和选取条件;长文内容仍在生成规则/具体实例中。
|
||||
7. 维护复杂度按实际依赖判断,不机械按数量:一个简单余额可走 inline tool;一个可扩展关系图不属于简单变量。
|
||||
8. 不在正文中设计隐藏标签、正则或维护 JSON;投递方式由程序根据 API 能力选择。
|
||||
```
|
||||
|
||||
## probe
|
||||
|
||||
```probe
|
||||
每轮 1~2 点:主真值;连续数字还是阶段枚举;维护走旁观 maintain / 隐藏段 / 两者;映射表是否已有具体实例可索引;旁观要不要当前档摘要。
|
||||
每轮 1~2 点。优先确认不保存会出什么错、变量类型与初值、哪些已成立事实允许更新,以及更新是程序可确定还是需要正文推断。
|
||||
```
|
||||
|
||||
## output
|
||||
@@ -91,136 +68,138 @@ summary:`变量设计 · …`(点题主真值 + 有无映射表)。
|
||||
{
|
||||
"schema": "context-fragment.v1",
|
||||
"技能": "变量设计与更新规则",
|
||||
"brief": "一句话:主真值 + 映射/维护方式",
|
||||
"mount": ["world-simulator"],
|
||||
"brief": "一句话说明必须记住哪些真值,以及更新判断的复杂度",
|
||||
"mount": ["world-simulator", "auditor"],
|
||||
"稳变": "stable",
|
||||
"正文": {
|
||||
"依据的体验": ["从机制/美学提取的状态化点"],
|
||||
"真值": [
|
||||
{
|
||||
"名": "好感",
|
||||
"类型": "number|enum|boolean|string|set",
|
||||
"初值": 0,
|
||||
"对用户可见": true,
|
||||
"对主世界层可见": true,
|
||||
"写入源": ["llm", "用户"],
|
||||
"更新": {
|
||||
"时机": "…",
|
||||
"方式": "delta|绝对值|枚举切换",
|
||||
"钳制": "0..100|未定",
|
||||
"执行单元": "world-simulator"
|
||||
"id": "稳定安全 id",
|
||||
"名称": "用户可读名称",
|
||||
"用途": "不保存它会造成什么跨轮错误",
|
||||
"类型": "number|integer|enum|string|boolean|set",
|
||||
"初始化": {
|
||||
"默认值": 0,
|
||||
"开场确定规则": "开场可覆盖默认值时写条件;否则写固定"
|
||||
},
|
||||
"备注": ""
|
||||
"公开性": "public|hidden",
|
||||
"允许写入者": ["从 program|gm_tool|auditor|user 中选择实际允许项"],
|
||||
"允许操作": ["按类型从 set|delta|add|remove 中选择"],
|
||||
"约束": {
|
||||
"最小值": 0,
|
||||
"最大值": 100,
|
||||
"枚举值": [],
|
||||
"其它不变量": []
|
||||
},
|
||||
"更新规则": [
|
||||
{
|
||||
"当": "什么已发生事实允许更新",
|
||||
"判断方式": "deterministic|narrative_inference",
|
||||
"证据要求": "程序输入或正文中必须能指出什么",
|
||||
"操作": "set|delta|add|remove",
|
||||
"值规则": "固定值、公式或允许的推断范围",
|
||||
"时机": "pre_narrative|post_narrative"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"Data映射索引": [
|
||||
"派生映射": [
|
||||
{
|
||||
"映射id": "affinity-personality",
|
||||
"用途": "好感分档性格|章大纲|场景包|事件池|…",
|
||||
"键依真值": "好感",
|
||||
"键规则": "例:区间 [0,30)/[30,60)/[60,100]",
|
||||
"结构摘要": "阈值 → 态度/行为切片字段…",
|
||||
"生成规则rule_id": "来自设计.生成规则;无则待补",
|
||||
"具体实例batch_id": "来自设计.具体实例;无则待补",
|
||||
"旁观与投影要用的摘要键": ["档名", "态度要点", "禁触"],
|
||||
"说明": "长文在实例表;本索引只为查表与汇总"
|
||||
"id": "稳定映射 id",
|
||||
"用途": "真值变化后选择什么只读切片",
|
||||
"依据变量": ["变量 id"],
|
||||
"选取规则": "区间、枚举匹配或组合条件",
|
||||
"来源": {
|
||||
"规则名": "设计.生成规则#中文规则名;无则省略",
|
||||
"名称": "设计.具体实例#中文名;无则省略"
|
||||
},
|
||||
"读取字段": ["需要投影的摘要字段"]
|
||||
}
|
||||
],
|
||||
"维护语句约定": {
|
||||
"通道": ["旁观maintain.v1", "隐藏段", "二者都要"],
|
||||
"与正文组成对齐": "隐藏段段id / 定界约定;无隐藏段则写「仅旁观维护」",
|
||||
"语句形状": {
|
||||
"格式": "maintain.v1 table_ops|隐藏段键值列表",
|
||||
"必填键": ["key", "delta|to"],
|
||||
"禁止": ["无键散文", "改未立真值", "主世界层交 settlement JSON"]
|
||||
},
|
||||
"生成要求": "旁观维护按本轮正文推断变更(多数轮可空);主世界层专注故事正文",
|
||||
"示例": [
|
||||
{ "key": "好感", "delta": 8, "reason": "送礼成功" }
|
||||
],
|
||||
"程序侧": "Runtime 合并 maintain.v1 → 变量.当前;再跑 side_effects;非 chance toolcall"
|
||||
},
|
||||
"side_effects": [
|
||||
"触发规则": [
|
||||
{
|
||||
"id": "affinity-romance",
|
||||
"field": "好感",
|
||||
"op": "gte",
|
||||
"value": 60,
|
||||
"mode": "once",
|
||||
"id": "稳定触发 id",
|
||||
"条件": {
|
||||
"变量": "变量 id",
|
||||
"比较": "eq|neq|gte|lte|gt|lt|changed",
|
||||
"值": 0
|
||||
},
|
||||
"模式": "once|every_edge",
|
||||
"action": {
|
||||
"type": "replace_tag",
|
||||
"tag": "上下文.角色态度",
|
||||
"content": "恋爱档要点或「按映射id查当前档摘要」"
|
||||
"类型": "project_mapping|write_memo|queue_generation",
|
||||
"目标": "映射 id、备忘录 id 或规则 id",
|
||||
"要求": "触发后程序应做什么"
|
||||
}
|
||||
}
|
||||
],
|
||||
"旁观汇总意图": {
|
||||
"需要": "是|否",
|
||||
"汇总什么": "例:当前好感档性格要点 + 已触发 once 门",
|
||||
"建议tag": "上下文.旁观.状态摘要",
|
||||
"材料来自": ["Data映射索引", "投影tag", "真值字段"]
|
||||
},
|
||||
"不立变量的理由": ["…"]
|
||||
},
|
||||
"自评": {
|
||||
"维度": [
|
||||
{
|
||||
"名": "承重度",
|
||||
"分数": 8,
|
||||
"说明": "真值是否只覆盖必须跨轮记住的状态"
|
||||
},
|
||||
{
|
||||
"名": "可维护",
|
||||
"分数": 8,
|
||||
"说明": "维护语句是否可解析;映射索引是否接得上实例/规则"
|
||||
},
|
||||
{
|
||||
"名": "克制度",
|
||||
"分数": 8,
|
||||
"说明": "无派生可写格膨胀;无用 chance 冒充改表"
|
||||
}
|
||||
],
|
||||
"薄弱点": "一句话"
|
||||
},
|
||||
"追问": {
|
||||
"导语": "为钉准变量与维护,还需确认:",
|
||||
"题目": [
|
||||
{
|
||||
"问": "…",
|
||||
"建议选项": ["选项A", "选项B", "其它(请写明)"],
|
||||
"示例": "可选"
|
||||
}
|
||||
]
|
||||
},
|
||||
"开放问题": []
|
||||
"维护复杂度": {
|
||||
"建议": "inline_tool|auditor_bundle",
|
||||
"依据": [
|
||||
"变量数量、交叉依赖、narrative_inference、触发规则与其它可变产物"
|
||||
],
|
||||
"可合并更新": [
|
||||
"必须原子提交的一组变量 id;无则空数组"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
硬规则:
|
||||
1. context-fragment.v1 外壳;自评承重度/可维护/克制度。
|
||||
2. Data 映射索引可指向尚未生成的实例(标待补),但键与用途必须清。
|
||||
3. 维护语句约定必填;须声明通道与示例。
|
||||
4. side_effects 可 `[]`。禁止输出完整 workers[]。
|
||||
5. summary:`变量设计 · {brief 缩略}`。
|
||||
1. 输出合法 JSON;每个真值必须有稳定 `id`、用途、类型、初始化、权限、操作、约束和更新规则。
|
||||
2. 类型与允许操作必须相容;number/integer 的边界、enum 的枚举值必须明确;不适用的约束字段省略。
|
||||
3. `narrative_inference` 必须写证据要求;正文没有该证据时不更新。
|
||||
4. 派生映射与触发规则可为空;存在时必须引用已声明变量,且派生结果不得成为第二个可写真值。
|
||||
5. `维护复杂度.建议` 只在 `inline_tool|auditor_bundle` 中选择;程序仍按 API 能力决定具体投递方式。
|
||||
6. 不输出隐藏段、正则、`maintain.v1/v2`、tool schema、Worker 提示或界面字段。
|
||||
7. 产物正文不含自评、追问或开放问题。
|
||||
8. `mount` 固定为 `["world-simulator", "auditor"]`。
|
||||
|
||||
## score
|
||||
|
||||
```score
|
||||
真值必要性:
|
||||
- 5:每个字段不保存都会造成明确跨轮错误,没有临时描写或可派生冗余。
|
||||
- 3:主体必要,但夹有一个可从其它字段或最近正文推出的状态。
|
||||
- 1:把人物感受、场景描述或大段设定全部变量化。
|
||||
|
||||
字段妥当性:
|
||||
- 5:类型、初值、操作和约束彼此一致,字段数量恰当且不重叠。
|
||||
- 3:基本可用,但有边界、枚举或初始化要求不够明确。
|
||||
- 1:类型与操作冲突,或存在余额/存款一类重复真值。
|
||||
|
||||
更新可执行性:
|
||||
- 5:每条规则都有已发生事实、判断方式、证据、操作、值规则和时机。
|
||||
- 3:更新方向明确,但证据或值范围仍需猜测。
|
||||
- 1:只说“随剧情变化”,无法生成或校验更新。
|
||||
|
||||
权限与公开性:
|
||||
- 5:写入者与公开性符合用途,隐藏真值不会因显示或用户误改而泄露、漂移。
|
||||
- 3:大体合理,但有一项写入者或公开边界含混。
|
||||
- 1:任何执行单元都能任意改,或秘密状态被默认公开。
|
||||
|
||||
映射与触发一致性:
|
||||
- 5:映射、阈值触发和原子更新都引用有效变量,且没有建立重复可写真值。
|
||||
- 3:主体能接通,但有来源引用或边沿语义不清。
|
||||
- 1:派生结果反向覆盖真值,或触发引用不存在字段。
|
||||
```
|
||||
|
||||
## checklist
|
||||
|
||||
```checklist
|
||||
- [ ] 真值有写入源与更新时机?
|
||||
- [ ] 映射索引指向规则/实例或标待补?旁观摘要键清楚?
|
||||
- [ ] 维护语句可解析且与正文组成/旁观维护对齐?
|
||||
- [ ] 未把分档长文做成可写真值?未用 chance 当改表?
|
||||
- [ ] 每个真值都通过“不保存会出错”的必要性检验?
|
||||
- [ ] 类型、初值、允许操作、约束和写入者互相一致?
|
||||
- [ ] 每条更新规则都有事实证据和可执行的值规则?
|
||||
- [ ] 派生映射未被重复建成可写真值?
|
||||
- [ ] 维护复杂度依据实际依赖,而不是只按变量数量?
|
||||
- [ ] 未写隐藏标签、正则、维护包或界面格式?
|
||||
```
|
||||
|
||||
## examples
|
||||
|
||||
```examples
|
||||
好:
|
||||
- 好感真值 + 映射索引指向 concrete batch「分档性格」+ side_effect 投影态度 + 维护语句走 variable_changes。
|
||||
- 旁观汇总意图:只挂当前档「态度要点」,不挂整表。
|
||||
|
||||
坏:
|
||||
- 每轮让模型重写「当前性格」长字符串当真值。
|
||||
- 只写「好感会变」无维护语句形状。
|
||||
- 用 run_worker chance 来改好感。
|
||||
- 单个数值真值、只有 set/delta 和上下界、无交叉依赖:建议 inline_tool;程序按 API 探测生成类型明确的小工具。
|
||||
- 多个真值需要结合正文共同判断,且阈值会触发映射或补实例:建议 auditor_bundle;维护编译工具统一收集。
|
||||
- 当前态度由好感区间映射得到:只保存好感,态度作为派生映射,不建立第二个可写“当前态度”。
|
||||
- 不合适:每轮重写一段“当前性格”长字符串,或只写“随剧情变化”而没有证据与操作。
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user