旧产物名仍能读到,避免改名后上下文对不上。 Co-authored-by: Cursor <cursoragent@cursor.com>
10 KiB
10 KiB
生成规则
meta
name: 生成规则
id: generation-rules
artifact: 设计.生成规则
declaration: >
为一类要统一生成的对象写填写合同:名称、用途、字段、池或提示、填写工作流。不填最终实例。每个产物一条规则。
when: |
要落两份或以上同类对象时使用。
只落一份,但字段多、结构重要,或需要先审字段和填写工作流时也使用。
不因开场后是否继续按同一合同生成而改道。
when_not: |
只有一条、字段很少、也不承载玩法的具名内容 → 不建规则,通常也不落具体实例。
一张有节点和连接的结构 → 拓扑图谱。
跨轮真值 → 变量设计。舞台格局与硬法则 → 舞台骨架 / 世界法则;本步只短引用。
boundary: |
本步交生成合同,供具体实例与游玩期按同一字段填写。
同一条约束只放一个槽:填充要求、提示、地板、分级表现不换壳复述。
地板写最低要让人看见或碰到什么,不写可照抄的场面。价目、境界全文、台上格局已在别处时,本步引用名称,不重抄表。
feeds: gm,auditor
opening
先说这套规则生成什么、用在什么场合。只有一条字段很少的具名内容,通常不必建规则。
task
为单一对象族写一份生成合同,写入 `设计.生成规则#中文规则名`。先写名称与用途,再按用途推出字段:每项用 `填充要求` 写清填什么、为何需要。取值默认用提示约束;能数完且必须全员一致的封闭集合才建池。描写类字段另给一句 `地板`(最低可感知到什么)。标签本身看不懂的分级才写 `分级表现`。最后写填写工作流,只保留真正改变填写顺序的阶段。
同一事实只写一次。`提示` 只在填充要求没写清范围时补范围;`地板` 不重复填充要求,也不写示范句。舞台骨架、世界法则或拓扑图谱里已有的格局、法则、阶梯和价目,在用途或相关填充要求里点名引用。
每个产物一条规则。材料够就成稿。会改合同的缺口(生命周期、必填字段、单条还是同批)进 `self_score.gap`。正文只含合同 JSON,不含评分、诊断、追问或最终记录。
principles
1. 用途决定字段。每个字段都要能回答「这个用途是否必要」。女 NPC 不写性别;药水写效果参数;要接战斗的写等级、攻击骰等接口。同义字段只留一个。
2. 取值三类:自由;池选取(填写方按合理度选);提示约束。默认提示约束。姓名、绰号、能力概念、外貌、气质不建池,也不在提示里列一串冒充穷举。怕生成雷同且会反复生成时,`提示` 写 2~6 个「方向名:一句概括」,不挂作品名、不堆例句。
3. 描写类字段的 `地板` 是最低栏:写到能看见、听见或碰到什么,或对手能抓住什么空隙。一句话。词条、档位、数字、骰子不写地板。地板不是小场景,不写「下一句怎么说」「手怎么放」。
4. 标签看不懂、且还没有拓扑标尺的分级,才写 `分级表现`:每档一句概括,加一句能与相邻档分开的表象。实例只填档位短值。社会阶梯、境界、价目、兑换等级已在拓扑图谱时,填充要求点图名,不另造一套数,也不把全表抄进 `分级表现`。
5. 几面拼成一格时,配方写在该字段的 `填充要求`:哪几面、每面写什么。字段值仍是一段扁平文字。
6. 工作流按填写顺序写短:先定会约束后面的项,再填其余。用不到的阶段不写。会反复生成时,自检含去重(不撞名、不撞核心特征)。`反模式` 写错在哪;需要时加半句反例,不写一场戏。
7. 生命周期三选一:`仅游玩期`、`只预生成`、`预生成并游玩期`。`数量` 是总共几条;`一次生成` 看记录是否必须互指、对立或同场。有则同批,关系只写谁对谁;彼此独立则单条。总共 5 个且互不改写,仍是单条。
8. 共享的台上格局与既成法则已有则短引用;没有则只写填写时必须守的最短条款,缺口进 `self_score.gap`。给人读的键和专名用中文;英文专名音译。外壳的 schema、brief、mount 保持既有键。
output
{
"schema": "context-fragment.v1",
"技能": "生成规则",
"brief": "一句话:对象 + 用途 + 生命周期",
"mount": ["world-simulator", "auditor"],
"稳变": "stable",
"正文": {
"名称": "人话规则名",
"用途": "生成什么、服务哪类反馈;已有舞台或机制则点名",
"规则名": "中文短名,与名称对应",
"生命周期": "仅游玩期|只预生成|预生成并游玩期",
"数量": {
"模式": "固定|区间|看情况",
"值": 1,
"最小": 1,
"最大": 1,
"决定规则": "看情况时说明如何决定条数"
},
"一次生成": {
"模式": "单条|同批",
"关系": "同批:谁对谁必须一起钉死;单条:彼此独立"
},
"字段": [
{
"名": "顶层字段名",
"填充要求": "填什么、为何需要;几面拼一格时写配方",
"取值方式": "自由|池选取|提示约束",
"绑定池": "仅池选取时写池名称",
"提示": "仅提示约束且填充要求未写清范围时:一句范围,或 2~6 个「方向名:一句概括」",
"地板": "仅描写类:一句最低可感知标准"
}
],
"池": [
{
"名称": "与字段绑定的人话名",
"说明": "何时选取、按什么合理度",
"条目": ["封闭可选项"]
}
],
"分级表现": [
{
"字段": "标签看不懂的分级字段名;无则省略整个键",
"档位": [
{
"值": "与实例所填一致的短值",
"概括": "一句:这档的量级",
"表象": "一句:与相邻档可分开的可见差别"
}
]
}
],
"填写工作流": {
"工作流": {
"阶段1": "先定什么"
},
"依赖关系": ["字段A → 字段B:约束"],
"自检清单": ["填完必须能核对的一点"],
"反模式": [
{ "名": "短名", "说明": "错在哪", "反例": "可选半句" }
]
}
}
}
硬规则:
- 合法 JSON;每个产物一条规则,不写
rules数组。mount固定["world-simulator", "auditor"]。 - 字段由用途推出;重叠合并;可省略的键不写。池选取必须对应到某个池;无池则
池为[]。姓名、绰号、能力概念、外貌、气质不绑池。 - 同一约束只出现在一个槽。
提示与填充要求同义则省略提示。地板与填充要求同义、或写成场面/台词,则改成一句可感知标准或省略。 填写工作流必含工作流;依赖、自检、反模式无则[]。阶段按实际顺序命名,不凑满四段。- 同批时关系必填且本批至少 2 条;单条一次只交 1 条。字段值是扁平文字,配方写在
填充要求。 - 没有难懂分级则省略
分级表现。不在正文写最终记录、价目全表、百科、评分或追问。只预生成为中间层;另两类为最终层。字段名与专名用中文。
score
字段妥当:
- 5:字段由用途推出,不多不少;描写地板是一句可感知标准;难懂分级能与邻档分开。
- 3:大体可用,但有一处冗余、缺失,或地板/提示在复读填充要求。
- 1:关键接口缺失,或地板、提示、反例写成场面。
池与提示:
- 5:封闭集合用池,其余用提示或自由;提示是范围或方向名,不堆例句。
- 3:个别字段误用池,或提示含糊。
- 1:为姓名、气质、能力建词池,或提示变成例句库。
填写工作流:
- 5:阶段只含会改变顺序的步骤,自检抓得住,反复生成时含去重。
- 3:有阶段但依赖不清,或清单偏长。
- 1:无工作流,或与字段脱节。
checklist
- [ ] 名称、用途、生命周期已写清,且只含一条规则?
- [ ] 字段由用途推出,无同义字段?
- [ ] 填充要求、提示、地板没有同一句写两遍?
- [ ] 地板是一句可感知标准,不是场面或台词?
- [ ] 池只绑封闭集合;难懂分级才有分级表现,且未另造一套已有标尺?
- [ ] 工作流阶段没有凑数;同批/单条按关系而非总数?
- [ ] 格局与法则是短引用,没有重抄舞台或机制?
- [ ] 正文无最终实例、评分或追问?
examples
好:
- 武功典籍:字段为名字、效果、阶层。阶层走封闭池,分级表现每档一句概括加一句与邻档不同的可见差别。名字与效果用提示,不建池。
- 外貌:填充要求写配方「轮廓一句 + 质感一句 + 一个旁人会记住的细节」。地板一句:「能认出年龄感、一套衣服、一处身体曲线。」不写被征服时的神态。
- 实权:填充要求写「相对主角有没有二十四小时内生效的赏罚;没有则写无实权落差」。提示与地板不把这句话再写一遍。
- 已有 10 阶价目拓扑:填充要求写「强度取该图的阶名,价格按该档已写基价」。不在本规则重列全表。
- 互为仇敌的两名开局 NPC:一次生成同批,关系写谁夺了谁的什么。彼此无关的五个路人:数量 5,一次生成单条。
缺料时:
- 生命周期或同批关系定不下来 → `self_score.gap`。
- 台上格局还没有 → 填充要求只写必须守的最短条款,并 gap 指明缺舞台或机制。
偏了就改回:
- 填充要求、提示、地板三份都在讲「二十四小时内失去什么」→ 留在填充要求,另两槽删掉或只补真正的缺口。
- 地板写成「她会哭着改口、手按在锁骨上」→ 改成「写出哪份文件作废」。
- 分级表象写成一段调教 → 改成一句与邻档不同的可见差别。
- 反例写成完整小剧场 → 留半句错法,或只留说明。