fix(engine): pair double-transit D1+D9 targets by identity, not name digits (BUG-1061)

Every D9 target name contains the "9" of "D9", so the digit comparison never
paired D1 N宫 with D9_N宫 and, for house 9, paired D1 9宫 with any D9 planet
target. Targets now carry structured metadata (layer/kind/house/planet); the
cross-layer loop pairs only the same house or targets that both point at the
D1 house-N lord. Target names and D1/D9/CL layer results are unchanged
(D1/CL golden regenerated byte-identical); 48 samples: cross entries 31 -> 38.
Evidence-card golden regenerated with the capture script.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017eEAG8HD3mm8gsKXgk8uU8
This commit is contained in:
Jesse_Chen
2026-09-27 19:08:07 +08:00
co-authored by Claude Opus 5.5
parent 037cd1aa1d
commit fb543d3849
8 changed files with 370 additions and 17 deletions
+2
View File
@@ -104,6 +104,8 @@ CORE_PYTEST_TARGETS = [
"tests/test_consultation_native_layers.py",
# BUG-1060: Double Transit PAC D9 targets use the D9 signs their labels name.
"tests/test_double_transit_d9_targets.py",
# BUG-1061: D1+D9 cross-layer entries pair targets by structured identity, not name digits.
"tests/test_double_transit_cross_layer_pairing.py",
"tests/test_relationship_event_class_evidence.py",
"tests/test_thematic_dasha_info_source.py",
"tests/test_report_orchestrator_marriage_timing.py",