Files
writing-agent/skills/dialogue/world-simulator/modules/random-range/prompt.md
T
chenmoranzhiandCursor cf6cb68429 收紧世界模拟器能力与壳提示,对齐新的落盘合同和呈现分工。
让选题填写与游玩投影读到一致的规格口径。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-07 23:49:34 +08:00

4.3 KiB
Raw Blame History

随机范围整理

meta

name: 随机范围整理
id: random-range
artifact: 设计.随机范围整理
declaration: >
  把已定的检定和抽签收成「变量.当前」里的隐藏行,行名用「名称.随机数」;
  值是剩余数字,用掉一个就改这一行,只剩 1 个时补上。
when: |
  机制、变量或生成规则已出现必须用随机数才能裁定的点时使用。
when_not: |
  全程不靠随机推进 → 不使用。
  公式本身还没钉死 → 先实现机制、生成规则或变量设计。
  按合理度从池里选,而不是抽签 → 不列入。
boundary: |
  不新建表,不发骰面。数字是普通隐藏变量,默认玩家看不见。
  0 层玩法不依赖随机。普通楼层在第一次正式回复时由程序补齐随机行,开场不必写出具体数字。
feeds: gm

opening

本局哪些地方必须抽个数才能定?每项用哪一行保存剩余数字,以及怎么掷。

task

先扫实现机制、生成规则、变量设计、叙事与故事推进、美学,列出所有需要随机数才能裁定的点,再写入 `设计.随机范围整理`。每项是 `变量.当前` 的一行,行名写成「名称.随机数」,玩家默认不可见。值是剩余数字组成的数组,下一个可用的是第一个。

用掉第一个后,程序改写这一行,去掉那个数。改完后如果只剩 1 个,就按范围补到预备个数,不要等这一行空了。模型不自己编数字。

无随机需求则本步不排。公式还没在上游钉死时,把缺口交给 `self_score.gap`。产物正文不放评分和追问。

principles

1. 只登记上游已经成立的掷法,不新写法则。
2. 一行一项,一项只管一类用途,行名是「名称.随机数」,例如 `敏捷.随机数`。不要把「战斗」糊成一行却含命中、伤害、闪避几种掷法,拆成 `命中.随机数`、`伤害.随机数`、`闪避.随机数`。
3. 范围写成人与程序都能读的形式,如 `1~100`、`力量*5~10`,并注明单位(整数、闭区间等);不写「中等偏高」这类散文。
4. 和别的隐藏变量一样存在现有表里:能改、有版本;不对玩家默认展示。
5. 预备个数够连用即可,少了靠「只剩 1 个就补」,不要一次放很多。

probe

每轮 1~2 点。范围是否还能算、行名是否会撞、有没有漏掉已经声明的检定。

output

{
  "schema": "context-fragment.v1",
  "技能": "随机范围整理",
  "brief": "登记了哪些隐藏随机行",
  "mount": ["world-simulator"],
  "稳变": "stable",
  "正文": {
    "项": [
      {
        "行名": "敏捷.随机数",
        "用途": "敏捷检定",
        "范围": "1~100",
        "表达式": "无表达式时省略",
        "单位": "整数,闭区间",
        "依赖真值": [],
        "预备个数": 3,
        "来源": "上游短引用"
      }
    ]
  }
}

硬规则:

  1. 合法 JSON;有项则每项有行名、用途、预备个数,以及范围或表达式。
  2. 行名以 .随机数 结尾,彼此不重复。
  3. 不输出具体骰面,不另建表,不写票 id。
  4. 产物正文不含自评和追问。
  5. mount 为 ["world-simulator"]。

score

覆盖度:
- 5:该随机的点都有独立行。
- 3:漏了一项次要抽签。
- 1:明显漏项,或没有随机却硬凑。

可执行性:
- 5:行名、范围或表达式、预备个数都能直接写成隐藏变量。
- 3:大体能写,有一处范围含糊。
- 1:只有用途,程序无法出数。

克制:
- 5:就是现有表上的隐藏行,用一个改一行,只剩 1 个再补。
- 3:行名或隐藏方式略绕。
- 1:另建存储、票证或让模型自己编数。

checklist

- [ ] 每项是「名称.随机数」,玩家默认不可见?
- [ ] 范围或表达式能算出数?
- [ ] 用掉一个就改这一行,只剩 1 个时补?
- [ ] 没有新表、票 id 或具体骰面?

examples

- `敏捷.随机数` 的值是 [47, 12, 83]。用了 47,这一行改成 [12, 83]。再使用一次后只剩 [83],随即补到 3 个。
- `攻击.随机数` 按力量算出区间,仍是同一张表里的另一行。