用途:这是 Fondale 游戏管线的第一步,用于确定游戏里存在什么、哪些内容为真,并把决定写入 docs/game/story.md,其中的命名将作为游戏工程后续声明的注册键,避免之后改名。它不读取上游文档;当 docs/game/story.md 已存在时,就地改写。路径相对游戏自身仓库,工作目录即仓库根,缺失 docs/game/ 时创建。
主要能力与工作流:先盘点已有文档,并读取已安装包中的词汇表 node_modules/@asterixcapri/fondale/docs/public/vocabulary.md,以便命名与引擎一致;若包未安装,则仅依据故事继续并说明。随后调用 $grilling 采访作者,覆盖前提、情境(开场时辰、谁醒着及各自为何醒着)、地点及其连通关系、可遇角色与玩家扮演者、可拾取物件、真相(Narrative Fact)与隐瞒说法(Claim)、以及范围(约十几个地点、十个角色、二十个物件、一到两小时游玩)。最后为每个地点、角色、物件、Narrative Fact 和 Claim 取注册键:全文唯一、lowerCamelCase 合法 TypeScript 标识符、在故事变化下保持稳定、表示事物本身而非玩家看到的标签;命题类用命题式命名。
输出格式:docs/game/story.md 按固定结构写 Premise、The situation、Setting and tone、Places、Characters、Objects、Narrative Facts、Claims 各节及表格;连通关系在两端都列出,单向通道在离开处标注 otherPlace (one way);没有条目的节写 none。完成后报告各类计数、作者暂缓项、以及由你而非作者选定的名称,并提示下一条命令 /define-puzzles。