角色发布
阅读同级目录 dramagic-character-pack/references/format.md 及其中的 JSON Schema。发布包仅包含 manifest.json 和它所引用的静态 WebP 文件。归档后缀为 .dramagic-character-pack 而非 .zip,尽管其容器格式为 ZIP。
发布检查
- 获取稳定的作者 ID、包 ID 和三位数字的发布版本号。请勿编造官方身份或复用他人的命名空间。相同名称但内容不同视为更新,而非新的可信来源。
- 对照 JSON Schema 验证所有必填字段;对照提供的语音目录检查 voice 字段。JSON Schema 本身无法检测重复键、解码 WebP、强制 UTF-8 字节预算或验证安全性。
- 确认每个角色存在全部六项必需的资源。允许使用 neutral 资源进行身份复用;不要因两个清单字段引用同一文件而重复存储其字节。请另外应用美术技能的检查清单。
- 从本工具包根目录运行
tools/package.mjs,传入源目录和新的输出路径。该脚本仅复制被引用的媒体文件,拒绝不安全路径/重复键/链接,并调用 ZIP 实现进行 store/deflate 输出。它不会执行包内文件或下载媒体。 - 对最终的归档文件运行权威的原生验证器。在客户端仓库中执行:
cargo run --manifest-path src-tauri/Cargo.toml --example validate_character_pack -- PACKAGE。在仓库外使用时,请使用兼容的外部验证器;不要假装技能包中包含了预编译的二进制文件。如果无法获取验证器,请明确标记结果为“未验证”,且不得声称其已可导入。 - 交付包文件、验证结果以及单独的视觉检查报告。请将报告、提示语、源截图和工作流文件保留在归档之外。未经用户请求及权限/版权检查,不得上传或发布。
旧版输入
客户端导入器仅接受 3.0 格式的用户包。客户端仓库中的转换脚本 scripts/convert-character-pack-v2.ts 需要 SOURCE OUTPUT AUTHOR_ID PACK_ID VERSION 参数;它仅转换 manifest 数据,丢弃旧的 root/audio 字段。这不是一个完整的包转换器。请收集被引用的 WebP 文件,执行相同的打包/验证流程,并保留原始源目录。
如果验证器拒绝了一个发布包,请报告具体的失败原因,并修复生成方或引用。不得禁用验证、重命名损坏的文件扩展名或添加伪造的缺失图片来强制通过验证。