fix(rectification): anchor candidate windows to civil dates across midnight
Carry explicit local date intervals instead of inferring the day from clock order. Cluster width, delivery, adoption, and reports keep the actual civil date; adopted date is stored separately from the reported birth_date. Algorithm identity is scoring-9 / spec-v5. Scoring weights, confirmation thresholds, and Skill version are unchanged. Isolated Linux final-3 gates passed; four pre-existing Python failures remain. This is not a production release.
This commit is contained in:
@@ -0,0 +1,461 @@
|
||||
{
|
||||
"provenance": {
|
||||
"kind": "unmocked_native_static_contexts",
|
||||
"facts": "explicitly_fictional",
|
||||
"generator": "compute_candidate_static_contexts -> window_scan; expected signs directly from native context features"
|
||||
},
|
||||
"request": {
|
||||
"birth_date": "2000-03-01",
|
||||
"start_time": "23:58",
|
||||
"end_time": "00:02",
|
||||
"lat": 0.0,
|
||||
"lon": 0.0,
|
||||
"tz": 0.0,
|
||||
"candidate_intervals": [
|
||||
{
|
||||
"start_at": "2000-02-29T23:58",
|
||||
"end_at": "2000-03-01T00:02"
|
||||
}
|
||||
],
|
||||
"events": [
|
||||
{
|
||||
"id": "00000000-0000-4000-8000-000000000001",
|
||||
"domain": "career",
|
||||
"event_kind": "career_entry",
|
||||
"date_start": "2020-01-01",
|
||||
"date_end": "2020-01-01",
|
||||
"precision": "day",
|
||||
"summary": "Fictional career entry for date-contract testing"
|
||||
}
|
||||
]
|
||||
},
|
||||
"scan": {
|
||||
"scanned": true,
|
||||
"confirmation_allowed": false,
|
||||
"unique_minute_claim": false,
|
||||
"transitions": [
|
||||
{
|
||||
"layer": "d1",
|
||||
"at": "23:58",
|
||||
"user_meaning": "本命上升 在这一段起点的状态",
|
||||
"candidate_date": "2000-02-29",
|
||||
"window_index": 0,
|
||||
"window_offset_minutes": 0,
|
||||
"segment_index": 0,
|
||||
"segment_start_at": "2000-02-29T23:58",
|
||||
"segment_end_at": "2000-03-01T00:02",
|
||||
"segment_start": true,
|
||||
"from_sign": "天蝎座",
|
||||
"to_sign": "天蝎座"
|
||||
},
|
||||
{
|
||||
"layer": "d9",
|
||||
"at": "23:58",
|
||||
"user_meaning": "D9 在这一段起点的状态",
|
||||
"candidate_date": "2000-02-29",
|
||||
"window_index": 0,
|
||||
"window_offset_minutes": 0,
|
||||
"segment_index": 0,
|
||||
"segment_start_at": "2000-02-29T23:58",
|
||||
"segment_end_at": "2000-03-01T00:02",
|
||||
"segment_start": true,
|
||||
"from_sign": "射手座",
|
||||
"to_sign": "射手座"
|
||||
},
|
||||
{
|
||||
"layer": "d10",
|
||||
"at": "23:58",
|
||||
"user_meaning": "D10 在这一段起点的状态",
|
||||
"candidate_date": "2000-02-29",
|
||||
"window_index": 0,
|
||||
"window_offset_minutes": 0,
|
||||
"segment_index": 0,
|
||||
"segment_start_at": "2000-02-29T23:58",
|
||||
"segment_end_at": "2000-03-01T00:02",
|
||||
"segment_start": true,
|
||||
"from_sign": "射手座",
|
||||
"to_sign": "射手座"
|
||||
},
|
||||
{
|
||||
"layer": "d4",
|
||||
"at": "23:58",
|
||||
"user_meaning": "D4 在这一段起点的状态",
|
||||
"candidate_date": "2000-02-29",
|
||||
"window_index": 0,
|
||||
"window_offset_minutes": 0,
|
||||
"segment_index": 0,
|
||||
"segment_start_at": "2000-02-29T23:58",
|
||||
"segment_end_at": "2000-03-01T00:02",
|
||||
"segment_start": true,
|
||||
"from_sign": "金牛座",
|
||||
"to_sign": "金牛座"
|
||||
},
|
||||
{
|
||||
"layer": "d5",
|
||||
"at": "23:58",
|
||||
"user_meaning": "D5 在这一段起点的状态",
|
||||
"candidate_date": "2000-02-29",
|
||||
"window_index": 0,
|
||||
"window_offset_minutes": 0,
|
||||
"segment_index": 0,
|
||||
"segment_start_at": "2000-02-29T23:58",
|
||||
"segment_end_at": "2000-03-01T00:02",
|
||||
"segment_start": true,
|
||||
"from_sign": "处女座",
|
||||
"to_sign": "处女座"
|
||||
},
|
||||
{
|
||||
"layer": "d7",
|
||||
"at": "23:58",
|
||||
"user_meaning": "D7 在这一段起点的状态",
|
||||
"candidate_date": "2000-02-29",
|
||||
"window_index": 0,
|
||||
"window_offset_minutes": 0,
|
||||
"segment_index": 0,
|
||||
"segment_start_at": "2000-02-29T23:58",
|
||||
"segment_end_at": "2000-03-01T00:02",
|
||||
"segment_start": true,
|
||||
"from_sign": "处女座",
|
||||
"to_sign": "处女座"
|
||||
},
|
||||
{
|
||||
"layer": "d12",
|
||||
"at": "23:58",
|
||||
"user_meaning": "D12 在这一段起点的状态",
|
||||
"candidate_date": "2000-02-29",
|
||||
"window_index": 0,
|
||||
"window_offset_minutes": 0,
|
||||
"segment_index": 0,
|
||||
"segment_start_at": "2000-02-29T23:58",
|
||||
"segment_end_at": "2000-03-01T00:02",
|
||||
"segment_start": true,
|
||||
"from_sign": "双子座",
|
||||
"to_sign": "双子座"
|
||||
},
|
||||
{
|
||||
"layer": "d24",
|
||||
"at": "23:58",
|
||||
"user_meaning": "D24 在这一段起点的状态",
|
||||
"candidate_date": "2000-02-29",
|
||||
"window_index": 0,
|
||||
"window_offset_minutes": 0,
|
||||
"segment_index": 0,
|
||||
"segment_start_at": "2000-02-29T23:58",
|
||||
"segment_end_at": "2000-03-01T00:02",
|
||||
"segment_start": true,
|
||||
"from_sign": "处女座",
|
||||
"to_sign": "处女座"
|
||||
},
|
||||
{
|
||||
"layer": "d2",
|
||||
"at": "23:58",
|
||||
"user_meaning": "D2 在这一段起点的状态",
|
||||
"candidate_date": "2000-02-29",
|
||||
"window_index": 0,
|
||||
"window_offset_minutes": 0,
|
||||
"segment_index": 0,
|
||||
"segment_start_at": "2000-02-29T23:58",
|
||||
"segment_end_at": "2000-03-01T00:02",
|
||||
"segment_start": true,
|
||||
"from_sign": "狮子座",
|
||||
"to_sign": "狮子座"
|
||||
},
|
||||
{
|
||||
"layer": "d11",
|
||||
"at": "23:58",
|
||||
"user_meaning": "D11 在这一段起点的状态",
|
||||
"candidate_date": "2000-02-29",
|
||||
"window_index": 0,
|
||||
"window_offset_minutes": 0,
|
||||
"segment_index": 0,
|
||||
"segment_start_at": "2000-02-29T23:58",
|
||||
"segment_end_at": "2000-03-01T00:02",
|
||||
"segment_start": true,
|
||||
"from_sign": "摩羯座",
|
||||
"to_sign": "摩羯座"
|
||||
},
|
||||
{
|
||||
"layer": "d30",
|
||||
"at": "23:58",
|
||||
"user_meaning": "D30 在这一段起点的状态",
|
||||
"candidate_date": "2000-02-29",
|
||||
"window_index": 0,
|
||||
"window_offset_minutes": 0,
|
||||
"segment_index": 0,
|
||||
"segment_start_at": "2000-02-29T23:58",
|
||||
"segment_end_at": "2000-03-01T00:02",
|
||||
"segment_start": true,
|
||||
"from_sign": "摩羯座",
|
||||
"to_sign": "摩羯座"
|
||||
},
|
||||
{
|
||||
"layer": "pada",
|
||||
"at": "23:58",
|
||||
"user_meaning": "Nakshatra pada 在这一段起点的状态",
|
||||
"candidate_date": "2000-02-29",
|
||||
"window_index": 0,
|
||||
"window_offset_minutes": 0,
|
||||
"segment_index": 0,
|
||||
"segment_start_at": "2000-02-29T23:58",
|
||||
"segment_end_at": "2000-03-01T00:02",
|
||||
"segment_start": true
|
||||
},
|
||||
{
|
||||
"layer": "hora",
|
||||
"at": "23:58",
|
||||
"user_meaning": "Hora Lagna 在这一段起点的状态",
|
||||
"candidate_date": "2000-02-29",
|
||||
"window_index": 0,
|
||||
"window_offset_minutes": 0,
|
||||
"segment_index": 0,
|
||||
"segment_start_at": "2000-02-29T23:58",
|
||||
"segment_end_at": "2000-03-01T00:02",
|
||||
"segment_start": true,
|
||||
"from_sign": "狮子座",
|
||||
"to_sign": "狮子座"
|
||||
},
|
||||
{
|
||||
"layer": "ghati",
|
||||
"at": "23:58",
|
||||
"user_meaning": "Ghati Lagna 在这一段起点的状态",
|
||||
"candidate_date": "2000-02-29",
|
||||
"window_index": 0,
|
||||
"window_offset_minutes": 0,
|
||||
"segment_index": 0,
|
||||
"segment_start_at": "2000-02-29T23:58",
|
||||
"segment_end_at": "2000-03-01T00:02",
|
||||
"segment_start": true,
|
||||
"from_sign": "狮子座",
|
||||
"to_sign": "狮子座"
|
||||
},
|
||||
{
|
||||
"layer": "bhava",
|
||||
"at": "23:58",
|
||||
"user_meaning": "Bhava Lagna 在这一段起点的状态",
|
||||
"candidate_date": "2000-02-29",
|
||||
"window_index": 0,
|
||||
"window_offset_minutes": 0,
|
||||
"segment_index": 0,
|
||||
"segment_start_at": "2000-02-29T23:58",
|
||||
"segment_end_at": "2000-03-01T00:02",
|
||||
"segment_start": true,
|
||||
"from_sign": "摩羯座",
|
||||
"to_sign": "摩羯座"
|
||||
},
|
||||
{
|
||||
"layer": "pranapada",
|
||||
"at": "23:58",
|
||||
"user_meaning": "Pranapada Lagna 在这一段起点的状态",
|
||||
"candidate_date": "2000-02-29",
|
||||
"window_index": 0,
|
||||
"window_offset_minutes": 0,
|
||||
"segment_index": 0,
|
||||
"segment_start_at": "2000-02-29T23:58",
|
||||
"segment_end_at": "2000-03-01T00:02",
|
||||
"segment_start": true,
|
||||
"from_sign": "射手座",
|
||||
"to_sign": "射手座"
|
||||
},
|
||||
{
|
||||
"layer": "kp1",
|
||||
"at": "23:58",
|
||||
"user_meaning": "KP 1宫子主 在这一段起点的状态",
|
||||
"candidate_date": "2000-02-29",
|
||||
"window_index": 0,
|
||||
"window_offset_minutes": 0,
|
||||
"segment_index": 0,
|
||||
"segment_start_at": "2000-02-29T23:58",
|
||||
"segment_end_at": "2000-03-01T00:02",
|
||||
"segment_start": true,
|
||||
"from_sign": "天秤座",
|
||||
"to_sign": "天秤座"
|
||||
},
|
||||
{
|
||||
"layer": "kp4",
|
||||
"at": "23:58",
|
||||
"user_meaning": "KP 4宫子主 在这一段起点的状态",
|
||||
"candidate_date": "2000-02-29",
|
||||
"window_index": 0,
|
||||
"window_offset_minutes": 0,
|
||||
"segment_index": 0,
|
||||
"segment_start_at": "2000-02-29T23:58",
|
||||
"segment_end_at": "2000-03-01T00:02",
|
||||
"segment_start": true,
|
||||
"from_sign": "射手座",
|
||||
"to_sign": "射手座"
|
||||
},
|
||||
{
|
||||
"layer": "kp7",
|
||||
"at": "23:58",
|
||||
"user_meaning": "KP 7宫子主 在这一段起点的状态",
|
||||
"candidate_date": "2000-02-29",
|
||||
"window_index": 0,
|
||||
"window_offset_minutes": 0,
|
||||
"segment_index": 0,
|
||||
"segment_start_at": "2000-02-29T23:58",
|
||||
"segment_end_at": "2000-03-01T00:02",
|
||||
"segment_start": true,
|
||||
"from_sign": "天蝎座",
|
||||
"to_sign": "天蝎座"
|
||||
},
|
||||
{
|
||||
"layer": "kp10",
|
||||
"at": "23:58",
|
||||
"user_meaning": "KP 10宫子主 在这一段起点的状态",
|
||||
"candidate_date": "2000-02-29",
|
||||
"window_index": 0,
|
||||
"window_offset_minutes": 0,
|
||||
"segment_index": 0,
|
||||
"segment_start_at": "2000-02-29T23:58",
|
||||
"segment_end_at": "2000-03-01T00:02",
|
||||
"segment_start": true,
|
||||
"from_sign": "射手座",
|
||||
"to_sign": "射手座"
|
||||
},
|
||||
{
|
||||
"layer": "d10",
|
||||
"at": "23:59",
|
||||
"user_meaning": "D10 在 23:59 发生变化",
|
||||
"candidate_date": "2000-02-29",
|
||||
"window_index": 1,
|
||||
"window_offset_minutes": 1,
|
||||
"segment_index": 0,
|
||||
"segment_start_at": "2000-02-29T23:58",
|
||||
"segment_end_at": "2000-03-01T00:02",
|
||||
"from_sign": "射手座",
|
||||
"to_sign": "摩羯座"
|
||||
},
|
||||
{
|
||||
"layer": "d5",
|
||||
"at": "23:59",
|
||||
"user_meaning": "D5 在 23:59 发生变化",
|
||||
"candidate_date": "2000-02-29",
|
||||
"window_index": 1,
|
||||
"window_offset_minutes": 1,
|
||||
"segment_index": 0,
|
||||
"segment_start_at": "2000-02-29T23:58",
|
||||
"segment_end_at": "2000-03-01T00:02",
|
||||
"from_sign": "处女座",
|
||||
"to_sign": "天秤座"
|
||||
},
|
||||
{
|
||||
"layer": "kp1",
|
||||
"at": "23:59",
|
||||
"user_meaning": "KP 1宫子主 在 23:59 发生变化",
|
||||
"candidate_date": "2000-02-29",
|
||||
"window_index": 1,
|
||||
"window_offset_minutes": 1,
|
||||
"segment_index": 0,
|
||||
"segment_start_at": "2000-02-29T23:58",
|
||||
"segment_end_at": "2000-03-01T00:02",
|
||||
"from_sign": "天秤座",
|
||||
"to_sign": "射手座"
|
||||
},
|
||||
{
|
||||
"layer": "kp10",
|
||||
"at": "23:59",
|
||||
"user_meaning": "KP 10宫子主 在 23:59 发生变化",
|
||||
"candidate_date": "2000-02-29",
|
||||
"window_index": 1,
|
||||
"window_offset_minutes": 1,
|
||||
"segment_index": 0,
|
||||
"segment_start_at": "2000-02-29T23:58",
|
||||
"segment_end_at": "2000-03-01T00:02",
|
||||
"from_sign": "射手座",
|
||||
"to_sign": "金牛座"
|
||||
},
|
||||
{
|
||||
"layer": "d24",
|
||||
"at": "00:02",
|
||||
"user_meaning": "D24 在 00:02 发生变化",
|
||||
"candidate_date": "2000-03-01",
|
||||
"window_index": 4,
|
||||
"window_offset_minutes": 4,
|
||||
"segment_index": 0,
|
||||
"segment_start_at": "2000-02-29T23:58",
|
||||
"segment_end_at": "2000-03-01T00:02",
|
||||
"from_sign": "处女座",
|
||||
"to_sign": "天秤座"
|
||||
}
|
||||
],
|
||||
"d1_lagna_count": 1,
|
||||
"d1_candidates_differ": false,
|
||||
"d9_lagna_count": 1,
|
||||
"d9_candidates_differ": false,
|
||||
"d10_lagna_count": 2,
|
||||
"d10_candidates_differ": true,
|
||||
"d4_lagna_count": 1,
|
||||
"d4_candidates_differ": false,
|
||||
"d5_lagna_count": 2,
|
||||
"d5_candidates_differ": true,
|
||||
"d7_lagna_count": 1,
|
||||
"d7_candidates_differ": false,
|
||||
"d12_lagna_count": 1,
|
||||
"d12_candidates_differ": false,
|
||||
"d24_lagna_count": 2,
|
||||
"d24_candidates_differ": true,
|
||||
"d2_lagna_count": 1,
|
||||
"d2_candidates_differ": false,
|
||||
"d11_lagna_count": 1,
|
||||
"d11_candidates_differ": false,
|
||||
"d30_lagna_count": 1,
|
||||
"d30_candidates_differ": false,
|
||||
"pada_count": 1,
|
||||
"pada_candidates_differ": false,
|
||||
"hora_count": 1,
|
||||
"hora_candidates_differ": false,
|
||||
"ghati_count": 1,
|
||||
"ghati_candidates_differ": false,
|
||||
"bhava_count": 1,
|
||||
"bhava_candidates_differ": false,
|
||||
"pranapada_count": 1,
|
||||
"pranapada_candidates_differ": false,
|
||||
"kp1_count": 2,
|
||||
"kp1_candidates_differ": true,
|
||||
"kp4_count": 1,
|
||||
"kp4_candidates_differ": false,
|
||||
"kp7_count": 1,
|
||||
"kp7_candidates_differ": false,
|
||||
"kp10_count": 2,
|
||||
"kp10_candidates_differ": true,
|
||||
"d9_sign_names": [
|
||||
"射手座"
|
||||
],
|
||||
"d10_sign_names": [
|
||||
"射手座",
|
||||
"摩羯座"
|
||||
]
|
||||
},
|
||||
"expected_signs": {
|
||||
"23:58": {
|
||||
"d1": "天蝎座",
|
||||
"d9": "射手座",
|
||||
"d10": "射手座",
|
||||
"d24": "处女座"
|
||||
},
|
||||
"23:59": {
|
||||
"d1": "天蝎座",
|
||||
"d9": "射手座",
|
||||
"d10": "摩羯座",
|
||||
"d24": "处女座"
|
||||
},
|
||||
"00:00": {
|
||||
"d1": "天蝎座",
|
||||
"d9": "射手座",
|
||||
"d10": "摩羯座",
|
||||
"d24": "处女座"
|
||||
},
|
||||
"00:01": {
|
||||
"d1": "天蝎座",
|
||||
"d9": "射手座",
|
||||
"d10": "摩羯座",
|
||||
"d24": "处女座"
|
||||
},
|
||||
"00:02": {
|
||||
"d1": "天蝎座",
|
||||
"d9": "射手座",
|
||||
"d10": "摩羯座",
|
||||
"d24": "天秤座"
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user