SuperAPI AI 工具集

worldbuilding

写作与研究

查看项目

更新于 10-15 14:26

技能介绍

Worldbuilding 是一个面向故事创作项目的世界观构建技能,用于创建和管理故事中的世界元素。地点、系统(魔法、政治、科技等)、派系和器物以带 YAML frontmatter 的 Markdown 文件形式存放在 worldbuilding/ 目录中,世界自造词条则存放在 glossary/terms/ 目录。所有元素都会与角色及其他故事元素交叉引用。

使用前提:必须已存在一个故事项目(通过 story-init 技能创建),可通过检查项目根目录下的 story.md 来确认。

创建地点:先读取 story.md 获取体裁、时代与基调背景,读取 worldbuilding/_index.md 了解已有地点与系统,然后询问地点名称与类型(城市、要塞、荒野等),通过对话构建地点,涵盖物理描述与氛围、与故事相关的历史、居民文化与习俗、角色会接触到的显著特征、故事时间线上的当前状态、通往其他地点的路线(以小时计的旅行时间与方式)、以及名称的发音(若为自造或易误读)。在确定自造名称前,运行 story names '{Candidate}' 检查冲突与相似名称。CLI 可用时用 story add location '{Location Name}' --type '{type}' 创建(可按已知情况添加 --region、--population、--controlled-by、--character),它会写入 worldbuilding/locations/{name-kebab}.md 并在 worldbuilding/_index.md 中列出,然后按 references/location-template.md 填充正文。无 CLI 时,直接按模板写入文件。worldbuilding/_index.md 中的地点表交由 story reindex . 维护,绝不手工添加行。若列出了显著角色,需验证这些角色文件存在,并把本地点的 kebab-case 标识符加入各角色文件的 locations frontmatter 列表。CLI 可用时运行 story reindex .、story wordcount . --write 和 story check .。

地图、路线与旅行:地点之间的旅行以路线形式记录在地点文件中,而非散文笔记,以便 CLI 检查。to 是地点 id,story links . 会检查其存在。除非另一地点声明了自己的回程路线,否则路线是双向的。story continuity . 会在角色出现在两个有日期的场景、且两地由路线相连、而其间故事时间短于路线小时数时报错。story diagram locations 会以 Mermaid map-graph 打印路线网络,边标注小时数,可用 --out dist/locations.mmd 保存,用于发现不可达地点与不合理的捷径。使用 references/economy-logistics.md 中的旅行速度表设定合理小时数,完整流程见 references/maps-and-routes.md。

创建系统:读取 story.md 获取体裁与主题背景,读取 worldbuilding/_index.md 了解已有系统,确定系统类型并查阅 references/world-element-types.md 获取相关提示;日历、命名语言、经济与魔法代价还需使用 references/calendars.md、references/naming-languages.md 和 references/economy-logistics.md。通过对话构建系统,回答该类型的关键问题。CLI 可用时用 story add system '{System Name}' --type '{type}' --prevalence '{prevalence}' 创建,写入 worldbuilding/systems/{name-kebab}.md 并在索引中列出,然后按 references/system-template.md 填充正文。无 CLI 时按模板写入。索引表交由 story reindex . 维护。与系统交互的角色需交叉引用。CLI 可用时运行 story reindex .、story wordcount . --write 和 story check .。

创建派系:CLI 可用时用 story add faction '{Faction Name}' --type '{family|guild|government|military|religion|company|community|criminal|other}';否则创建 worldbuilding/factions/{name-kebab}.md,frontmatter 字段包括 name、type、status、members、locations 和 tags。内容涵盖目的与意识形态、权力基础、资源与领地、重要成员、冲突与压力点。保存后索引表交由 story reindex . 维护;若列出成员需验证角色文件存在;CLI 可用时运行相应维护命令。

创建器物:CLI 可用时用 story add artifact '{Artifact Name}' --type '{object|weapon|document|technology|relic|symbol|resource|other}';否则创建 worldbuilding/artifacts/{name-kebab}.md,frontmatter 字段包括 name、type、status、owner、location 和 tags。内容涵盖描述与辨识细节、功能、限制与代价、历史与前任所有者、当前所有者/位置状态。保存后索引表交由 story reindex . 维护;若列出所有者或地点需验证文件存在并反向交叉引用;CLI 可用时运行相应维护命令。

添加术语表词条:把正文必须始终以相同方式拼写和使用的自造词、头衔、等级或概念记录为 glossary/terms/ 下的术语。先读取 glossary/_index.md 了解已有术语,再运行 story names '{Term}' 检查与其他名称或术语的冲突。CLI 可用时用 story add term '{Term}' --category '{person|place|faction|artifact|concept|term|other}',每个可接受变体用一次 --alias '{Variant}';它会写入 glossary/terms/{term-kebab}.md 并在 glossary/_index.md 中列出。否则创建带 term、category 和 aliases frontmatter 字段的文件,索引表交由 story reindex . 维护。填写 ## Definition(在故事中的含义)与 ## Usage Notes(拼写、大小写、谁使用、绝不表示什么)。术语为自造或易误读时添加发音。当大小写或连字符属于内部风格决定时,也记录到 style-sheet.md(见 voice-style 技能)。面向译者的术语表属于 adaptation 技能,它会在这些术语文件中添加 ## Translations 部分。

更新世界元素:读取现有文件,进行所需修改。若地点或派系在故事中途发生变化(城市陷落、公会解散),应添加 progression 而非编辑初始值。若交叉引用变化,更新被链接文件。用 story rename 重命名元素;类型或状态只在其自身文件中修改,worldbuilding/_index.md 的表会在下次 story reindex . 时更新,绝不编辑其行。CLI 可用时运行相应维护命令。

故事中的变化:地点与派系文件描述故事开场时的世界。后续变化记录为 progression,以免起草早期章节时看到后期内容。from 是新值成立的第一个章节,可以是尚无文件的计划章节 chapter-NN;field 是 kebab-case 单值字段,可为已有(status、controlled-by、region)或新增(ruler、population-note),列表字段(notable-characters、routes、members、locations、tags)不能这样变化;value 是单个值,派系的 type 与 status 必须保持在允许值内。条目按故事顺序排列,描述某章节中的地点或派系前,先读取截至该章节的 progressions。器物与系统不接受 progressions;器物的变化用 object-state 与场景 state-changes 跟踪(见 revision-continuity 技能)。添加或编辑 progressions 后运行 story reindex .、story wordcount . --write 和 story check .。

交叉引用:地点通过 frontmatter 的 notable-characters 引用角色;角色通过 frontmatter 的 locations 引用地点;派系引用角色成员与地点;器物引用所有者角色或派系及当前位置;系统通过角色 tags 引用实践者;地点路线按 id 引用其他地点。角色、地点、系统、派系、器物与术语表中的自造名称可带发音,story build --format narration 会把它们汇总为面向有声书朗读者的发音指南。地点在章节中使用时,该章节 frontmatter 的 locations 字段会反向链接。随着元素添加,保持 worldbuilding/_index.md 的世界概览部分为最新。

CLI 维护:CLI 可用时使用 Story CLI。若未安装 story,使用捆绑的 fallback node ../story-maintenance/scripts/story.js 并传入相同参数。仅当用户指明 Story Skills 仓库检出目录或你正在其中工作时,才使用 node <checkout>/bin/story.js。脚本应写为绝对路径(相对于本技能文件夹解析 fallback),并从你会运行 story 的文件夹运行,以保持 . 等相对路径的含义。使用 Node,而非 Bun 或包脚本:Bun 会加载该文件夹的 bunfig.toml(可能执行代码)和 .env,而包脚本会从检出根目录运行。若无 CLI 可用,则手动执行注册表、反向链接与字数检查。

参考文件:references/location-template.md(地点文件模板)、references/system-template.md(系统文件模板)、references/faction-template.md(派系文件模板)、references/artifact-template.md(器物/物件文件模板)、references/world-element-types.md(各系统类型的详细提示:魔法、政治、科技、宗教、经济、军事、社会)、references/maps-and-routes.md(记录路线、story diagram locations 地图图与连续性旅行检查)、references/calendars.md(向 story.md 添加自定义日历、在其中标注场景日期、把季节与月亮记录为系统文件)、references/naming-languages.md(音系草图、各文化命名规则、发音与 story names 冲突检查)、references/economy-logistics.md(价格与工资、供应链、魔法与科技代价、按方式的旅行速度表)。

共享约定:每个故事技能都遵循 ../story-maintenance/references/conventions.md 中的共享约定(相对于本技能文件夹解析)。创建、重命名或链接故事文件前请先阅读。若该文件因安装本技能时未包含 story-maintenance 而缺失,要点为:kebab-case id 与文件名;每个故事项目文件都有 YAML frontmatter;_index.md 注册表由 story reindex 重建(绝不手工编辑);实体之间双向链接;characters 表示页面上出现的人,mentions 表示仅被提及的人;死亡用 status: deceased 加 died-in: chapter-{NN};不使用项目本地生成器或构建脚本(只运行已安装或捆绑的 Story CLI)。