360 Secure SkillHub
360 安全技能中心

本命灵根测试

用户答8道题后,脚本按五行权重与阈值判定天、双、三、四、全或变异灵根,生成专属道号与道友帖,并输出可反解的干支帖码;另可生成并打开本地 HTML 点选答题页,附自检与对拍脚本。

dora233
dora233
热度 7.65
最近更新 2026-09-18 14:05:36
分类:创作依赖:代码执行 / 读写文件应用场景:测验 / 故事创作 / 文案创作 / 推荐

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add sk-61b00e213202
Metadata
name
本命灵根测试
description
答8道修仙情境题,测定你的本命灵根(天/双/三/四/全/变异),生成专属道友帖和道号,还能导出帖码供后续技能复用。

本命灵根测试

一句话

不是「测你是什么性格」,是「测你这辈子开局的根骨」。用户测完要得到的是:我这辈子起步的牌有多差,以及我该怎么打。

交互协议

三条路,题库、权重、阈值、编号、文案完全同源

通道 何时用 怎么走
UI 模式(首选) 能打开本地 HTML 1. 先跑 python -X utf8 scripts/build_quiz_html.py --out <桌面路径> 生成单文件点选页2. 立即调用 Start-Process 或系统默认程序打开该 HTML3. 告知用户「测灵页已打开,点选答题即可,答完提交出卡」
逐题问答模式(次选) 对话框交互,用户不想敲答案串 见下方「对话接入方式」的逐题交互流程
纯文本模式(兜底) 用户明确要求一屏看全部题目 第 1 轮报卷号 + 一屏铺开 8 题(--questions --paper N);第 2 轮收答案串出卡(--card)

纯文本模式两轮闭环,没有第三轮——灵根不给讨价还价的空间,不满意就再测一次(换一张卷,共 20 张)。

分支处理

用户回复 处理
答案串(含/不含卷号、带/不带题号、全角半角、逗号顿号空格) --card 全部识别,先归一化再解析
单字母答案(A/B/C,逐题问答时) 逐题累计,存到数组,够了就调 --card 出结果
「就到这里」「不想答了」 数已交题数:≥ 5 题直接出卡,未答按默认项补齐,卡片印「剩下的替你答了」;不足 5 题劝一句,仍坚持则照样出卡(不拦第二次)
漏答 用该题默认项补齐,卡片末尾注一句,绝不追问
缺卷号 退出码 2 + 明确提示。不许替用户猜一个卷号

对话接入方式(Agent 如何用这个 Skill)

UI 模式(自动打开):

  1. 用户触发 → 生成 HTML 到桌面:python -X utf8 scripts/build_quiz_html.py --out <桌面/本命灵根测试.html>
  2. 自动打开HTML:Start-Process '<完整路径>'
  3. 告知用户:「测灵摊已摆好,点开页面一题一题选就行~」
  4. 用户答完贴出卡片内容,视为结果。

逐题问答模式(交互友好):

  1. 用户触发 → 随机选卷 N(1–20),跑 python -X utf8 scripts/linggen.py --start --paper N,把开场白 + 第 1 题发给用户
  2. 用户回答字母(A/B/C)→ Agent 内部累计答案
  3. Agent 跑 python -X utf8 scripts/linggen.py --question N --paper <同一卷号> 输出下一题
  4. 重复直到 8 题答完 → 拼成答案串调 --card
  5. 用户中途说「就到这里」→ 已答 ≥ 5 题直接出卡;不够劝一句,仍坚持就出
  6. 全程由 Agent 管理卷号和已答列表,用户不需要记卷号、不需要拼答案串

纯文本模式(兜底):

  1. 用户触发 → 跑 python -X utf8 scripts/linggen.py --questions --paper N(N 随机 1–20),把 stdout 原样发给用户

  2. 收到答案串 → python -X utf8 scripts/linggen.py --card "<原文>",把卡片原文发出

  3. 用户想换卷 → 换 N 重来;用户对结果不服 → 「换张卷再测」,不重判同一张卷

  4. 全程保持「测灵人」语气(见 data/meta.json 的 opening),不提 AI、不提脚本

Windows 下所有 python 调用带 -X utf8,否则中文输出按 GBK 乱码。

计分模型(核心,与分院帽完全不同)

两层判定,全部实现在 scripts/linggen.py,UI 的 JS 引擎(scripts/engine.js)与它逐用例对拍:

第一层:五行加权

  • 每题 3 个选项,每选项给五行权重(主顶格 3,次级 0–1)
  • 配平铁律:每道题里,五行各自的最高权重都必须正好等于 3(make_papers.py --check 拦截)
  • 累加得 raw[5],score = raw / 24(cap = 8 题 × 3)

第二层:变异 → 属性数 → 品质

判定顺序固定,先判变异:

  1. 变异灵根:score 最高的两个属性是五行相生对、双双 ≥ min_top、差距 ≤ max_gap、且领先第三名 ≥ min_lead。按相生对映射:金水→冰 / 水木→雾 / 木火→风 / 火土→熔 / 土金→岩
  2. 其余:N = score ≥ attr_threshold 的属性个数(1–5 → 天/双/三/四/全)
  3. 兜底:一个都不过线时,取 ≥ 0.8 × 最高分的所有属性(相对阈值接住低总分的中庸用户,否则他们会全部涌进天灵根)

阈值参数全部在 data/meta.json,由 --calibrate 网格搜索实测校准——改题库后必须重跑校准。

帖码:干支灵符(下游 4 个 Skill 的接口)

{品质字} · {五字天干} · {地支校验字}
例:四·丙癸壬辛庚·巳
  • 品质字:天 双 三 四 全 / 冰 雾 风 熔 岩(直白汉字,用户要自己读、自己转发)
  • 五行档位:顺序固定金木水火土,值 = floor(score×9 + 0.5),0–9 → 甲乙丙丁戊己庚辛壬癸 ⚠️ 天干自身的五行归属(甲乙木、丙丁火)不参与编码,是纯序号。肉眼读码按「金木水火土」顺序,不要拿天干五行反推属性
  • 校验字:(品质索引 + Σ 档位值) mod 10 → 子丑寅卯辰巳午未申酉(戌亥不用)
  • 通体汉字,无阿拉伯数字、无拉丁字母、无连字符——LT-481307-3 那种写法像订单号,会把用户从仙侠语境里拽出来
  • 帖码可反解:decode_talisman() 直接给出「属性组合 + 品质 + 主属性」,下游 Skill 不需要重跑本测试。校验不通过明确报错,不要猜、不要修
  • 道号:默认由帖码规范串(去分隔符)CRC32 确定性生成,用户可自定义覆盖

判词纪律

  • 组合式:品质段 6 + 属性段 10 = 16 段,每卡拼「品质段 + 主属性段」,不要写 30 套
  • 每一档都要有「但是」:好结果泼冷水(天灵根→「天赋是最靠不住的东西」),差结果给台阶但不用空洞鼓励——用「有人和你同款并且走到了最后」这个事实,而不是「你一定可以的」
  • 禁词:判词与题干不得出现具体作品的专名、角色名、门派名、情节
  • 双配置:--config alt(上架版,不点名)默认;--config fan(粉丝版,判词可点名)仅限非商用渠道

契合宗门(方向已写死,不许临场推)

  1. 本命 = 主属性宗门
  2. 滋养 = 生主属性的属性宗门(木 ← 水)。是「生我」,不是「我生」
  3. 磨砺 = 克主属性的属性宗门(木 ← 金)。是「克我」,不是「我克」

以主属性「木」自检:滋养必须是沧浪门(水生木)、磨砺必须是锐金堂(金克木)。方向反了整个表全错且极其隐蔽。--audit 第 7 项断言此方向。

自检命令(改任何数据后必跑)

python -X utf8 scripts/make_papers.py --check   # 试卷结构 + 逐题五行峰值配平
python -X utf8 scripts/linggen.py --audit       # 六档可达 + 分布逐档实测 + 帖码往返 + 字符集纯净 + 宗门方向 + 禁词 + 卡宽
python -X utf8 scripts/linggen.py --selftest    # 确定性 + 错码拦截 + 解析容错 + 漏答补齐
python -X utf8 scripts/build_quiz_html.py --verify   # JS 引擎与 Python 对拍(需 node)
python -X utf8 scripts/linggen.py --calibrate   # 改题库后重新校准阈值

合规红线(上架必须守住)

  • 全自创:宗门名、测灵人、映射逻辑、干支灵符,全部原创
  • 不出现任何现成作品的专有名词、角色名、门派名、地名、具体情节
  • 判词指代「走到最高的那个人」用不点名说法;粉丝点名版仅走 --config fan 且不上架
  • 卡片底部固定声明(meta.disclaimer)不可删

文件结构

linggen-test/
├── SKILL.md
├── data/
│   ├── questions.json   # 8 题(题干 + 选项 + 五行权重 + 默认项)
│   ├── papers.json      # 20 张卷(make_papers.py 生成,固定种子,勿手改)
│   ├── attrs.json       # 五行配置、宗门、相生相克、变异对、属性判词
│   ├── tiers.json       # 六档品质:系数、难度、判词、目标分布
│   └── meta.json        # 阈值、干支码表、道号字库、禁词表、开场白、声明
├── scripts/
│   ├── linggen.py       # 主引擎:--card / --questions / --audit / --selftest / --calibrate / --list
│   ├── make_papers.py   # 构建期生成 / 校验 papers.json
│   ├── engine.js        # JS 计分引擎(与 linggen.py 同源对拍)
│   ├── build_quiz_html.py  # UI 生成(--out / --verify)
│   └── verify_js.js     # node 对拍执行器
└── references/
    ├── canon.md         # 灵根设定的题材通用口径
    └── test-prompts.md  # 回归用例