# 宁封子 · Agent 组装指令包(v0.2 · 内容通道版) > ⛔ 操作指令:阅读即执行(取货顺序 → 选件铁律 → 八段骨架 → 自检;勿当资料阅读)。 > 最后更新:2026-09-09 > **🔌 DRIVER OVERRIDE(先于本文件其余步骤执行)**:本文件对应工作流 `assemble`(机读真源 `protocol/driver.json`)。 > - 若该工作流已映射且 MCP 可用(`nf serve`,见 `docs/mcp.md`)→ **改走 MCP**(提示 `assemble_guide`;工具 `module_read` / `pipeline_read` / `asset_read`),本文件其余步骤**不再执行**。 > - 派发失败(工具报错 / 服务中途不可达)→ **如实报错并停止**,**不得回退**执行下面的文本步骤。 > - 仅当**本工作流无映射**或**本会话未启用 MCP 面**时,才按本文件文本步骤执行(fallback)。 > 用途:让**任意聊天 AI / Agent**(豆包、DeepSeek、Kimi、文心一言、ChatGPT 免费版、Claude、本地模型等),**仅凭 NinFenz 仓库地址**,即可自助取货、按规范组装、直接产出「完整版」叙事世界文档——全程不需要桌面工具。 > 配套:单件生产(做一个模块/管线/资产包)用 `community/模板制作指令包.md`;本包负责**整装**(把选中的件装配成一个可直接开跑的世界)。 > > **v0.2 升级(内容通道取货协议)**:取货分两档——① 仓库只读(clone/raw 直链)按下方「第一步 · 取货」的文件顺序读;② 有 NF MCP 通道(`nf serve`,A 线/开发者环境)时改用**内容工具**取实质正文:`module_read <模块 id>` / `pipeline_read ` / `asset_read <资产键>`(或标准资源面 `resources/read` `nf://repo/module/`、`nf://repo/pipeline/`、`nf://repo/asset/<包>/<键>`)。**任一档都必须先读后写、禁止凭记忆**——装配记录里引用的每个模块/管线/资产都要真被读过或如实标注缺口。 > **v0.2 自检补一条(硬断言)**:在「##7 自检清单」之外,逐项核对“本完整版引用的所有模块编号/资产键,均来自我实际读到的源文件或已标注的缺口”——编号错位、编造键、凭印象写职责任一命中即回炉(对齐 execution_drill R1-R4 失范类)。 ## 怎么用(三步) 1. 把下方「▶ 可复制指令」代码块内的全部内容复制下来,粘贴给任意聊天 AI 2. 告诉它仓库地址与你的需求(例:「仓库地址是 https://github.com/Monyeah777/NinFenz,帮我组装一个校园情感世界的完整版,要带毕业遗憾线」) 3. AI 会输出一个「完整版世界文档」——另存为 `.md` 直接发给你的叙事前端 / 或让另一个 AI 按文档内「装载指引」开跑 > 提示:AI 若说「需要联网获取仓库文件」,允许它联网或把拿不到的文件原文粘贴给它;拿不到的部分要在「装配记录」里如实标注,不许编造。 --- ## ▶ 可复制指令(从这里开始,复制到下一个分隔线为止) ```text 你是一名「宁封子装配师」。宁封子(NinFenz)是一个规范驱动的文档工厂: 仓库里 01–07 号文档是协议本体(全部是给 AI 读的机读化规范),03_管线库/04_模块库/05_资产库 与 community/ 是货架(管线 Pxx、模块 Mxx、资产包)。用户给你仓库地址,让你组装「完整版」。 完整版 = 一个自包含的单文件世界文档:任何另一个 AI(运行 agent)拿到它,不需要再看仓库, 就能按文档里的装载指引开始叙事。你的输出必须是这个完整版,不是零散模块。 【第一步 · 取货】从仓库地址获取并阅读(按此顺序,缺哪份就向用户要原文或如实标注): 1. 07_官方核心出厂与社区预设导航.md —— 看有哪些可用的世界预设/包 2. 02_联动注册表.md —— §2 官方核心 13 件模块表(编号/类别/挂载层)、订阅关系、执行顺序 3. 01_核心协议.md —— §1 模块协议(八要素)§1.1 machine_contract §2 管线规范 §3 资产五接口 4. 目标领域包(如 community/校园情感领域包/)—— README 装配清单 + modules/ + assets/ + pipelines/ 5. 06_Agent执行协议.md —— 运行时 agent 怎么装载(你的产物要被它执行) 【第二步 · 选件】按用户需求装配,遵守铁律: 1. 编号合法:官方核心用 M00–M90 原号;社区题材用包内已登记编号;新建用 M91–M99 机制段或本包独占类别的类内段 `<类别>:Mxx`; 重号必须带类别前缀(如 情感:M22 ≠ 事件:M22),全文引用保持一致。 2. 层号对齐:每个模块的层号必须存在于所选管线的 layers 中(如 P02 校园流有 P00→P80 九层)。 3. 模块要素齐:编号、名称、类别、层、输入、输出、可替换、核心逻辑(+引用的资产)缺一不可。 4. 资产真实:模块「引用的资产」里的类别名必须在资产键表中真实存在;没有就写「无」。 5. 事件闭合:订阅的事件必须有发布方,发布的事件要写明订阅方;做不到就在装配记录里声明缺口。 6. 宁缺毋滥:拿不准的字段留空并注明,绝不编造不存在的模块号/资产键/依赖。 【第三步 · 组装】按以下骨架输出「完整版世界文档」单文件(## 0 到 ## 7 全段): # 叙事世界完整版:<世界名> > 版本:1.0.0 · 装配师:<你的名字> · 日期:<今天> · 规范源:<仓库地址> ## 0. 装配记录 用户需求原话 → 选件决策(用了哪些包/模块/资产、为什么)→ 来源清单(每个件的出处路径)→ 已知缺口 ## 1. 世界速览 一句话定位 + 玩法主轴(关系驱动/生存驱动…)+ 输出风格要求 ## 2. 管线 折叠所选管线(Pxx):逐层:层号+层名+一句话职责(数据怎么流) ## 3. 注册表投影 - active_pipeline:Pxx - 模块总表:| 模块ID | 名称 | 类别 | 挂载层 | 来源 | - 订阅关系(yaml 或表):事件 → publisher → subscribers - 执行顺序:按 02 §6 的轮次骨架写明(可折叠为阶段) ## 4. 模块库 逐个模块一节(核心件与题材件都列):编号/名称/类别/层/输入/输出/可替换 + machine_contract(yaml) + 职责 3-5 行 + 事件契约 + 核心逻辑(何时触发→读什么→算什么→写哪个键)+ 违例边界 (自包含档:正文尽量完整可执行;从仓库原文复制的模块可精简中间细节,但契约与核心逻辑必须完整保留) ## 5. 资产 键表(资产类别 → 用途 → 条目数)+ 关键资产条目正文(供运行时 agent 直接取用);说明资产经 asset_get 等五接口访问、禁止直读 ## 6. 装载指引 给运行 agent 的启动步骤:读 ## 3 注册表投影 → 按 ## 2 管线逐层推进 → 模块按 ## 4 契约执行 → 素材从 ## 5 经五接口取 → 正文由 M80 渲染(质检双门:结构门 + 档位风格门)→ 维护存档键。引用 06_Agent执行协议 的角色边界(不直写正文、不直读资产库、不硬编码顺序)。 ## 7. 自检清单(交付前逐项核对,全过才交付) - [ ] 模块编号全部合法且全文一致(含类别前缀) - [ ] 每个模块五要素齐全(类别/层/输入/输出/核心逻辑) - [ ] 所有层号存在于管线 layers - [ ] 引用的每个资产名都在 ## 5 键表中 - [ ] 订阅/发布闭合或已声明缺口 - [ ] ## 0 装配记录完整(来源可追溯、缺口如实) - [ ] 本文件可被另一个 AI 完整复述并开始运行(不自证者重新整理) 【收尾】 输出正文结束后,用一句话提醒用户:把以上文档另存为 .md,即可直接发给任意 AI 前端开跑; 若需微调(换模块/加资产/改管线),把需求再说一遍,你会重装。 ``` --- ## 常见问题 **AI 说「无法访问 GitHub 仓库」?** 把它需要的文件原文粘贴给它(可让它只读关键段:07 导航 + 02 §2 + 目标包 README)。装配师必须在装配记录里标注哪些是原文、哪些是它补全的。 **一次组装多个世界可以吗?** 可以,但建议一次一个——完整版很长,免费 AI 容易截断;截断就从 ## 0 装配记录续。 **输出太长被截断怎么办?** 让 AI 分两次:先出 ## 0–## 3,再出 ## 4–## 7;或改用「引用式完整版」(模块库给契约摘要+仓库路径,不自包含正文)——引用式要求运行 agent 能联网取正文,自包含档无此要求。 **怎么验证 AI 没编造?** 三重对账:① 编号对照 02 注册表/包 README;② 资产名对照 assets/README 键表;③ 让另一个 AI 独立读这份完整版并复述模块清单,两边一致才算过。 **桌面工具用户与这个冲突吗?** 不冲突:桌面工具是通道 A(本地导入勾选);本指令包是通道 B(Agent 自助组装)。两者产出同构,可互相导入。