Add user-led reading calibration protocol
This commit is contained in:
@@ -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. Jaimini:AK / 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 | 压力测试、延期、责任加重、现实磨合 |
|
||||||
|
|
||||||
|
禁止把这些全部混成一句"会有机会"或"会确定关系"。
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
Reference in New Issue
Block a user