旧产物名仍能读到,避免改名后上下文对不上。 Co-authored-by: Cursor <cursoragent@cursor.com>
10 KiB
10 KiB
拓扑图谱
meta
name: 拓扑图谱
id: topology
artifact: 设计.拓扑图谱
declaration: >
为一个独有但结构复杂的对象定义节点、连接、初始图与开场后的维护规则。
地图、关系链、升级树,以及社会阶梯、境界、价目、兑换等级这类有序标尺,都在这里;一份产物一张图。
when: |
要保存的结构是树、图或链时使用:节点之间有上下、相邻或交叉关系,拿掉连接就说不清。
树:升级路径、分支前提、从属。
图:地图、关系网,节点可多向相连。
链:社会阶梯、境界、价目、兑换等级,每一档只和相邻档比较。
一张图一份产物。不因开场后会不会再长节点而改用别的能力。
when_not: |
没有节点和连接,只是同类对象的多份记录,或一份要先审字段的合同 → 生成规则,再按需填具体实例。
只有一条字段很少的具名内容,且用户明确要留下 → 具体实例。
只有地点、势力或社会格局的叙述,没有可定义的连接 → 舞台骨架。
世界里成立的因果、触碰的代价 → 世界法则;那里只点本图的图名,不抄档表。
只需保存少量数值或枚举(当前点数、当前落在哪一档)→ 变量设计。
boundary: |
本能力定义一张图的结构真相与维护合同,不负责界面、SVG、排版或是否展示。
「正文组成」决定是否渲染以及显示入口;维护合同编译工具负责把本产物的更新要求交给运行期维护者。
本能力不设计 Worker 拓扑,不把图拆成生成规则,也不把节点扩写成人物卡或地点百科。
feeds: gm,auditor
opening
说说要保存的这张图是什么。地图、关系、升级树,或是一套有序标尺(社会阶梯、境界、价目、兑换等级)都可以。再补一句:开场后它保持固定、只记录状态,还是允许继续长出节点和连接。
task
为一个独有的结构对象设计拓扑图谱,写入 `设计.拓扑图谱#图名`。每份产物只定义一张图:先写名称与用途,再定义节点字段、连接字段和初始图,最后写开场后的动态模式与维护规则。
有序标尺写成一条链,类型用 `path`:一档一个节点,连接只连相邻档。节点写这一档是谁、能做什么,或这一档的基价与强度;连接写跨过这一档要什么、和下一档差多少。档位在开场前已由用户定死时用 `static`。人物、物品、变量只填档名,不在别处重抄整表。
动态模式只选一种:
- `static`:节点、连接和状态均固定。
- `record`:节点与连接固定,但可记录发现、备注或节点/连接状态。
- `expand`:允许按规则新增、修改或删除节点与连接。
拓扑是呈现无关的运行备忘录。只说明存什么、怎样合法修改;不生成 SVG、坐标、前端、Tab 或正文展示格式。需要从正文事实推断的变化交给统一维护副 Worker;必须在正文前完成的机械更新才标为 `pre_narrative`。
材料足够便直接成稿;真正会改变结构合同的缺口交给 `self_score.gap`。产物正文不放评分、诊断、追问或开放问题。
principles
1. 一产物一张图。不同地图、关系网、升级树或标尺分别调用本能力,不能塞进同一 `拓扑` 数组。社会阶梯和价目是两张图。
2. 用途决定字段。节点与连接只保留识别、推演和维护所需信息;字段不重叠,不把节点写成完整名片。
3. 节点 id 稳定且唯一;连接只能引用已存在节点,并明确方向、关系和必要属性。
4. 动态模式决定维护权限:`static` 无运行写入;`record` 只改允许的状态字段;`expand` 才能改变图结构。
5. 维护规则写触发事实、允许操作、执行时机、写入者和不变量。多数由正文事实引起的变化使用 `post_narrative`。
6. 图数据与显示分离。相对位置若是世界真相可作为节点/连接字段;屏幕坐标、缩放、颜色与排版不进入本产物。
7. 初始图只写已确定内容;可扩展不等于预先填满所有未知节点。
8. 给人读的键和专名用中文。材料里的英文名音译成中文。外壳的 schema、brief、mount 保持既有键。
probe
每轮 1~2 点。优先确认用途、节点/连接各需哪些字段、动态模式,以及哪些变化必须跨轮记住。展示方式留给正文组成,不在这里追问。
output
{
"schema": "context-fragment.v1",
"技能": "拓扑图谱",
"brief": "一句话说明这张图保存什么,以及开场后如何维护",
"mount": ["world-simulator", "auditor"],
"稳变": "stable",
"正文": {
"图名": "这张图的中文短名,稳定且唯一",
"名称": "这张地图 / 关系链 / 升级树的名称",
"用途": "为什么需要保存它,后续据此推演或记忆什么",
"类型": "map|relation|path|tree|network|other",
"动态模式": "static|record|expand",
"节点字段": [
{
"键": "名称",
"类型": "string|number|boolean|enum|set",
"填写要求": "此字段保存什么、何时必须填写",
"可更新": false
}
],
"连接字段": [
{
"键": "关系",
"类型": "string|number|boolean|enum|set",
"填写要求": "此字段保存什么、何时必须填写",
"可更新": false
}
],
"初始图": {
"节点": [
{
"id": "稳定节点 id",
"字段": {
"名称": "节点短名"
}
}
],
"连接": [
{
"id": "稳定连接 id",
"from": "起点 id",
"to": "终点 id",
"directed": true,
"字段": {
"关系": "连接含义"
}
}
]
},
"维护规则": {
"允许操作": ["update_node_state"],
"默认时机": "post_narrative",
"写入者": ["auditor", "user"],
"触发与更新": [
{
"当": "正文中出现什么已成立事实",
"做": "对哪个目标执行什么操作",
"要求": "操作需要满足的条件"
}
],
"不变量": [
"节点 id 不复用;连接端点必须存在"
],
"用户可编辑": [
"允许用户直接修正的字段;无则空数组"
]
},
"维护摘要": {
"给统一维护合同": [
"需要投影给维护副 Worker 的短规则"
],
"当前状态引用": "运行.拓扑#图名"
}
}
}
硬规则:
- 输出合法 JSON;一份产物只含一张图,并提供稳定中文
图名。 节点字段 / 连接字段必须说明类型、填写要求和是否可更新;字段应足够且不重叠。- 初始连接引用的节点必须存在;节点与连接 id 各自唯一。
static的允许操作与触发更新必须为空;record不得允许新增或删除结构;只有expand可改变节点与连接。- 维护规则必须写默认时机、写入者和不变量;不得把正文生成者要求为在可见正文中输出隐藏维护块。
- 不输出 SVG、屏幕坐标、CSS、前端或展示入口;这些属于正文组成。
- 产物正文不含自评、追问、开放问题或多张图。
mount固定为["world-simulator", "auditor"]。
score
对象适配:
- 5:确实是一张独有的关系结构或有序标尺,普通实例或扁平变量不足以表达。
- 3:存在真实连接,但部分内容可移交舞台、实例或变量。
- 1:只是互不相连的清单、名片或背景散文。
字段合同:
- 5:节点与连接字段由用途推出,数量恰当、互不重叠,更新权限明确。
- 3:主体可用,但有字段含义含混、缺少必要状态或略有重复。
- 1:只有通用名称/备注,或堆入整份人物卡与地点百科。
初始图有效性:
- 5:id 稳定唯一,连接均有有效端点,方向与关系足以支持后续推演。
- 3:结构基本成立,但有一处连接、方向或字段需要猜测。
- 1:存在断边、重复 id,或无法判断节点怎样相连。
维护可执行性:
- 5:动态模式、触发事实、允许操作、时机、写入者和不变量彼此一致。
- 3:更新方向正确,但触发条件或操作边界仍不够明确。
- 1:只说“后续更新”,维护者无法据此生成合法 patch。
长期一致性:
- 5:返回旧节点、追加新结构和并发修正时都有明确边界,不会重造既有事实。
- 3:普通更新稳定,但扩展或冲突处理仍有模糊处。
- 1:每轮都可能重写整张图,无法保证跨轮一致。
checklist
- [ ] 这一产物只定义一张确有拓扑必要性的图?
- [ ] 节点与连接字段足够、不重叠,并声明可否更新?
- [ ] 初始图无重复 id、断边和含糊方向?
- [ ] 动态模式与允许操作一致?
- [ ] 维护触发、时机、写入者和不变量足以编译进统一维护合同?
- [ ] 未提前设计渲染、界面或可见正文维护块?
examples
- 固定空间:节点与通路固定;若只需记录“已发现/封锁”,使用 record,不因探索重新生成建筑结构。
- 关系网络:人物节点固定或可扩展,关系边可记录类型、强度与公开状态;关系变化必须由正文中的已成立事实触发。
- 升级树:阶段和前置连接固定时用 static;若允许游玩中发现新分支才用 expand,并写清新增分支必须满足的前置关系。
- 社会阶梯:节点 t0 到 t5。t0 写「冠号大宗师里的顶尖,不动用核武器无法威胁」;t5 写「普通人,暗面对他们是都市传说」。连接只连相邻档,字段写跨档要什么(个人武力、开宗立派、表世界权位)。`static`。实例只填「t2」。
- 价目或兑换等级:一档一个节点,字段写强度范围和基价;连接写相邻档的价差。物品规则和变量只填档名与当前点数。
- 不合适:把若干互不相连的人物简介装进节点;应改用生成规则,需要留下的单条再写具体实例。
- 不合适:在本产物中指定 SVG 坐标、颜色和 Tab;展示应由正文组成决定。