whale-persona-presets —— 人设内容包(关联仓)
本体仓(whale-persona)是引擎:出厂空白、零观点、默认不改变行为。
本仓是内容:现成的人设预设(JSON),给懒得从零写的人一个起点;想手搓独特人设的,继续用本体仓。
两边刻意分开:内容更新频繁、质量参差、还可能夹带第三方文本;引擎要的是"默认零行为改变"可被单测钉死。
混在一起,两边都会被拖坏。
三分钟用上
本仓的东西全是普通预设文件,用本体仓已有的通道导入即可(不需要额外插件):
# ① CLI 导入(会把预设存进你的预设库,不覆盖当前人设)
node <本体仓>/scripts/presets.mjs import presets/starter-plus.json
node <本体仓>/scripts/presets.mjs list # 看有哪些
node <本体仓>/scripts/presets.mjs apply starter-plus # 应用(应用前自动存 autosave,可切回)
# ② 图形界面:DSH「设置 → 人设 → 人设预设 → 导入」选本仓的 .json
# ③ 直接改:把文件丢进 $DSH_HOME/whale-persona/presets/ 下
导入的是人设:立场 / 身份正文 / 逐条工作契约(可勾选)/ 可选语气与形象。
导入不携带长期记忆(引擎的硬规矩:记忆是你和你的 AI 之间发生过的事,不该被别人的人设卡覆盖)。
内容纪律:只做"纪律与风格",不做"角色大杂烩"
本仓不做 277 个部门角色那种库。理由很实际:
- 那种库的价值在覆盖面,本引擎的价值在每轮注入小、逐条可关;塞几百个角色进来等于自毁长处;
- "你是谁"是最好写的那部分,"你该怎么干活"才是稀缺的 —— 本仓只做后者:把一类工作里反复值得坚持的纪律,
写成逐条可勾选的契约。
所以每张卡 = 一句立场 + 一段身份 + 4~6 条可勾选契约。契约要具体可验证
("结论要有证据,给不出就标未验证" 合格;"认真负责" 不合格)。
另一条同级纪律:私人内容永不出海
本仓只放通用内容——不写任何具体某个人的真名、关系、私有目录、私人契约。
引擎/内容仓是公开的,"我们自己的独特配置"(人设正文、长期记忆、私有路径)只留在本机,
永远不进这两个仓。这条不是口头约定:check.mjs 里有机器判据(词表在源码里拆开写,扫全部文件)。
当前内容:16 张卡(15 张原创 + 1 张改编),详见 sources.md。
目录
presets/ 本仓原创(MIT)
adapted/ 从第三方 MIT/CC0 内容改编:只借纪律层,逐件登记来源与改动(见 sources.md)
sources.md 来源与许可台账 —— 新增任何第三方文本都必须在这里登记
check.mjs 自检:结构 + 契约长度 + **用真引擎导入一遍**(决定"能不能用"的是引擎,不是本仓的想象)
自检
node check.mjs # 自动找已安装的引擎
WHALE_HARNESS=/path/to/whale-persona node check.mjs # 或显式指定引擎在哪
node check.mjs --harness /path/to/whale-persona # 同上,参数形式
引擎路径三级解析:WHALE_HARNESS 环境变量 → --harness 参数 → 已安装插件
($DSH_HOME/profiles/*/node_modules/@shenA2024/whale-persona);三级都拿不到就明确报错,不猜。
自检会真的调用引擎的 scripts/presets.mjs import(在临时 DSH_HOME 里跑,不碰你的配置)。
没跑过自检的卡不入库 —— "看起来对"不算数。
贡献
- 一张卡一个文件,文件名 =
id,扩展名 .json;
- 只写
persona 段里的字段(stance / character / contracts / tone / appearance / userName / 自称),
不许带 memory(引擎也不接受);
- 契约给稳定
id(短横线小写)与 on: true,单条 ≤ 120 字(超了引擎会在面板告警);
- 抄了别人的文本(MIT / CC0 / 公有领域)→ 放进
adapted/ 并在 sources.md 登记:
仓库、文件路径、许可、改了什么。许可不明的内容一律不收(拿不准就自己重写);
node check.mjs 全绿再提交。
许可
本仓原创内容:MIT。第三方改编部分:遵守原许可并在 sources.md 逐件标注来源。