Add user-led reading calibration protocol

This commit is contained in:
732642856
2026-07-02 22:58:51 +08:00
parent cdd0f51da5
commit 21212a1b9f
3 changed files with 239 additions and 1 deletions
+121 -1
View File
@@ -1,7 +1,7 @@
# AI解盘工作流Prompt工程(AI Reading Workflow # AI解盘工作流Prompt工程(AI Reading Workflow
> **适用场景**:AI收到出生信息、PDF星盘或文字星盘后,如何一步步执行完整的解盘+推运分析 > **适用场景**:AI收到出生信息、PDF星盘或文字星盘后,如何一步步执行完整的解盘+推运分析
> **版本**v5.1.0 | **更新日期**2026-06-27 > **版本**v5.2.0 | **更新日期**2026-07-02
> **来源标签**: 【工具/模板】 — AI解盘执行引擎工作流 > **来源标签**: 【工具/模板】 — AI解盘执行引擎工作流
> **优先级**:⭐⭐⭐⭐⭐(AI解盘质量的决定性文件) > **优先级**:⭐⭐⭐⭐⭐(AI解盘质量的决定性文件)
> **定位**:本文件是AI解盘的**执行引擎**,将Skill中所有参考资料串联成可执行的工作流 > **定位**:本文件是AI解盘的**执行引擎**,将Skill中所有参考资料串联成可执行的工作流
@@ -9,6 +9,7 @@
> **v4.0重大变更**Step 0.5 Karaka系统自动识别(解决DK摇摆问题)、预测输出强制[A/B/C]标注、统一精度边界声明、来源标签体系引用 > **v4.0重大变更**Step 0.5 Karaka系统自动识别(解决DK摇摆问题)、预测输出强制[A/B/C]标注、统一精度边界声明、来源标签体系引用
> **v5.0重大变更**:强制外部验证门控(MEVG)——新增核心原则"不凭记忆"、三个门控步骤(Step 3.11/4.10/5.5)嵌入工作流、与"不跳步"同级强制 > **v5.0重大变更**:强制外部验证门控(MEVG)——新增核心原则"不凭记忆"、三个门控步骤(Step 3.11/4.10/5.5)嵌入工作流、与"不跳步"同级强制
> **v5.1重大变更**:事件判定骨架接入主工作流——新增 `Route -> Evidence Ledger -> Adjudication -> Output Contract` 四段式事件裁决层,并引入 marriage 专用 adjudicator。 > **v5.1重大变更**:事件判定骨架接入主工作流——新增 `Route -> Evidence Ledger -> Adjudication -> Output Contract` 四段式事件裁决层,并引入 marriage 专用 adjudicator。
> **v5.2重大变更**:用户追问校准协议接入主工作流——把用户的质询流程抽象为盲推隔离、具体事件选项、证据先行、相似案例分层对标、可迁移边界与反例处理。
--- ---
@@ -24,6 +25,125 @@
- ❌ 仅凭记忆说"Venus 在 Taurus 10 宫是 Malavya Yoga" - ❌ 仅凭记忆说"Venus 在 Taurus 10 宫是 Malavya Yoga"
- ✅ 先 web_search 确认形成条件 + 引用来源 - ✅ 先 web_search 确认形成条件 + 引用来源
- → 完整协议:`references/mandatory-verification-gate-protocol.md` - → 完整协议:`references/mandatory-verification-gate-protocol.md`
8. **追问即校准(v5.2 新增)**:用户质疑"你用了哪些技法""哪里遗漏""真实案例是否相似""为什么这样判断"时,必须把追问视为工作流校准信号,而不是普通解释请求;需要回到证据层、相似案例层和置信度边界重新裁决。
---
## 🔴🔴🔴 用户追问校准与相似案例对标协议(v5.2)
> **目的**:把高质量用户追问转化为解盘流程约束,避免泛泛描述、记忆联想、单案例套用或把未闭环内容伪装成完整判断。
### 0.1 触发条件
只要用户出现以下任一追问,必须启动本协议:
- "不要用我之前说过的反馈""重新盲推""只用出生参数和当前项目数据"
- "你是不是遗漏了技法","这是不是顶级印度占星师逻辑"
- "列具体时间和事件让我选择","不要问概念问题"
- "相似真实案例是什么","这个案例到底和我哪里像"
- "为什么这样判断""哪些地方需要修正"
- "这个机会具体是什么""事件节点是什么"
### 0.2 盲推隔离模式
当用户要求盲推或禁用既往反馈时:
1. 禁止调用用户此前提供的人生事件、校时反馈、对错判断、职业身份、关系状态、偏好描述。
2. 只允许使用出生参数、当前项目现跑出的原始数据、已分级 source pack、MEVG 外部证据和真实案例校准层。
3. 输出必须声明:
- `User Feedback Isolation: used`
- 使用了哪些数据源
- 明确排除了哪些会话反馈类型
4. 若系统无法保证隔离,必须写 `blocked`,不得输出伪盲推。
### 0.3 具体事件选项协议
校时、应期、转型、婚恋、事业机会、财富事件不得只问用户"你感觉像不像"或"有没有变化"。
必须改成可选择的具体事件格式:
```markdown
| 时间窗口 | 事件选项 | 技术来源 | 用途 |
|---|---|---|---|
| YYYY-MM-DD 到 YYYY-MM-DD | A. 搬家/换住处;B. 工作启动;C. 关系断联 | Dasha + Transit + Varga | 校验/预测/置信度调整 |
```
要求:
- 每个窗口至少给出 2-4 个可判断事件选项。
- 事件必须落到现实层面:入职、搬家、签约、付款、断联、公开、培训班更换、项目暂停、住处/通勤变化等。
- 不得只给心理状态、抽象主题或"能量变化"。
- 用户选择后,只能用于后续校准;不能倒灌污染"盲推模式"。
### 0.4 证据先行,结论最后
高严谨解盘必须按以下顺序组织,不得先下结论再找理由:
1. 原始 D1 + 三重参考引擎边界
2. 功能性吉凶星
3. 行星力量:Shadbala / Vimsopaka / Avastha
4. Yoga / Dosha
5. JaiminiAK / AmK / DK / UL / A10 / Argala
6. 分盘:按问题域调取 D9 / D10 / D2 / D4 / D7 / D12 / D20 / D24 / D30 / D60
7. 多大运:Vimshottari / Narayana / Yogini / Kalachakra / Jaimini
8. Transit + VedAstro range scan
9. Tajika 年运
10. MEVG + 真实案例校准
11. 最后才输出事业、财富、婚恋、健康、迁移等结论
### 0.5 相似案例分层对标
真实案例不得只因为"同主题"就拿来类比。必须给出相似层级:
| 层级 | 含义 | 置信度作用 |
|---|---|---|
| L0 同主题 | 都是婚恋/事业/财富案例,但星盘和运势未证明相似 | 只能作背景,不得推断 |
| L1 D1 结构相似 | Lagna、关键宫主、功能吉凶、行星落宫或尊严有相似点 | 可作弱参考 |
| L2 分盘相似 | D9/D10/D2 等对应分盘支持相同主题 | 可提高主题置信度 |
| L3 Dasha 功能相似 | 不是同一颗星也可以,但必须功能等价,如旧系统瓦解、异地网络、长期责任启动 | 可作阶段类比 |
| L4 事件机制相似 | 真实案例中发生了可验证的节点,如离开旧组织、获得项目、迁移、收入来源变化 | 可校准事件形态 |
| L5 物质支撑相似 | 收入来源、平台、组织资源、合作关系、家庭/伴侣支持等现实条件相似 | 才能推断"生活会如何变好" |
输出案例时必须说明:
- 这个案例和命主在哪些层相似
- 哪些层不相似
- 哪些内容可迁移
- 哪些内容不可迁移
- 因不相似而降低了哪部分置信度
### 0.6 反例与用户排除案例处理
- 反例不能静默删除;必须标注它为什么是反例、它压低了哪个判断。
- 若用户明确说"不要考虑某个案例",该案例标记为 `user-excluded`,不进入主校准,但保留为审计记录。
- 正例不能单独决定结论;必须经过分盘、大运、事件机制和 MEVG 仲裁。
- 单一名人案例只能校准"事件机制",不得复制成用户个人命运模板。
### 0.7 转型与机会的现实机制检查
当判断事业转型、婚恋落实、财富改善或人生阶段转折时,必须追问并输出"机会如何落地",至少拆成:
1. 旧系统断裂:离开组织、旧项目停摆、关系断联、身份失效。
2. 过渡平台:课程、讲座、试稿、短项目、朋友介绍、异地网络、线上发布。
3. 资源入口:谁提供机会,平台是什么,收入从哪里来。
4. 责任测试:合同、制作、交付、管理、公开评价、长期责任。
5. 结果显化:付款、职位、署名、公开关系、稳定合作、可重复收入。
若无法证明"资源入口"或"收入来源",不得说"情况会变好",只能说"有转向信号但物质改善待验证"。
### 0.8 时间节点输出粒度
所有预测窗口必须拆成不同层级:
| 节点 | 含义 |
|---|---|
| Contact | 初次接触、消息、介绍、线索出现 |
| Activation | 开始行动、沟通密集、试稿/面试/约见 |
| Confirmation | 确认合作、确认关系、确认资源 |
| Manifestation | 公开、到账、签约、入职、搬迁完成 |
| Responsibility Test | 压力测试、延期、责任加重、现实磨合 |
禁止把这些全部混成一句"会有机会"或"会确定关系"。
--- ---
+55
View File
@@ -58,6 +58,57 @@ Every Level 2+ chart reading must include `MEVG / Global Web Evidence` and
--- ---
## 0.7 User-Led Reading Calibration Gate
This gate turns the user's follow-up interrogation into workflow control. It is
not a personality preference; it prevents vague readings, memory-based
anchoring, and weak case analogies.
Trigger this gate when the user asks any of the following:
- whether a technique, source layer, oracle, or divisional chart was omitted;
- for a blind reading that excludes prior life events, feedback, or corrections;
- for concrete time/event options instead of conceptual questions;
- for real case comparison, global-web evidence, or a named analog case;
- why a timing claim was made, especially when a case dasha differs from the
native's dasha.
When active, the reading must complete or explicitly block these controls:
1. `User Feedback Isolation`: if blind mode is requested, exclude prior
biographical feedback, rectification choices, and user corrections from the
interpretive reasoning. Use only birth inputs, current engine data, graded
source packs, MEVG packets, and real-case calibration records.
2. `Concrete Time/Event Options`: for rectification, timing, opportunity, and
event prediction, output selectable date windows and concrete event options.
Do not ask vague subjective questions such as "does this feel like you?"
3. `Evidence-First / Conclusion-Last`: show raw chart layers, strength layers,
dasha/transit/Tajika layers, MEVG, and real-case calibration before the final
fortune judgment.
4. `Similarity-Weighted Case Calibration`: classify each real case by similarity
layer instead of treating same-topic cases as equal evidence.
5. `Transferability Boundary`: state which part of an analog case transfers,
which part does not, and how the mismatch changes confidence.
6. `Counterexample Handling`: mark counterexamples, user-excluded cases, and
obsolete cases explicitly. Do not silently remove inconvenient cases.
### Similarity layers for real cases
| Layer | Meaning | Use |
|---|---|---|
| L0 same-domain only | Same broad topic, but no proven chart or dasha similarity | Background only |
| L1 D1 structure | Lagna, house lords, functional benefic/malefic roles, dignity, or house themes align | Weak support |
| L2 divisional support | Relevant D9/D10/D2/D4/D7/D12 etc. supports the same theme | Theme confidence |
| L3 functional dasha | Dasha periods play comparable functions even when the planets differ | Stage comparison |
| L4 verified event mechanism | Public biography or benchmark record shows a concrete event mechanism | Event-shape calibration |
| L5 material substrate | Income source, platform, institution, spouse/family support, or network structure is comparable | Required for material-outcome claims |
Analog cases cannot be used as prophecy. They may calibrate mechanism and
confidence only after the similarity layer and transferability boundary are
declared.
---
## 1. Question router ## 1. Question router
| User intent | Route | Required depth | | User intent | Route | Required depth |
@@ -235,6 +286,10 @@ Every Level 2+ output must include this table near the end.
| Argala | Used / not used | ... | ... | | Argala | Used / not used | ... | ... |
| KP / Sub-lord | Used / not required / unavailable | ... | ... | | KP / Sub-lord | Used / not required / unavailable | ... | ... |
| Historical verification | Used / not provided | ... | ... | | Historical verification | Used / not provided | ... | ... |
| User Feedback Isolation | Used / not requested / blocked | Blind-mode exclusion of prior biography, rectification feedback, and user corrections | Required when user asks for blind reading; blocked if isolation cannot be guaranteed |
| Concrete Time/Event Options | Used / not required / blocked | Date windows with selectable concrete event options | Required for rectification and timing calibration; lowers precision if omitted |
| Similarity-Weighted Case Calibration | Used / blocked / case gap | L0-L5 similarity layer for each analog case | Same-topic cases alone cannot raise confidence |
| Transferability Boundary | Used / blocked / not applicable | What transfers, what does not, and why | Prevents copying a celebrity or benchmark story into the native's forecast |
| MEVG / Global Web Evidence | Used / blocked / exempt for pure calculation | Source tier, searches, conflict arbitration | Mandatory for all chart interpretation readings; blocked or downgraded if omitted | | MEVG / Global Web Evidence | Used / blocked / exempt for pure calculation | Source tier, searches, conflict arbitration | Mandatory for all chart interpretation readings; blocked or downgraded if omitted |
| Real Case Calibration | Used / blocked / case gap | Real case, benchmark case, or documented lack of matching cases | Cap confidence when no comparable case evidence is available | | Real Case Calibration | Used / blocked / case gap | Real case, benchmark case, or documented lack of matching cases | Cap confidence when no comparable case evidence is available |
@@ -0,0 +1,63 @@
#!/usr/bin/env python3
"""Regression tests for user-led Jyotish reading calibration guidance."""
from __future__ import annotations
from pathlib import Path
ROOT = Path(__file__).resolve().parents[1]
AI_WORKFLOW = ROOT / "references" / "ai-reading-workflow-prompt.md"
STRICT_ROUTER = ROOT / "references" / "strict-workflow-router.md"
def test_ai_workflow_contains_user_interrogation_calibration_protocol() -> None:
text = AI_WORKFLOW.read_text(encoding="utf-8")
required_phrases = [
"用户追问校准与相似案例对标协议",
"盲推隔离模式",
"具体事件选项协议",
"证据先行,结论最后",
"相似案例分层对标",
"反例与用户排除案例处理",
"转型与机会的现实机制检查",
"时间节点输出粒度",
"User Feedback Isolation: used",
"Contact",
"Activation",
"Confirmation",
"Manifestation",
"Responsibility Test",
]
for phrase in required_phrases:
assert phrase in text
def test_strict_router_requires_user_led_calibration_audit_rows() -> None:
text = STRICT_ROUTER.read_text(encoding="utf-8")
required_phrases = [
"User-Led Reading Calibration Gate",
"User Feedback Isolation",
"Concrete Time/Event Options",
"Evidence-First / Conclusion-Last",
"Similarity-Weighted Case Calibration",
"Transferability Boundary",
"Counterexample Handling",
"L0 same-domain only",
"L5 material substrate",
"Analog cases cannot be used as prophecy",
]
for phrase in required_phrases:
assert phrase in text
def test_case_calibration_requires_more_than_same_domain() -> None:
text = STRICT_ROUTER.read_text(encoding="utf-8")
assert "Same-topic cases alone cannot raise confidence" in text
assert "Required for material-outcome claims" in text
assert "Do not ask vague subjective questions" in text