下载地址
https://www.zhengdianxue.com/wp-content/uploads/skills/org-i17594xw--lingji-miaosuan.zip将提示词发送给你的 AI 安装该 skills
请根据 https://skillhub.cn/install/skillhub.md,安装 @org-i17594xw/lingji-miaosuan。灵机妙算娱乐向命理互动玩法的提示词、合规红线与接口/配额合同。适用于用户要求做八字/星盘/风水/宠物命理排盘解析、知名案例趣味类比、变卦玩法启示、四板块报告、动态免责与 PII 脱敏、前端表单去重与瘦客户端、或设计 POST /api/mystic/divine 一类后端权威排盘接口与「免费版每日 5 次」配额时;也适用于已配置 MCP 排盘服务(divine / validate_report / get_guidance 工具)时决定该调工具还是纯文本作答。
也用于审查这类页面是否泄露接口原始数据或弱化免责,以及确定触发后该向用户收集哪些输入、缺项时如何追问。
阅读全文 (展开查看完整说明)
概述
把玄学 / 命理玩法(八字、星盘、风水、宠物命理 + 知名案例趣味类比 + 变卦启示)做成定位为「娱乐解惑」的合规互动体验。核心原则:免责是红线,脱敏是底线,业务规则在后端,前端只渲染。
本 skill 提供可复用的提示词、验收红线、前端展示约束,以及一份已上线的接口/配额参考合同。不绑定具体框架,也不要求接入任何特定服务。
何时使用
- 用户要求生成或完善「灵机妙算」类排盘 / 解析 / 变卦玩法页面、提示词或报告结构。
- 涉及八字 / 星盘 / 风水 / 宠物命理、知名人物或宠物案例的趣味类比。
- 需要三层免责、动态免责规则、PII 脱敏、内容红线自检、两阶段高风险确认。
- 需要设计或审查排盘 API、匿名免费额度(按自然日 / 按主体计数)、429 / 503 契约。
- 需要检查页面是否误展示
requestId、响应 JSON、端点路径等接口原始数据。
用户输入契约(触发后第一件事)
不要直接开算,也不要静默使用示例数据。 先向用户收集下表信息:缺哪项问哪项,一次问完;用户没给的必需项就停在这里等补充,绝不替用户编造、不得用默认值或占位日期补齐。纯文本推演与调 MCP divine 都适用。
| 用户输入 | 是否必需 | 取值 / 说明 | 映射到 |
|---|---|---|---|
| 玩法类型 | 全局必填 | bazi 八字 / zodiac 星盘 / fengshui 风水 / pet 宠物命理 | type |
| 关注方向 | 全局必填 | daily 日常 / health 健康 / wealth 财运 / love 感情 | concern |
| 明确同意 | 全局必填 | 用户须明确同意「仅供娱乐参考 + 免责」后才可生成;沉默视为不同意 | consent=true |
| 出生日期 | bazi / zodiac 必填 | YYYY-MM-DD,1900 年至今的有效日期;八字与星盘共用同一个日期,不重复问 | profile.birthDate |
| 出生时辰 | bazi 必填 | 十二时辰之一,或 unknown=「不知道 / 不方便提供」这一显式合法值;留空 / 只填空格一律拦截 | profile.birthTime |
| 宠物种类 | pet 必填 | 猫 / 狗 / 兔 / 仓鼠 / 其他,必须显式选择,不留静默默认值 | profile.petKind |
| 性别 / 宠物性别 / 年龄 / 名字 | 可选 | gender 男·女、petGender 公·母、petAge 0–30 整数、petName ≤20 字 | profile.* |
| 想聊的事 | 可选 | 一句话,≤500 字符;只用于风险词识别,不回显、不落库 | extra |
字段填写规范(唯一口径,前端 / 后端 / MCP / 文档四处一致):
type | 必填 profile 字段 | 可选字段 |
|---|---|---|
bazi | birthDate + birthTime | gender |
zodiac | birthDate | — |
fengshui | 无(profile 可为空对象) | — |
pet | petKind | petGender / petAge / petName |
birthTime 的 12 时辰 + unknown 值域在四处相同。该字段只用于确认资料完整,不参与模拟盘面计算、不回显在结果里;为避免索取无用 PII,「不知道 / 不方便提供」是合法显式选择,但留空不等于选择,仍要拦截。
表单实现口径:必填项标 *,且 select 要留 value="" 的「请选择」占位,使「空」真实可发生;提交前由同一份 FIELD_SPEC 统一校验,缺项 / 空值一律拦截、payload 为 null、逐项给出明确错误并标 aria-invalid;send() 再做一次二次校验兜底。必填标识、校验反馈、提交拦截三者必须一致,不允许出现「标了 * 却有默认值、永不报错」或「能绕过校验直接发请求」的路径。
差异化:fengshui 只需关注方向,空间 / 朝向描述放 extra;mixed 先请用户选一个主类型,不代选。出生日期属 PII,接口边界掩码或哈希,原始值不进日志、不写 localStorage、刷新即清空。
追问话术(可直接用,缺什么只问缺的):
开始之前需要你给我 3 样东西:
- 想玩哪种:八字 / 星盘 / 风水 / 宠物命理?
- 更关心哪一块:日常 / 健康 / 财运 / 感情?
- 选八字请给出生日期(YYYY-MM-DD)和出生时辰(不确定可答「不知道」);选星盘给出生日期;选宠物命理请告诉我毛孩子是猫还是狗。
可选:想聊的具体事情(一句话,500 字以内)。
最后确认:结果仅供娱乐参考,不构成健康 / 财务 / 法律建议,你同意后我再开始。
交互式选择(默认方式,避免一问一答):在支持选项 UI 的对话环境里,不要用纯文本逐条追问。改用可点击的选项卡片一次性收集——把 type / concern / 同意 / 各 profile 字段作为选项(options)列出,用户点选即可,不必打字。优先用 AskUserQuestion 这类交互工具:单轮内把必填项以选项卡片呈现,缺哪个补哪个;选项取值固定为:
type:八字/星盘/风水/宠物命理concern:日常/健康/财运/感情consent:同意(仅供娱乐参考)/暂不同意bazi的birthTime:子时、丑时、寅时、卯时、辰时、巳时、午时、未时、申时、酉时、戌时、亥时+不知道 / 不方便提供pet的petKind:猫/狗/兔/仓鼠/其他
选 宠物命理 时把 petKind 作为必选项卡片;选 八字 时把 birthDate(手动输入或选项)与 birthTime 选项一并给出;fengshui 只需 concern 选项。一轮收集不齐也不要退化为逐条文本追问——保留未答字段,下一轮继续用选项卡片补齐。无选项 UI 的环境才回退到上方「追问话术」纯文本方式。
收到之后:把回答映射成 type / concern / consent / profile / extra,再调 divine(未配置 MCP 时按提示词做文本推演并显式声明「文本推演」)。consent 未明确为 true 时不得调用、不得生成。命中 health / wealth 或高风险词时走两阶段确认,风险等级与免责由后端下发,前端 / 助手不自行判定风险、不拼接免责文案。
用户不愿提供时:说明哪些是必需项并请其补充;仍不给就停止,不得拿 examples/ 里的静态样本或占位日期冒充结果。
硬约束(不可降级)
- 产品定位:始终为娱乐解惑。健康、财务、法律、重大人生决策只做娱乐化转述,不提供实质建议。
- 免责后端权威:免责文案与风险等级由后端按意图生成并随响应下发;前端只渲染
disclaimer.text,不得内置业务免责文案池、不得拼接、不得在失败时回退本地模拟数据。 - 免责三层:首屏固定横幅(硬编码、不可关闭)→ 生成前常驻提示 + 首次同意弹窗 → 结果区动态免责组件。高风险命中时保留最高级提示并过审核门禁。
- 内容红线:禁止
注定/必定/保证/克死/必分手/改命/包治/包赚等绝对化或恐吓表述;不确定时改写为「倾向 / 可能 / 供参考」。引用知名案例必须带「仅为趣味类比」语义。 - 四板块固定:
【核心盘面】【趣味解析】【知名案例启示】【变卦玩法建议】;盘面标注「模拟盘面,仅供娱乐」。 - 隐私:手机号 / 身份证 / 姓名 / 地址 / 邮箱 / 出生日期在 API 边界掩码或哈希;原始输入不落库、不进日志;前端不写 localStorage,刷新即清空。绝不输出真实 Key、数据库口令、第三方凭据或完整 PII 明文。
- 前端不展示接口数据:不渲染原始 JSON 调试块、不展示
requestId/riskLevel/generatedAt/ 字段名 / 端点路径;requestId仅留服务端日志。不得在用户可见文案中出现任何企业版或上游品牌字样。 - 免责不豁免平台审核:命理 / 玄学类内容另有平台内容合规风险;小红书现行规则禁止笔记、评论、私信、主页任何站外导流外链(含谐音、二维码),企业号应走站内留资;微信小程序
web-view需企业主体 + ICP 备案 + HTTPS + 校验文件。免责声明不能替代这些要求。 - 授权边界:不擅自改生产环境、不 push 上游仓库、不发布包或上线、不触发真实支付/收费调用;涉及远程写、数据库 Schema 变更、CI 触发或公开发布时先取得单独授权。
MCP 执行层(可选)
本 skill 不依赖任何服务。若部署方另外提供了 MCP 端点,优先调工具,不要手写卦象:
| 工具 | 用途 | 关键约束 |
|---|---|---|
divine | 生成四板块解读 | 必须 consent=true;盘面与免责由后端下发,原样转述 |
validate_report | 红线自检 | 不消耗额度,可反复调用;错误体只查三键 |
get_guidance | 取某一节规则文本 | 用于渐进加载,不替代本文件 |
- 令牌只放 MCP 客户端配置,不得写进提示词、代码或对话。
- MCP 走内部通道,不占匿名访客的「每日 5 次」;它有自己的软性日限额,两套额度互不影响。
- 工具失败时如实说明,不得回退到本地编造盘面。详见
references/mcp-tools.md。
工作流
- 先按「用户输入契约」收集并确认必需输入(玩法类型 / 关注方向 / 明确同意 / 按类型的
profile)。默认用可点击的选项卡片(交互式选择)一次性收集,不要纯文本一问一答;缺项就继续用选项卡片补齐,未齐不进入下一步。再识别意图(bazi/zodiac/fengshui/pet/mixed)与风险等级(LOW/MEDIUM/HIGH);高风险词优先且只归一次类。 - 若已配置 MCP 且需要真实盘面,调
divine;否则按提示词生成并声明「文本推演」。生成四板块后,直接在对话框打印「命盘」结果(见下方《结果展示》一节),不必等用户追问。 - 按子任务加载对应参考文件(见下表),不要一次性把所有参考塞进上下文。
- 生成四板块内容后,用
scripts/validate_content.py或 MCP 的validate_report做确定性红线自检:绝对化词、四板块完整性、免责等级前缀、PII 回显。 - 涉及接口或额度时,按
references/api-quota-contract.md对齐请求/响应/错误码,并确认「计量只在后端、前端零配额状态」。 - 涉及代码实现时,先写 Spec / API Contract / Schema 变更说明,再走 RED → GREEN → VERIFIED → DOCUMENTED;用
references/quick-validate.md收尾核对。 - 交付前用
references/compliance-privacy-spec.md的验收清单逐项确认,未通过项如实保留为 OPEN,不写成通过。
结果展示(命盘打印输出)
生成四板块后,在对话框直接打印一张清晰可读的「命盘」结果,让用户一眼看到盘面与解读,不必等追问。
- 呈现形式:用宿主对话框支持的可读格式直接输出即可——结构化的纯文本 / Markdown 就能清楚呈现,不强依赖 HTML 卡片;若宿主支持内联可视化组件(如 Visualizer / Widget)也可顺手使用,但缺它也必须能正常显示。
- 命盘结果必须包含:
- 免责横幅(首屏,硬编码、不可关闭,警示深色文本)。
- 命盘区:以竖排卦象图呈现本卦与变卦(上卦在上、下卦在下,上爻在顶、初爻在底);阳爻画
━━━━━━、阴爻画━━ ━━━(中段留空),变动爻在右侧标*;并附六爻lines/changedLines数据串(1=阳 / 0=阴,变动爻带*)。 - 四板块:核心盘面 / 趣味解析 / 知名案例启示 / 变卦玩法建议。
- 动态免责:随
riskLevel展示disclaimer.text,原样转述,不拼接、不弱化。 - 统一标注「模拟盘面,仅供娱乐」。
- 红线一致:命盘结果不得渲染
requestId/riskLevel原始值 / 响应 JSON / 端点路径等接口数据;disclaimer.text原样展示,不得内置业务免责文案池或失败时回退本地模拟;命中health/wealth高风险时保留最高级提示并过审核门禁。 - 参考写法(竖排卦象图:用
{{lines}}/{{changedLines}}渲染;阳爻━━━━━━、阴爻━━ ━━━、变动爻标*;上卦在上、下卦在下):
⚠️ 灵机妙算 · 娱乐解惑(首屏免责,不可关闭)
─────────────────────────────
【命盘 · 模拟盘面,仅供娱乐】
本卦 {{hexUp}}上 / {{hexLow}}下 变卦 {{changedUp}}上 / {{changedLow}}下
─────── 上·阴 ─────── 上·阳 *
─────── 五·阳 ─────── 五·阳
─────── 四·阳 ─────── 四·阳
━━ ━━━ 三·阴 ━━ ━━━ 三·阴
━━ ━━━ 二·阴 ━━ ━━━ 二·阴
─────── 初·阳 ─────── 初·阳
六爻(初→上):{{lines}} 变卦六爻:{{changedLines}} (* = 变动爻)
─────────────────────────────
【核心盘面】{{coreChart}}
【趣味解析】{{funText}}
【知名案例启示】{{caseText}}
【变卦玩法建议】{{biGuaTip}}
─────────────────────────────
{{disclaimerText}} (动态免责,原样)也可把本卦 / 变卦各自上下叠放成单卦(上卦在上、下卦在下)的竖排图,两种都接受;关键是阳/阴、变动爻清晰可辨,并标注「模拟盘面,仅供娱乐」。
- 更丰富的内联 HTML 渲染(宿主支持时优先):若宿主提供内联 HTML / Widget 能力(如 WorkBuddy Visualizer 的
show_widget),可把同一个命盘渲染成带样式的 HTML 片段(不是独立卡片文件,就在对话框内联显示)。要点:外层容器透明、用宿主主题变量(--color-background-*/--color-text-*/--color-border-*)、扁平无渐变无阴影、不出现 emoji;阳爻实心条、阴爻断条、变动爻用强调色小圆点标记;版式含标题 + 元信息 chips + 本卦/变卦双卡片 + 图例 + 四板块分区卡片。红线同前:不渲染requestId/riskLevel原始值 / 响应 JSON / 端点路径。
<style>
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.wrap{max-width:720px;font-family:var(--font-sans);color:var(--color-text-primary)}
.head{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.logo{width:36px;height:36px;border-radius:50%;background:#534AB7;color:#fff;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:500}
.ttl{font-size:15px;font-weight:500;margin:0}
.sub{font-size:12px;color:var(--color-text-secondary);margin:0}
.chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}
.chip{font-size:12px;background:var(--color-background-secondary);border:0.5px solid var(--color-border-tertiary);border-radius:999px;padding:3px 10px}
.hexwrap{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:8px}
.gua{flex:1;min-width:200px;background:var(--color-background-primary);border:0.5px solid var(--color-border-tertiary);border-radius:var(--border-radius-lg);padding:12px}
.guat{font-size:13px;font-weight:500;text-align:center;margin:0 0 10px}
.yao{display:flex;align-items:center;gap:10px;margin:6px 0}
.yn{width:14px;font-size:12px;color:var(--color-text-secondary);text-align:right}
.bar{display:flex;gap:8px}
.ys{width:120px;height:13px;border-radius:3px;background:var(--color-border-primary)}
.yb{width:56px;height:13px;border-radius:3px;background:var(--color-border-primary)}
.dot{width:8px;height:8px;border-radius:50%;background:#534AB7;margin-left:4px}
.mark{font-size:11px;color:#3C3489;background:#CECBF6;border-radius:4px;padding:1px 5px;margin-left:6px}
.legend{display:flex;gap:14px;font-size:12px;color:var(--color-text-secondary);margin:4px 0 18px}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px}
.card{background:var(--color-background-primary);border:0.5px solid var(--color-border-tertiary);border-top:3px solid #534AB7;border-radius:var(--border-radius-lg);padding:12px 14px}
.card.t{border-top-color:#0F6E56}
.card h3{font-size:13px;font-weight:500;margin:0 0 4px}
.card p{font-size:13px;color:var(--color-text-secondary);line-height:1.6;margin:0}
.warn{background:var(--color-background-warning);color:var(--color-text-warning);border-radius:var(--border-radius-md);padding:10px 12px;font-size:13px}
.badge{font-size:11px;background:var(--color-background-warning);color:var(--color-text-warning);border-radius:4px;padding:1px 6px;margin-right:8px}
</style>
<div class="wrap">
<h2 class="sr-only">灵机妙算命盘结果,模拟盘面仅供娱乐</h2>
<div class="head">
<div class="logo">灵</div>
<div><p class="ttl">灵机妙算 · 命盘</p><p class="sub">娱乐解惑 · 模拟盘面,仅供娱乐</p></div>
</div>
<div class="chips">
<span class="chip">玩法 · {{type}}</span>
<span class="chip">关注 · {{concern}}</span>
<span class="chip">盘面 · 模拟</span>
<span class="chip">文本推演</span>
</div>
<div class="hexwrap">
<div class="gua">
<p class="guat">本卦 · {{hexUp}}上 / {{hexLow}}下</p>
<div class="yao"><span class="yn">上</span><div class="bar"><div class="yb"></div><div class="yb"></div></div><span class="dot"></span><span class="mark">变</span></div>
<div class="yao"><span class="yn">五</span><div class="bar"><div class="ys"></div></div></div>
<div class="yao"><span class="yn">四</span><div class="bar"><div class="ys"></div></div></div>
<div class="yao"><span class="yn">三</span><div class="bar"><div class="yb"></div><div class="yb"></div></div></div>
<div class="yao"><span class="yn">二</span><div class="bar"><div class="yb"></div><div class="yb"></div></div></div>
<div class="yao"><span class="yn">初</span><div class="bar"><div class="ys"></div></div></div>
</div>
<div class="gua">
<p class="guat">变卦 · {{changedUp}}上 / {{changedLow}}下</p>
<div class="yao"><span class="yn">上</span><div class="bar"><div class="ys"></div></div><span class="dot"></span></div>
<div class="yao"><span class="yn">五</span><div class="bar"><div class="ys"></div></div></div>
<div class="yao"><span class="yn">四</span><div class="bar"><div class="ys"></div></div></div>
<div class="yao"><span class="yn">三</span><div class="bar"><div class="yb"></div><div class="yb"></div></div></div>
<div class="yao"><span class="yn">二</span><div class="bar"><div class="yb"></div><div class="yb"></div></div></div>
<div class="yao"><span class="yn">初</span><div class="bar"><div class="ys"></div></div></div>
</div>
</div>
<div class="legend">
<span><span class="dot" style="display:inline-block;vertical-align:middle;margin-right:4px"></span>变动爻</span>
<span>阳爻=实线 阴爻=断线</span>
</div>
<div class="grid">
<div class="card"><h3>核心盘面</h3><p>{{coreChart}}</p></div>
<div class="card t"><h3>趣味解析</h3><p>{{funText}}</p></div>
<div class="card t"><h3>知名案例启示</h3><p>{{caseText}}</p></div>
<div class="card"><h3>变卦玩法建议</h3><p>{{biGuaTip}}</p></div>
</div>
<div class="warn"><span class="badge">动态免责</span>{{disclaimerText}}</div>
</div>- 不回退到
examples/静态样本冒充结果。
参考文件
| 文件 | 何时加载 |
|---|---|
references/prompt-generation.md | 写排盘 / 解析 / 案例 / 变卦主提示词时 |
references/prompt-disclaimer.md | 设计动态免责规则引擎与 5 档固定文案时 |
references/compliance-privacy-spec.md | 验收红线、PII 链路、平台合规与不做事项 |
references/frontend-contract.md | 设计表单去重、瘦客户端、两阶段确认与展示约束时 |
references/api-quota-contract.md | 设计或审查排盘 API、429/503、每日 5 次配额时 |
references/mcp-tools.md | 已配置 MCP 服务、要决定调工具还是纯文本作答时 |
references/quick-validate.md | 交付前逐项核对与证据留档时 |
examples/README.md | 需要一份可运行的最小示例,说明合规响应、红线自检与瘦客户端渲染时 |
脚本
scripts/validate_content.py <json文件|->:对一份排盘响应(或--text纯文本)做红线自检,退出码 0 表示通过,非 0 列出违规项。可不经读取源码直接执行。examples/run-example.py:零依赖可运行示例。默认离线校验examples/下三份样本并演示「前端只渲染四板块 + 后端免责、不展示接口原始数据」;--live才尝试调用已配置的 MCP。样本是教学用静态数据,不是真实排盘结果,工具失败时不得拿它回退冒充。
术语与命名
- 用户可见名称统一「灵机妙算」;包标识
lingji-miaosuan只用于安装目录,不出现在页面标题或正文。 - 「每日 5 次」指按 Asia/Shanghai 自然日、按主体(推荐 IP 盐哈希)共享计数;nginx 速率限制(如
2r/s)是防突发,不是日配额,两者不可互相替代。