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