feat(rectification): add refinement packet without unique-minute claims

Surface D9/D10 change minutes, event-dasha match copy, dual-dasha conflict, and a post-adopt consult handoff so users can keep narrowing or start a reading from a representative time.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Jesse_Chen
2026-08-20 07:47:10 +08:00
co-authored by Cursor
parent 464bc33202
commit a3196584d2
19 changed files with 1384 additions and 40 deletions
+24
View File
@@ -12,6 +12,7 @@ from scripts.rectification.contracts import (
is_scoreable_event,
)
from scripts.rectification.house_table import compact_house_table_from_contexts
from scripts.rectification.refinement_packet import build_refinement_packet
from scripts.rectification.scoring_service import precision_weight
POLICY_VERSION = "rectification-candidate-policy-v2"
@@ -204,6 +205,19 @@ def build_decision_receipt(
reasons = [*acceptance_reasons, *confirmation_reasons]
representative = candidate_decisions[0] if candidate_decisions else None
packet = build_refinement_packet(
request,
built,
representative_time=representative["time"] if representative else None,
candidate_times=[item["time"] for item in candidate_decisions],
)
if packet["dasha_agreement"]["status"] == "conflict":
if overall_confidence == "high":
overall_confidence = "medium"
elif overall_confidence == "medium":
overall_confidence = "low"
reasons.append("vimshottari_narayana_conflict")
confirmation_reasons.append("vimshottari_narayana_conflict")
exact_confirmation = {
"passed": False,
"fail_closed": True,
@@ -254,6 +268,16 @@ def build_decision_receipt(
)
if house_table:
receipt["house_table"] = house_table
receipt.update({
"window_scan": packet["window_scan"],
"event_dasha_ledger": packet["event_dasha_ledger"],
"dasha_agreement": packet["dasha_agreement"],
"lagna_contrast": packet["lagna_contrast"],
"nakshatra_boundary": packet["nakshatra_boundary"],
"precision_stage": packet["precision_stage"],
"oos_blind_prompts": packet["oos_blind_prompts"],
"unique_minute_claim": False,
})
return receipt