fix(rectification): fold D24 into education refine and score family D3
Window scan now drives d5_refine when D24 changes, family events use D3, and pada/Hora/Ghati are display-only. New cases bind Skill 10.0.7 without unique-minute confirmation. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -89,4 +89,4 @@ export function evidenceWritesAllowed(
|
||||
export const MAX_RESUMABLE_CASES_PER_USER = 1;
|
||||
|
||||
export const RECTIFICATION_SKILL_NAME = "jyotish-birth-time-rectification";
|
||||
export const RECTIFICATION_SKILL_VERSION = "10.0.6";
|
||||
export const RECTIFICATION_SKILL_VERSION = "10.0.7";
|
||||
|
||||
@@ -339,7 +339,7 @@ export function buildMethodFollowupPlan(input: {
|
||||
ask_theme: "education_style",
|
||||
domain: "education",
|
||||
kind_hint: "education_milestone",
|
||||
user_prompt_hint: "成就盘仍会换升。可以再补一件记得大概时间的学业、考试或被委以责任的变化;同一件事会对照本命五宫和 D5,不要贴类型标签。",
|
||||
user_prompt_hint: "成就盘或学业盘仍会换升。可以再补一件记得大概时间的学业、考试或被委以责任的变化;同一件事会对照本命五宫、D5 和 D24,不要贴类型标签。",
|
||||
source: "precision_stage",
|
||||
});
|
||||
} else if (!relationshipCovered && !declined.has("relationship")) {
|
||||
@@ -369,7 +369,7 @@ export function buildMethodFollowupPlan(input: {
|
||||
ask_theme: "family_event",
|
||||
domain: "family",
|
||||
kind_hint: "family_event",
|
||||
user_prompt_hint: "可以先说一段记得大概时间的家人相关变化。同一件事会对照 D12 父母盘和 D7 子女盘。",
|
||||
user_prompt_hint: "可以先说一段记得大概时间的家人相关变化。同一件事会对照 D12 父母盘、D7 子女盘和 D3 兄弟盘。",
|
||||
source: "method_coverage",
|
||||
});
|
||||
} else if (!appearanceCovered && !declined.has("appearance")) {
|
||||
@@ -436,7 +436,7 @@ export function buildMethodFollowupPlan(input: {
|
||||
ask_theme: "education_style",
|
||||
domain: "education",
|
||||
kind_hint: "education_milestone",
|
||||
user_prompt_hint: "当前候选在学业或成就主题上仍分不开,可以再补一件记得大概时间的学业、考试或被委以责任的变化;不要贴类型标签。",
|
||||
user_prompt_hint: "当前候选在学业或成就主题上仍分不开,可以再补一件记得大概时间的学业、考试或被委以责任的变化;不要贴类型标签。同一件事会对照 D5 和 D24。",
|
||||
source: "varga_observation",
|
||||
});
|
||||
} else if ((d12?.candidates_differ || d7?.candidates_differ) && !declined.has("family")) {
|
||||
@@ -446,7 +446,7 @@ export function buildMethodFollowupPlan(input: {
|
||||
ask_theme: "family_event",
|
||||
domain: "family",
|
||||
kind_hint: "family_event",
|
||||
user_prompt_hint: "当前候选在家人主题上仍分不开,可以再补一件记得大概时间的家人变化。同一件事会对照 D12 和 D7。",
|
||||
user_prompt_hint: "当前候选在家人主题上仍分不开,可以再补一件记得大概时间的家人变化。同一件事会对照 D12、D7 和 D3。",
|
||||
source: "varga_observation",
|
||||
});
|
||||
} else if (input.nakshatraBoundary?.near_boundary) {
|
||||
|
||||
@@ -52,6 +52,7 @@ export type PublicRectificationTool =
|
||||
export const PUBLIC_RECTIFICATION_METHODS = [
|
||||
"d1-rashi",
|
||||
"d2-hora",
|
||||
"d3-drekkana",
|
||||
"d4-chaturthamsha",
|
||||
"d5-panchamsha",
|
||||
"d7-saptamsha",
|
||||
|
||||
@@ -16,9 +16,13 @@ const LAYER_LABEL: Record<WindowScanLayer, string> = {
|
||||
d5: "D5",
|
||||
d7: "D7",
|
||||
d12: "D12",
|
||||
d24: "D24",
|
||||
pada: "Nakshatra pada",
|
||||
hora: "Hora Lagna",
|
||||
ghati: "Ghati Lagna",
|
||||
};
|
||||
|
||||
export type WindowScanLayer = "d1" | "d9" | "d10" | "d4" | "d5" | "d7" | "d12";
|
||||
export type WindowScanLayer = "d1" | "d9" | "d10" | "d4" | "d5" | "d7" | "d12" | "d24" | "pada" | "hora" | "ghati";
|
||||
|
||||
export type WindowScanTransition = Readonly<{
|
||||
layer: WindowScanLayer;
|
||||
@@ -117,7 +121,19 @@ export function parseWindowScanTransitions(value: unknown): readonly WindowScanT
|
||||
const at = asTime(row?.at);
|
||||
if (
|
||||
!row
|
||||
|| (layer !== "d1" && layer !== "d9" && layer !== "d10" && layer !== "d4" && layer !== "d5" && layer !== "d7" && layer !== "d12")
|
||||
|| (
|
||||
layer !== "d1"
|
||||
&& layer !== "d9"
|
||||
&& layer !== "d10"
|
||||
&& layer !== "d4"
|
||||
&& layer !== "d5"
|
||||
&& layer !== "d7"
|
||||
&& layer !== "d12"
|
||||
&& layer !== "d24"
|
||||
&& layer !== "pada"
|
||||
&& layer !== "hora"
|
||||
&& layer !== "ghati"
|
||||
)
|
||||
|| !at
|
||||
) continue;
|
||||
const key = `${layer}:${at}`;
|
||||
|
||||
@@ -22,6 +22,7 @@ export type WindowScan = Readonly<{
|
||||
d5_lagna_count: number;
|
||||
d7_lagna_count: number;
|
||||
d12_lagna_count: number;
|
||||
d24_lagna_count: number;
|
||||
d1_candidates_differ: boolean;
|
||||
d9_candidates_differ: boolean;
|
||||
d10_candidates_differ: boolean;
|
||||
@@ -29,6 +30,7 @@ export type WindowScan = Readonly<{
|
||||
d5_candidates_differ: boolean;
|
||||
d7_candidates_differ: boolean;
|
||||
d12_candidates_differ: boolean;
|
||||
d24_candidates_differ: boolean;
|
||||
transitions: readonly WindowScanTransition[];
|
||||
}>;
|
||||
|
||||
@@ -72,6 +74,7 @@ export function parseWindowScan(value: unknown): WindowScan | null {
|
||||
const d5Count = optionalCount(row.d5_lagna_count);
|
||||
const d7Count = optionalCount(row.d7_lagna_count);
|
||||
const d12Count = optionalCount(row.d12_lagna_count);
|
||||
const d24Count = optionalCount(row.d24_lagna_count);
|
||||
const d9Differ = row.d9_candidates_differ === true || d9Count > 1;
|
||||
const d10Differ = row.d10_candidates_differ === true || d10Count > 1;
|
||||
const d1Differ = row.d1_candidates_differ === true || d1Count > 1;
|
||||
@@ -79,6 +82,7 @@ export function parseWindowScan(value: unknown): WindowScan | null {
|
||||
const d5Differ = row.d5_candidates_differ === true || d5Count > 1;
|
||||
const d7Differ = row.d7_candidates_differ === true || d7Count > 1;
|
||||
const d12Differ = row.d12_candidates_differ === true || d12Count > 1;
|
||||
const d24Differ = row.d24_candidates_differ === true || d24Count > 1;
|
||||
return {
|
||||
scanned: true,
|
||||
confirmation_allowed: false,
|
||||
@@ -90,6 +94,7 @@ export function parseWindowScan(value: unknown): WindowScan | null {
|
||||
d5_lagna_count: d5Count,
|
||||
d7_lagna_count: d7Count,
|
||||
d12_lagna_count: d12Count,
|
||||
d24_lagna_count: d24Count,
|
||||
d1_candidates_differ: d1Differ,
|
||||
d9_candidates_differ: d9Differ,
|
||||
d10_candidates_differ: d10Differ,
|
||||
@@ -97,6 +102,7 @@ export function parseWindowScan(value: unknown): WindowScan | null {
|
||||
d5_candidates_differ: d5Differ,
|
||||
d7_candidates_differ: d7Differ,
|
||||
d12_candidates_differ: d12Differ,
|
||||
d24_candidates_differ: d24Differ,
|
||||
transitions: parseWindowScanTransitions(row.transitions),
|
||||
};
|
||||
}
|
||||
@@ -129,8 +135,8 @@ export function internalObservationsFromWindowScan(
|
||||
},
|
||||
{
|
||||
layer: "d5",
|
||||
candidates_differ: scan.d5_candidates_differ,
|
||||
ask_theme: scan.d5_candidates_differ ? "education_style" : null,
|
||||
candidates_differ: scan.d5_candidates_differ || scan.d24_candidates_differ,
|
||||
ask_theme: scan.d5_candidates_differ || scan.d24_candidates_differ ? "education_style" : null,
|
||||
},
|
||||
{
|
||||
layer: "d7",
|
||||
|
||||
@@ -3,6 +3,7 @@ import type { PublicRectificationMethod } from "./rectification-agentic/v9/publi
|
||||
export const PUBLIC_RECTIFICATION_METHOD_LABELS: Readonly<Record<PublicRectificationMethod, string>> = {
|
||||
"d1-rashi": "D1 本命盘",
|
||||
"d2-hora": "D2 财帛分盘",
|
||||
"d3-drekkana": "D3 兄弟分盘",
|
||||
"d4-chaturthamsha": "D4 迁移分盘",
|
||||
"d5-panchamsha": "D5 成就分盘",
|
||||
"d7-saptamsha": "D7 子女分盘",
|
||||
|
||||
Reference in New Issue
Block a user