新建作品改为直接进入对话落盘,按本局创作方案写能力,并把楼层呈现和零层卡分开。

输入栏同时可以按分组切换模型。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-09-30 12:00:46 +08:00
co-authored by Cursor
parent 39fe2732fb
commit c2c9203fb0
87 changed files with 8413 additions and 3180 deletions
@@ -1,10 +1,5 @@
# 随机范围整理
> 技能文档。程序只切割下方 **fence 块**;`##` 标题仅供人读。
> 产物外壳:`docs/context-fragment-design.md`。
> 本步把上游已定的检定/对抗/掷骰需求,收成一份**程序可插入的随机值范围表**;不发明新裁定法则。
> 游玩期:程序按本表每轮往消息里塞备用随机数(前端折叠隐藏、用户看不见,发给 AI 时仍在上下文);主世界层直接用表中本次数,不再单独「机遇裁定」槽。
## meta
```meta
@@ -12,67 +7,49 @@ name: 随机范围整理
id: random-range
artifact: 设计.随机范围整理
declaration: >
上游已有检定/对抗/掷骰需求时:汇总全部要用的随机项与取值范围(含表达式),供程序每轮插入备用随机数;排在正文组成之前
把已定的检定和抽签收成「变量.当前」里的隐藏行,行名用「名称.随机数」;
值是剩余数字,用掉一个就改这一行,只剩 1 个时补上。
when: |
机制/生成规则/变量/叙事等上游已出现需要随机数的内容(对抗、检定、抽签、伤害区间等),且尚未收成一份范围表。
排在「正文组成」之前(通常紧挨其前;回复呈现可并行或略前)。
机制、变量或生成规则已出现必须用随机数才能裁定的点时使用。
when_not: |
全程不靠随机数推进 → 不排。
还在定「怎么裁定 / 公式本身」→ 先「实现机制」「生成规则」或「变量设计与更新规则」;本步只汇总已定需求。
只谈前端怎么藏、选壳美化 → 「正文组成」。
只谈每轮可见区域与字数 → 「回复呈现」。
全程不靠随机推进 → 不使用。
公式本身还没钉死 → 先实现机制、生成规则或变量设计。
按合理度从池里选,而不是抽签 → 不列入。
boundary: |
本技能:一份清单——每项随机用途、范围或表达式(如力量*5~*10、敏捷检定 1~100)、本轮建议备用条数。
不写新裁定法则、不写骰子剧情;法则来自上游,此处只整理成程序可读范围。
游玩拓扑:不再开「机遇裁定」槽;真随机靠本表 + 程序插入上下文。
正文组成:负责把隐藏备用区接到壳/消息里——本步只交「要插什么数」。
feeds: gm,narrator
不新建表,不发骰面。数字是普通隐藏变量,默认玩家看不见。
0 层玩法不依赖随机。普通楼层在第一次正式回复时由程序补齐随机行,开场不必写出具体数字。
feeds: gm
```
## opening
```opening
把本局所有要用的随机数收成一张表(想到什么写什么):
1. 上游里哪些地方要掷 / 检定 / 抽区间?(对抗、伤害、事件抽签……)
2. 每一项的取值范围或表达式?(例:敏捷检定 1~100;攻击伤害=力量×5~×10)
3. 每轮消息大概要预先塞几条备用?(够用即可,不要灌爆)
本局哪些地方必须抽个数才能定?每项用哪一行保存剩余数字,以及怎么掷。
```
## task
```task
你正在执行「随机范围整理」。产物必须是 **context-fragment.v1** JSON,写入「设计.随机范围整理」。
写入 `设计.随机范围整理`。每项是 `变量.当前` 的一行,行名写成「名称.随机数」,玩家默认不可见。值是剩余数字组成的数组,下一个可用的是第一个。
本步只做一件事:把上游已定、游玩时会用到的随机需求,整理成程序可插入的范围表。
禁止重议「要不要检定」「公式对不对」——缺则追问上游或写进开放问题;本步不发明新法则。
用掉第一个后,程序改写这一行,去掉那个数。改完后如果只剩 1 个,就按范围补到预备个数,不要等这一行空了。模型不自己编数字。
执行顺序:
1. 扫机制 / 生成规则 / 变量 / 叙事 / 美学:列出所有「需要随机数才能裁定」的点。
2. 每项写清:用途短名、范围或表达式(相对变量/表字段时写清引用)、单位(整数 d100 / 闭区间等)。
3. 钉本轮建议备用条数(按项或全局);够本轮最坏情况即可。
4. 无随机需求则本步不应被排;若误进:正文写空清单并说明「无需随机」。
5. 自评 + 追问;输出 JSON。
summary:`随机范围整理 · {项数或主要用途}`。
无随机需求则本步不排。公式还没在上游钉死时,把缺口交给 `self_score.gap`。产物正文不放评分和追问。
```
## principles
```principles
1. 只汇总,不定新法。范围与表达式必须能追溯到上游已验收产物。
2. 表达式写给人与程序都能读:`力量*5~*10`、`1~100`、`池权重抽 1`——忌散文。
3. 一项一类用途;不要把「战斗」糊成一条却含三种掷法。
4. 备用条数服务「本轮上下文预插入」;宁少可补,勿一次塞上百。
5. 不输出机遇裁定槽、不写 chance tool 调用说明。
1. 只登记上游已经成立的掷法,不新写法则。
2. 一行一项,行名是「名称.随机数」,例如 `敏捷.随机数`。
3. 和别的隐藏变量一样存在现有表里:能改、有版本;不对玩家默认展示。
4. 预备个数够连用即可,少了靠「只剩 1 个就补」,不要一次放很多。
```
## probe
```probe
每轮 1~2 点:某项范围是否仍是散文;表达式引用的变量/表是否未在上游出现;有无漏掉已声明的检定。
不追问:壳怎么藏、CSS、文风、要不要主世界层。
全程明显无随机:确认不排即可,不必硬凑表。
每轮 1~2 点。范围是否还能算、行名是否会撞、有没有漏掉已经声明的检定。
```
## output
@@ -81,58 +58,63 @@ summary:`随机范围整理 · {项数或主要用途}`。
{
"schema": "context-fragment.v1",
"技能": "随机范围整理",
"brief": "一句话:收了哪些随机项",
"mount": ["world-simulator", "narrator"],
"brief": "登记了哪些隐藏随机行",
"mount": ["world-simulator"],
"稳变": "stable",
"正文": {
"依据": ["上游机制/生成规则/变量/叙事中与随机相关的要点"],
"插入意图": "程序按本表每轮往消息隐藏区插入备用随机数;裁决时只用上下文已有数,不另开机遇槽",
"项": [
{
"id": "agility-check",
"行名": "敏捷.随机数",
"用途": "敏捷检定",
"范围": "1~100",
"表达式": null,
"来源": "实现机制·… / 变量·…",
"每轮备用条数": 3
},
{
"id": "attack-damage",
"用途": "攻击伤害",
"范围": null,
"表达式": "力量*5~*10",
"来源": "变量设计·力量 / 机制·对抗",
"每轮备用条数": 2
"表达式": "无表达式时省略",
"依赖真值": [],
"预备个数": 3,
"来源": "上游短引用"
}
],
"全局备用上限": "可选;防止灌爆上下文的软上限"
},
"自评": {
"维度": [
{ "名": "覆盖", "分数": 8, "说明": "上游随机点是否收齐" },
{ "名": "可执行", "分数": 8, "说明": "范围/表达式是否可直接插数" }
],
"薄弱点": ""
},
"追问": { "导语": "", "题目": [] },
"开放问题": []
]
}
}
```
硬规则:合法 JSON;`项` 可 `[]`(仅当误排且确认无随机);有项则每项须有用途 +(范围或表达式至少一者);禁止 order;summary 见 task。
硬规则:
1. 合法 JSON;有项则每项有行名、用途、预备个数,以及范围或表达式。
2. 行名以 `.随机数` 结尾,彼此不重复。
3. 不输出具体骰面,不另建表,不写票 id。
4. 产物正文不含自评和追问。
5. `mount` 为 `["world-simulator"]`。
## score
```score
覆盖度:
- 5:该随机的点都有独立行。
- 3:漏了一项次要抽签。
- 1:明显漏项,或没有随机却硬凑。
可执行性:
- 5:行名、范围或表达式、预备个数都能直接写成隐藏变量。
- 3:大体能写,有一处范围含糊。
- 1:只有用途,程序无法出数。
克制:
- 5:就是现有表上的隐藏行,用一个改一行,只剩 1 个再补。
- 3:行名或隐藏方式略绕。
- 1:另建存储、票证或让模型自己编数。
```
## checklist
```checklist
- [ ] 每项都能对上上游,没有本步新发明的裁定?
- [ ] 范围/表达式短且可插数?
- [ ] 未要求机遇裁定槽或 chance tool?
- [ ] 排在正文组成之前的意图是否写进 brief/插入意图?
- [ ] 每项是「名称.随机数」,玩家默认不可见?
- [ ] 范围或表达式能算出数?
- [ ] 用掉一个就改这一行,只剩 1 个时补?
- [ ] 没有新表、票 id 或具体骰面?
```
## examples
```examples
好:两项——敏捷 1~100(备用 3);攻击伤害 力量*5~*10(备用 2);插入意图写清隐藏备用区。
坏:在本步新写一套战斗规则;或只写「战斗要掷骰」无范围;或指引去开 play_slots.chance。
- `敏捷.随机数` 的值是 [47, 12, 83]。用了 47,这一行改成 [12, 83]。再使用一次后只剩 [83],随即补到 3 个。
- `攻击.随机数` 按力量算出区间,仍是同一张表里的另一行。
```