Merge origin/main into agent-guided birth time rectification
This commit is contained in:
+3908
File diff suppressed because it is too large
Load Diff
+3766
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,883 @@
|
||||
{
|
||||
"scope": "western_real_case_calibration",
|
||||
"status": "calculated_not_predictive_validation",
|
||||
"case_id": "jobs_iphone_2007",
|
||||
"subject": "Steve Jobs",
|
||||
"event": {
|
||||
"date": "2007-01-09",
|
||||
"type": "career_breakthrough",
|
||||
"source": {
|
||||
"url": "https://www.apple.com/newsroom/2007/01/09Apple-Reinvents-the-Phone-with-iPhone/",
|
||||
"source_grade": "primary"
|
||||
}
|
||||
},
|
||||
"birth_source": {
|
||||
"url": "https://www.astro.com/adbvip/adbvip_02_24.htm",
|
||||
"source_grade": "primary",
|
||||
"time_accuracy_rating": "AA",
|
||||
"evidence_basis": "BC/BR in hand"
|
||||
},
|
||||
"layers": {
|
||||
"secondary_progressions": {
|
||||
"technique": "secondary_progressions",
|
||||
"status": "partial",
|
||||
"method": "one_ephemeris_day_per_tropical_year",
|
||||
"target_date": "2007-01-09",
|
||||
"target_local_time": "2007-01-09T00:00:00-08:00",
|
||||
"elapsed_tropical_years": 51.8729722,
|
||||
"progressed_julian_day_ut": 2435215.50838887,
|
||||
"natal_sun_longitude": 335.74814,
|
||||
"progressed_planets": {
|
||||
"sun": {
|
||||
"longitude": 27.200726,
|
||||
"sign": "Aries",
|
||||
"degree_in_sign": 27.200726,
|
||||
"speed_longitude": 0.97771866,
|
||||
"retrograde": false
|
||||
},
|
||||
"moon": {
|
||||
"longitude": 327.085209,
|
||||
"sign": "Aquarius",
|
||||
"degree_in_sign": 27.085209,
|
||||
"speed_longitude": 13.22736915,
|
||||
"retrograde": false
|
||||
},
|
||||
"mercury": {
|
||||
"longitude": 21.467043,
|
||||
"sign": "Aries",
|
||||
"degree_in_sign": 21.467043,
|
||||
"speed_longitude": 2.03176132,
|
||||
"retrograde": false
|
||||
},
|
||||
"venus": {
|
||||
"longitude": 352.062856,
|
||||
"sign": "Pisces",
|
||||
"degree_in_sign": 22.062856,
|
||||
"speed_longitude": 1.19645701,
|
||||
"retrograde": false
|
||||
},
|
||||
"mars": {
|
||||
"longitude": 64.755496,
|
||||
"sign": "Gemini",
|
||||
"degree_in_sign": 4.755496,
|
||||
"speed_longitude": 0.67328564,
|
||||
"retrograde": false
|
||||
},
|
||||
"jupiter": {
|
||||
"longitude": 111.475558,
|
||||
"sign": "Cancer",
|
||||
"degree_in_sign": 21.475558,
|
||||
"speed_longitude": 0.09538143,
|
||||
"retrograde": false
|
||||
},
|
||||
"saturn": {
|
||||
"longitude": 229.414858,
|
||||
"sign": "Scorpio",
|
||||
"degree_in_sign": 19.414858,
|
||||
"speed_longitude": -0.06655717,
|
||||
"retrograde": true
|
||||
},
|
||||
"uranus": {
|
||||
"longitude": 113.715663,
|
||||
"sign": "Cancer",
|
||||
"degree_in_sign": 23.715663,
|
||||
"speed_longitude": 0.01464552,
|
||||
"retrograde": false
|
||||
},
|
||||
"neptune": {
|
||||
"longitude": 206.868278,
|
||||
"sign": "Libra",
|
||||
"degree_in_sign": 26.868278,
|
||||
"speed_longitude": -0.02739973,
|
||||
"retrograde": true
|
||||
},
|
||||
"pluto": {
|
||||
"longitude": 144.383855,
|
||||
"sign": "Leo",
|
||||
"degree_in_sign": 24.383855,
|
||||
"speed_longitude": -0.00882106,
|
||||
"retrograde": true
|
||||
},
|
||||
"true_node": {
|
||||
"longitude": 268.467552,
|
||||
"sign": "Sagittarius",
|
||||
"degree_in_sign": 28.467552,
|
||||
"speed_longitude": -0.07938677,
|
||||
"retrograde": true
|
||||
}
|
||||
},
|
||||
"progressed_angles": {
|
||||
"status": "used",
|
||||
"method": "secondary_quotidian_progressed_date_same_location",
|
||||
"progressed_local_time": "1955-04-17T16:12:04.798161-08:00",
|
||||
"angles": {
|
||||
"ascendant": {
|
||||
"longitude": 176.691966,
|
||||
"sign": "Virgo",
|
||||
"degree_in_sign": 26.691966
|
||||
},
|
||||
"mc": {
|
||||
"longitude": 86.278308,
|
||||
"sign": "Gemini",
|
||||
"degree_in_sign": 26.278308
|
||||
},
|
||||
"descendant": {
|
||||
"longitude": 356.691966,
|
||||
"sign": "Pisces",
|
||||
"degree_in_sign": 26.691966
|
||||
},
|
||||
"ic": {
|
||||
"longitude": 266.278308,
|
||||
"sign": "Sagittarius",
|
||||
"degree_in_sign": 26.278308
|
||||
}
|
||||
},
|
||||
"boundary": "Quotidian progressed-date angles; Naibod and solar-arc angle variants are separate methods."
|
||||
},
|
||||
"aspects": [
|
||||
{
|
||||
"transit_planet": "mercury",
|
||||
"natal_point": "mc",
|
||||
"aspect": "sextile",
|
||||
"exact_degrees": 60.0,
|
||||
"separation": 59.85056,
|
||||
"orb": 0.14944,
|
||||
"allowed_orb": 5.0
|
||||
},
|
||||
{
|
||||
"transit_planet": "venus",
|
||||
"natal_point": "ascendant",
|
||||
"aspect": "opposition",
|
||||
"exact_degrees": 180.0,
|
||||
"separation": 179.768817,
|
||||
"orb": 0.231183,
|
||||
"allowed_orb": 5.0
|
||||
},
|
||||
{
|
||||
"transit_planet": "mercury",
|
||||
"natal_point": "venus",
|
||||
"aspect": "square",
|
||||
"exact_degrees": 90.0,
|
||||
"separation": 90.295161,
|
||||
"orb": 0.295161,
|
||||
"allowed_orb": 6.0
|
||||
},
|
||||
{
|
||||
"transit_planet": "jupiter",
|
||||
"natal_point": "venus",
|
||||
"aspect": "opposition",
|
||||
"exact_degrees": 180.0,
|
||||
"separation": 179.696324,
|
||||
"orb": 0.303676,
|
||||
"allowed_orb": 6.0
|
||||
},
|
||||
{
|
||||
"transit_planet": "jupiter",
|
||||
"natal_point": "saturn",
|
||||
"aspect": "trine",
|
||||
"exact_degrees": 120.0,
|
||||
"separation": 119.687136,
|
||||
"orb": 0.312864,
|
||||
"allowed_orb": 6.0
|
||||
},
|
||||
{
|
||||
"transit_planet": "true_node",
|
||||
"natal_point": "neptune",
|
||||
"aspect": "sextile",
|
||||
"exact_degrees": 60.0,
|
||||
"separation": 60.416254,
|
||||
"orb": 0.416254,
|
||||
"allowed_orb": 6.0
|
||||
},
|
||||
{
|
||||
"transit_planet": "uranus",
|
||||
"natal_point": "uranus",
|
||||
"aspect": "conjunction",
|
||||
"exact_degrees": 0.0,
|
||||
"separation": 0.419243,
|
||||
"orb": 0.419243,
|
||||
"allowed_orb": 6.0
|
||||
},
|
||||
{
|
||||
"transit_planet": "true_node",
|
||||
"natal_point": "mars",
|
||||
"aspect": "trine",
|
||||
"exact_degrees": 120.0,
|
||||
"separation": 120.622924,
|
||||
"orb": 0.622924,
|
||||
"allowed_orb": 6.0
|
||||
},
|
||||
{
|
||||
"transit_planet": "venus",
|
||||
"natal_point": "mc",
|
||||
"aspect": "square",
|
||||
"exact_degrees": 90.0,
|
||||
"separation": 89.254747,
|
||||
"orb": 0.745253,
|
||||
"allowed_orb": 5.0
|
||||
},
|
||||
{
|
||||
"transit_planet": "jupiter",
|
||||
"natal_point": "ascendant",
|
||||
"aspect": "sextile",
|
||||
"exact_degrees": 60.0,
|
||||
"separation": 60.818481,
|
||||
"orb": 0.818481,
|
||||
"allowed_orb": 5.0
|
||||
},
|
||||
{
|
||||
"transit_planet": "sun",
|
||||
"natal_point": "neptune",
|
||||
"aspect": "opposition",
|
||||
"exact_degrees": 180.0,
|
||||
"separation": 179.149428,
|
||||
"orb": 0.850572,
|
||||
"allowed_orb": 6.0
|
||||
},
|
||||
{
|
||||
"transit_planet": "venus",
|
||||
"natal_point": "venus",
|
||||
"aspect": "sextile",
|
||||
"exact_degrees": 60.0,
|
||||
"separation": 60.890974,
|
||||
"orb": 0.890974,
|
||||
"allowed_orb": 6.0
|
||||
},
|
||||
{
|
||||
"transit_planet": "venus",
|
||||
"natal_point": "saturn",
|
||||
"aspect": "trine",
|
||||
"exact_degrees": 120.0,
|
||||
"separation": 120.900162,
|
||||
"orb": 0.900162,
|
||||
"allowed_orb": 6.0
|
||||
},
|
||||
{
|
||||
"transit_planet": "pluto",
|
||||
"natal_point": "pluto",
|
||||
"aspect": "conjunction",
|
||||
"exact_degrees": 0.0,
|
||||
"separation": 0.938933,
|
||||
"orb": 0.938933,
|
||||
"allowed_orb": 6.0
|
||||
},
|
||||
{
|
||||
"transit_planet": "mercury",
|
||||
"natal_point": "jupiter",
|
||||
"aspect": "square",
|
||||
"exact_degrees": 90.0,
|
||||
"separation": 89.040846,
|
||||
"orb": 0.959154,
|
||||
"allowed_orb": 6.0
|
||||
},
|
||||
{
|
||||
"transit_planet": "moon",
|
||||
"natal_point": "neptune",
|
||||
"aspect": "trine",
|
||||
"exact_degrees": 120.0,
|
||||
"separation": 119.033911,
|
||||
"orb": 0.966089,
|
||||
"allowed_orb": 6.0
|
||||
},
|
||||
{
|
||||
"transit_planet": "jupiter",
|
||||
"natal_point": "jupiter",
|
||||
"aspect": "conjunction",
|
||||
"exact_degrees": 0.0,
|
||||
"separation": 0.967669,
|
||||
"orb": 0.967669,
|
||||
"allowed_orb": 6.0
|
||||
},
|
||||
{
|
||||
"transit_planet": "mars",
|
||||
"natal_point": "sun",
|
||||
"aspect": "square",
|
||||
"exact_degrees": 90.0,
|
||||
"separation": 89.007356,
|
||||
"orb": 0.992644,
|
||||
"allowed_orb": 6.0
|
||||
},
|
||||
{
|
||||
"transit_planet": "saturn",
|
||||
"natal_point": "jupiter",
|
||||
"aspect": "trine",
|
||||
"exact_degrees": 120.0,
|
||||
"separation": 118.906969,
|
||||
"orb": 1.093031,
|
||||
"allowed_orb": 6.0
|
||||
},
|
||||
{
|
||||
"transit_planet": "neptune",
|
||||
"natal_point": "neptune",
|
||||
"aspect": "conjunction",
|
||||
"exact_degrees": 0.0,
|
||||
"separation": 1.18302,
|
||||
"orb": 1.18302,
|
||||
"allowed_orb": 6.0
|
||||
},
|
||||
{
|
||||
"transit_planet": "uranus",
|
||||
"natal_point": "ascendant",
|
||||
"aspect": "sextile",
|
||||
"exact_degrees": 60.0,
|
||||
"separation": 58.578376,
|
||||
"orb": 1.421624,
|
||||
"allowed_orb": 5.0
|
||||
},
|
||||
{
|
||||
"transit_planet": "neptune",
|
||||
"natal_point": "pluto",
|
||||
"aspect": "sextile",
|
||||
"exact_degrees": 60.0,
|
||||
"separation": 61.54549,
|
||||
"orb": 1.54549,
|
||||
"allowed_orb": 6.0
|
||||
},
|
||||
{
|
||||
"transit_planet": "venus",
|
||||
"natal_point": "jupiter",
|
||||
"aspect": "trine",
|
||||
"exact_degrees": 120.0,
|
||||
"separation": 118.445033,
|
||||
"orb": 1.554967,
|
||||
"allowed_orb": 6.0
|
||||
},
|
||||
{
|
||||
"transit_planet": "saturn",
|
||||
"natal_point": "saturn",
|
||||
"aspect": "conjunction",
|
||||
"exact_degrees": 0.0,
|
||||
"separation": 1.747836,
|
||||
"orb": 1.747836,
|
||||
"allowed_orb": 6.0
|
||||
},
|
||||
{
|
||||
"transit_planet": "saturn",
|
||||
"natal_point": "venus",
|
||||
"aspect": "sextile",
|
||||
"exact_degrees": 60.0,
|
||||
"separation": 61.757024,
|
||||
"orb": 1.757024,
|
||||
"allowed_orb": 6.0
|
||||
},
|
||||
{
|
||||
"transit_planet": "moon",
|
||||
"natal_point": "pluto",
|
||||
"aspect": "opposition",
|
||||
"exact_degrees": 180.0,
|
||||
"separation": 178.237579,
|
||||
"orb": 1.762421,
|
||||
"allowed_orb": 6.0
|
||||
},
|
||||
{
|
||||
"transit_planet": "sun",
|
||||
"natal_point": "pluto",
|
||||
"aspect": "trine",
|
||||
"exact_degrees": 120.0,
|
||||
"separation": 118.122062,
|
||||
"orb": 1.877938,
|
||||
"allowed_orb": 6.0
|
||||
},
|
||||
{
|
||||
"transit_planet": "sun",
|
||||
"natal_point": "mars",
|
||||
"aspect": "conjunction",
|
||||
"exact_degrees": 0.0,
|
||||
"separation": 1.88975,
|
||||
"orb": 1.88975,
|
||||
"allowed_orb": 6.0
|
||||
},
|
||||
{
|
||||
"transit_planet": "moon",
|
||||
"natal_point": "mars",
|
||||
"aspect": "sextile",
|
||||
"exact_degrees": 60.0,
|
||||
"separation": 62.005267,
|
||||
"orb": 2.005267,
|
||||
"allowed_orb": 6.0
|
||||
},
|
||||
{
|
||||
"transit_planet": "venus",
|
||||
"natal_point": "uranus",
|
||||
"aspect": "trine",
|
||||
"exact_degrees": 120.0,
|
||||
"separation": 122.07205,
|
||||
"orb": 2.07205,
|
||||
"allowed_orb": 6.0
|
||||
},
|
||||
{
|
||||
"transit_planet": "neptune",
|
||||
"natal_point": "mars",
|
||||
"aspect": "opposition",
|
||||
"exact_degrees": 180.0,
|
||||
"separation": 177.777802,
|
||||
"orb": 2.222198,
|
||||
"allowed_orb": 6.0
|
||||
},
|
||||
{
|
||||
"transit_planet": "uranus",
|
||||
"natal_point": "venus",
|
||||
"aspect": "opposition",
|
||||
"exact_degrees": 180.0,
|
||||
"separation": 177.456219,
|
||||
"orb": 2.543781,
|
||||
"allowed_orb": 6.0
|
||||
},
|
||||
{
|
||||
"transit_planet": "uranus",
|
||||
"natal_point": "saturn",
|
||||
"aspect": "trine",
|
||||
"exact_degrees": 120.0,
|
||||
"separation": 117.447031,
|
||||
"orb": 2.552969,
|
||||
"allowed_orb": 6.0
|
||||
},
|
||||
{
|
||||
"transit_planet": "jupiter",
|
||||
"natal_point": "uranus",
|
||||
"aspect": "conjunction",
|
||||
"exact_degrees": 0.0,
|
||||
"separation": 2.659348,
|
||||
"orb": 2.659348,
|
||||
"allowed_orb": 6.0
|
||||
},
|
||||
{
|
||||
"transit_planet": "mercury",
|
||||
"natal_point": "uranus",
|
||||
"aspect": "square",
|
||||
"exact_degrees": 90.0,
|
||||
"separation": 92.667863,
|
||||
"orb": 2.667863,
|
||||
"allowed_orb": 6.0
|
||||
},
|
||||
{
|
||||
"transit_planet": "neptune",
|
||||
"natal_point": "uranus",
|
||||
"aspect": "square",
|
||||
"exact_degrees": 90.0,
|
||||
"separation": 92.733372,
|
||||
"orb": 2.733372,
|
||||
"allowed_orb": 6.0
|
||||
},
|
||||
{
|
||||
"transit_planet": "saturn",
|
||||
"natal_point": "ascendant",
|
||||
"aspect": "sextile",
|
||||
"exact_degrees": 60.0,
|
||||
"separation": 57.120819,
|
||||
"orb": 2.879181,
|
||||
"allowed_orb": 5.0
|
||||
},
|
||||
{
|
||||
"transit_planet": "mars",
|
||||
"natal_point": "moon",
|
||||
"aspect": "sextile",
|
||||
"exact_degrees": 60.0,
|
||||
"separation": 57.008321,
|
||||
"orb": 2.991679,
|
||||
"allowed_orb": 6.0
|
||||
},
|
||||
{
|
||||
"transit_planet": "sun",
|
||||
"natal_point": "uranus",
|
||||
"aspect": "square",
|
||||
"exact_degrees": 90.0,
|
||||
"separation": 86.93418,
|
||||
"orb": 3.06582,
|
||||
"allowed_orb": 6.0
|
||||
},
|
||||
{
|
||||
"transit_planet": "pluto",
|
||||
"natal_point": "mc",
|
||||
"aspect": "sextile",
|
||||
"exact_degrees": 60.0,
|
||||
"separation": 63.066252,
|
||||
"orb": 3.066252,
|
||||
"allowed_orb": 5.0
|
||||
},
|
||||
{
|
||||
"transit_planet": "true_node",
|
||||
"natal_point": "pluto",
|
||||
"aspect": "trine",
|
||||
"exact_degrees": 120.0,
|
||||
"separation": 123.144764,
|
||||
"orb": 3.144764,
|
||||
"allowed_orb": 6.0
|
||||
},
|
||||
{
|
||||
"transit_planet": "uranus",
|
||||
"natal_point": "jupiter",
|
||||
"aspect": "conjunction",
|
||||
"exact_degrees": 0.0,
|
||||
"separation": 3.207774,
|
||||
"orb": 3.207774,
|
||||
"allowed_orb": 6.0
|
||||
},
|
||||
{
|
||||
"transit_planet": "pluto",
|
||||
"natal_point": "saturn",
|
||||
"aspect": "square",
|
||||
"exact_degrees": 90.0,
|
||||
"separation": 86.778839,
|
||||
"orb": 3.221161,
|
||||
"allowed_orb": 6.0
|
||||
},
|
||||
{
|
||||
"transit_planet": "pluto",
|
||||
"natal_point": "neptune",
|
||||
"aspect": "sextile",
|
||||
"exact_degrees": 60.0,
|
||||
"separation": 63.667443,
|
||||
"orb": 3.667443,
|
||||
"allowed_orb": 6.0
|
||||
},
|
||||
{
|
||||
"transit_planet": "mercury",
|
||||
"natal_point": "pluto",
|
||||
"aspect": "trine",
|
||||
"exact_degrees": 120.0,
|
||||
"separation": 123.855745,
|
||||
"orb": 3.855745,
|
||||
"allowed_orb": 6.0
|
||||
},
|
||||
{
|
||||
"transit_planet": "uranus",
|
||||
"natal_point": "neptune",
|
||||
"aspect": "square",
|
||||
"exact_degrees": 90.0,
|
||||
"separation": 94.335635,
|
||||
"orb": 4.335635,
|
||||
"allowed_orb": 6.0
|
||||
},
|
||||
{
|
||||
"transit_planet": "pluto",
|
||||
"natal_point": "mars",
|
||||
"aspect": "trine",
|
||||
"exact_degrees": 120.0,
|
||||
"separation": 115.293379,
|
||||
"orb": 4.706621,
|
||||
"allowed_orb": 6.0
|
||||
},
|
||||
{
|
||||
"transit_planet": "saturn",
|
||||
"natal_point": "uranus",
|
||||
"aspect": "trine",
|
||||
"exact_degrees": 120.0,
|
||||
"separation": 115.279952,
|
||||
"orb": 4.720048,
|
||||
"allowed_orb": 6.0
|
||||
},
|
||||
{
|
||||
"transit_planet": "true_node",
|
||||
"natal_point": "true_node",
|
||||
"aspect": "conjunction",
|
||||
"exact_degrees": 0.0,
|
||||
"separation": 4.943849,
|
||||
"orb": 4.943849,
|
||||
"allowed_orb": 6.0
|
||||
},
|
||||
{
|
||||
"transit_planet": "saturn",
|
||||
"natal_point": "mercury",
|
||||
"aspect": "square",
|
||||
"exact_degrees": 90.0,
|
||||
"separation": 84.946868,
|
||||
"orb": 5.053132,
|
||||
"allowed_orb": 6.0
|
||||
},
|
||||
{
|
||||
"transit_planet": "uranus",
|
||||
"natal_point": "mars",
|
||||
"aspect": "square",
|
||||
"exact_degrees": 90.0,
|
||||
"separation": 84.625187,
|
||||
"orb": 5.374813,
|
||||
"allowed_orb": 6.0
|
||||
},
|
||||
{
|
||||
"transit_planet": "neptune",
|
||||
"natal_point": "venus",
|
||||
"aspect": "square",
|
||||
"exact_degrees": 90.0,
|
||||
"separation": 84.303604,
|
||||
"orb": 5.696396,
|
||||
"allowed_orb": 6.0
|
||||
},
|
||||
{
|
||||
"transit_planet": "saturn",
|
||||
"natal_point": "pluto",
|
||||
"aspect": "square",
|
||||
"exact_degrees": 90.0,
|
||||
"separation": 84.09207,
|
||||
"orb": 5.90793,
|
||||
"allowed_orb": 6.0
|
||||
},
|
||||
{
|
||||
"transit_planet": "moon",
|
||||
"natal_point": "saturn",
|
||||
"aspect": "square",
|
||||
"exact_degrees": 90.0,
|
||||
"separation": 95.922515,
|
||||
"orb": 5.922515,
|
||||
"allowed_orb": 6.0
|
||||
}
|
||||
],
|
||||
"boundary": "Progressed planets plus explicitly selected quotidian angles. Lunar phases, stations, duration, and interpretation remain separate audited layers."
|
||||
},
|
||||
"parans": {
|
||||
"technique": "parans",
|
||||
"status": "used",
|
||||
"target_date": "2007-01-09",
|
||||
"method": "Swiss Ephemeris rise_trans latitude-aware angular events",
|
||||
"event_count": 33,
|
||||
"events": [
|
||||
{
|
||||
"planet": "saturn",
|
||||
"angle": "upper_culmination",
|
||||
"julian_day_ut": 2454109.94604537,
|
||||
"local_time": "2007-01-09T02:42:18.320357-08:00"
|
||||
},
|
||||
{
|
||||
"planet": "jupiter",
|
||||
"angle": "rise",
|
||||
"julian_day_ut": 2454110.02462397,
|
||||
"local_time": "2007-01-09T04:35:27.510729-08:00"
|
||||
},
|
||||
{
|
||||
"planet": "moon",
|
||||
"angle": "upper_culmination",
|
||||
"julian_day_ut": 2454110.03029454,
|
||||
"local_time": "2007-01-09T04:43:37.448205-08:00"
|
||||
},
|
||||
{
|
||||
"planet": "pluto",
|
||||
"angle": "rise",
|
||||
"julian_day_ut": 2454110.06527459,
|
||||
"local_time": "2007-01-09T05:33:59.724429-08:00"
|
||||
},
|
||||
{
|
||||
"planet": "mars",
|
||||
"angle": "rise",
|
||||
"julian_day_ut": 2454110.07489361,
|
||||
"local_time": "2007-01-09T05:47:50.807509-08:00"
|
||||
},
|
||||
{
|
||||
"planet": "sun",
|
||||
"angle": "rise",
|
||||
"julian_day_ut": 2454110.14259961,
|
||||
"local_time": "2007-01-09T07:25:20.606518-08:00"
|
||||
},
|
||||
{
|
||||
"planet": "mercury",
|
||||
"angle": "rise",
|
||||
"julian_day_ut": 2454110.15358739,
|
||||
"local_time": "2007-01-09T07:41:09.950433-08:00"
|
||||
},
|
||||
{
|
||||
"planet": "venus",
|
||||
"angle": "rise",
|
||||
"julian_day_ut": 2454110.19141445,
|
||||
"local_time": "2007-01-09T08:35:38.208827-08:00"
|
||||
},
|
||||
{
|
||||
"planet": "neptune",
|
||||
"angle": "rise",
|
||||
"julian_day_ut": 2454110.21153608,
|
||||
"local_time": "2007-01-09T09:04:36.717483-08:00"
|
||||
},
|
||||
{
|
||||
"planet": "jupiter",
|
||||
"angle": "upper_culmination",
|
||||
"julian_day_ut": 2454110.22767351,
|
||||
"local_time": "2007-01-09T09:27:50.991352-08:00"
|
||||
},
|
||||
{
|
||||
"planet": "saturn",
|
||||
"angle": "set",
|
||||
"julian_day_ut": 2454110.22986714,
|
||||
"local_time": "2007-01-09T09:31:00.520680-08:00"
|
||||
},
|
||||
{
|
||||
"planet": "uranus",
|
||||
"angle": "rise",
|
||||
"julian_day_ut": 2454110.25682944,
|
||||
"local_time": "2007-01-09T10:09:50.063788-08:00"
|
||||
},
|
||||
{
|
||||
"planet": "true_node",
|
||||
"angle": "rise",
|
||||
"julian_day_ut": 2454110.26490969,
|
||||
"local_time": "2007-01-09T10:21:28.196996-08:00"
|
||||
},
|
||||
{
|
||||
"planet": "mars",
|
||||
"angle": "upper_culmination",
|
||||
"julian_day_ut": 2454110.27172895,
|
||||
"local_time": "2007-01-09T10:31:17.381368-08:00"
|
||||
},
|
||||
{
|
||||
"planet": "pluto",
|
||||
"angle": "upper_culmination",
|
||||
"julian_day_ut": 2454110.27983419,
|
||||
"local_time": "2007-01-09T10:42:57.673969-08:00"
|
||||
},
|
||||
{
|
||||
"planet": "moon",
|
||||
"angle": "set",
|
||||
"julian_day_ut": 2454110.28420722,
|
||||
"local_time": "2007-01-09T10:49:15.504146-08:00"
|
||||
},
|
||||
{
|
||||
"planet": "sun",
|
||||
"angle": "upper_culmination",
|
||||
"julian_day_ut": 2454110.34500033,
|
||||
"local_time": "2007-01-09T12:16:48.028382-08:00"
|
||||
},
|
||||
{
|
||||
"planet": "mercury",
|
||||
"angle": "upper_culmination",
|
||||
"julian_day_ut": 2454110.35064807,
|
||||
"local_time": "2007-01-09T12:24:55.993106-08:00"
|
||||
},
|
||||
{
|
||||
"planet": "venus",
|
||||
"angle": "upper_culmination",
|
||||
"julian_day_ut": 2454110.39828854,
|
||||
"local_time": "2007-01-09T13:33:32.129903-08:00"
|
||||
},
|
||||
{
|
||||
"planet": "neptune",
|
||||
"angle": "upper_culmination",
|
||||
"julian_day_ut": 2454110.42850297,
|
||||
"local_time": "2007-01-09T14:17:02.656278-08:00"
|
||||
},
|
||||
{
|
||||
"planet": "jupiter",
|
||||
"angle": "set",
|
||||
"julian_day_ut": 2454110.43069242,
|
||||
"local_time": "2007-01-09T14:20:11.825158-08:00"
|
||||
},
|
||||
{
|
||||
"planet": "mars",
|
||||
"angle": "set",
|
||||
"julian_day_ut": 2454110.46852186,
|
||||
"local_time": "2007-01-09T15:14:40.288339-08:00"
|
||||
},
|
||||
{
|
||||
"planet": "uranus",
|
||||
"angle": "upper_culmination",
|
||||
"julian_day_ut": 2454110.49125881,
|
||||
"local_time": "2007-01-09T15:47:24.760886-08:00"
|
||||
},
|
||||
{
|
||||
"planet": "pluto",
|
||||
"angle": "set",
|
||||
"julian_day_ut": 2454110.49439241,
|
||||
"local_time": "2007-01-09T15:51:55.504177-08:00"
|
||||
},
|
||||
{
|
||||
"planet": "true_node",
|
||||
"angle": "upper_culmination",
|
||||
"julian_day_ut": 2454110.50587744,
|
||||
"local_time": "2007-01-09T16:08:27.811086-08:00"
|
||||
},
|
||||
{
|
||||
"planet": "sun",
|
||||
"angle": "set",
|
||||
"julian_day_ut": 2454110.5475517,
|
||||
"local_time": "2007-01-09T17:08:28.467114-08:00"
|
||||
},
|
||||
{
|
||||
"planet": "mercury",
|
||||
"angle": "set",
|
||||
"julian_day_ut": 2454110.54793949,
|
||||
"local_time": "2007-01-09T17:09:01.972344-08:00"
|
||||
},
|
||||
{
|
||||
"planet": "venus",
|
||||
"angle": "set",
|
||||
"julian_day_ut": 2454110.6054813,
|
||||
"local_time": "2007-01-09T18:31:53.584685-08:00"
|
||||
},
|
||||
{
|
||||
"planet": "neptune",
|
||||
"angle": "set",
|
||||
"julian_day_ut": 2454110.6454801,
|
||||
"local_time": "2007-01-09T19:29:29.481048-08:00"
|
||||
},
|
||||
{
|
||||
"planet": "saturn",
|
||||
"angle": "rise",
|
||||
"julian_day_ut": 2454110.65931501,
|
||||
"local_time": "2007-01-09T19:49:24.817192-08:00"
|
||||
},
|
||||
{
|
||||
"planet": "uranus",
|
||||
"angle": "set",
|
||||
"julian_day_ut": 2454110.72570392,
|
||||
"local_time": "2007-01-09T21:25:00.818990-08:00"
|
||||
},
|
||||
{
|
||||
"planet": "true_node",
|
||||
"angle": "set",
|
||||
"julian_day_ut": 2454110.74685172,
|
||||
"local_time": "2007-01-09T21:55:27.988239-08:00"
|
||||
},
|
||||
{
|
||||
"planet": "moon",
|
||||
"angle": "rise",
|
||||
"julian_day_ut": 2454110.80992635,
|
||||
"local_time": "2007-01-09T23:26:17.637054-08:00"
|
||||
}
|
||||
],
|
||||
"paran_pairs_within_4_minutes": [
|
||||
{
|
||||
"first": {
|
||||
"planet": "jupiter",
|
||||
"angle": "upper_culmination",
|
||||
"local_time": "2007-01-09T09:27:50.991352-08:00"
|
||||
},
|
||||
"second": {
|
||||
"planet": "saturn",
|
||||
"angle": "set",
|
||||
"local_time": "2007-01-09T09:31:00.520680-08:00"
|
||||
},
|
||||
"separation_minutes": 3.1588
|
||||
},
|
||||
{
|
||||
"first": {
|
||||
"planet": "neptune",
|
||||
"angle": "upper_culmination",
|
||||
"local_time": "2007-01-09T14:17:02.656278-08:00"
|
||||
},
|
||||
"second": {
|
||||
"planet": "jupiter",
|
||||
"angle": "set",
|
||||
"local_time": "2007-01-09T14:20:11.825158-08:00"
|
||||
},
|
||||
"separation_minutes": 3.1528
|
||||
},
|
||||
{
|
||||
"first": {
|
||||
"planet": "sun",
|
||||
"angle": "set",
|
||||
"local_time": "2007-01-09T17:08:28.467114-08:00"
|
||||
},
|
||||
"second": {
|
||||
"planet": "mercury",
|
||||
"angle": "set",
|
||||
"local_time": "2007-01-09T17:09:01.972344-08:00"
|
||||
},
|
||||
"separation_minutes": 0.5584
|
||||
}
|
||||
],
|
||||
"boundary": "Geometric rise/culmination/set simultaneity only; no interpretation or predictive claim is inferred."
|
||||
}
|
||||
},
|
||||
"summary": {
|
||||
"progressed_aspect_count": 54,
|
||||
"paran_event_count": 33,
|
||||
"paran_pair_count": 3
|
||||
},
|
||||
"boundary": "Known-event geometry replay only. One positive case cannot establish specificity, false-positive rate, or predictive accuracy."
|
||||
}
|
||||
@@ -0,0 +1,55 @@
|
||||
# Day-Level Holdout V3 Annotation Protocol
|
||||
|
||||
Purpose: collect independent, source-backed timing labels for
|
||||
`references/real_case_calibration/day_level_holdout_v3_preregistration.json`.
|
||||
This packet does not alter chart rules, thresholds, or product wording.
|
||||
|
||||
## Independence
|
||||
|
||||
- The annotator must not have edited timing rules or existing control dates.
|
||||
- `adjudicator` identifies the independent person or organization that resolved
|
||||
ambiguity. It must not be the timing-rule author.
|
||||
- Use a public source URL for every row. Do not use an absent search result as
|
||||
evidence of `no_target_event`.
|
||||
|
||||
## One annotation row
|
||||
|
||||
```json
|
||||
{
|
||||
"case_id": "public_subject_stable_id",
|
||||
"domain": "career",
|
||||
"label": "target_event",
|
||||
"start": "YYYY-MM-DD",
|
||||
"end": "YYYY-MM-DD",
|
||||
"source_url": "https://public-source.example/event",
|
||||
"adjudicator": "independent-labeler-id",
|
||||
"time_uncertainty_days": 0
|
||||
}
|
||||
```
|
||||
|
||||
`label` is exactly one of:
|
||||
|
||||
- `target_event`: source establishes the requested event in the stated interval.
|
||||
- `no_target_event`: source establishes a genuine non-event interval, such as a
|
||||
dated diary, schedule, or contemporaneous record that would have recorded the
|
||||
target event. Mere silence is invalid.
|
||||
|
||||
Use day precision only when the source supports it. Otherwise widen `start` and
|
||||
`end`, and record the uncertainty in `time_uncertainty_days`.
|
||||
|
||||
## Frozen acceptance gate
|
||||
|
||||
- At least 20 independently labeled positive cases.
|
||||
- At least 80 independently labeled negative intervals.
|
||||
- Every row has all eight fields shown above and a public URL.
|
||||
- Existing four-control and pilot files remain prohibited from tuning.
|
||||
|
||||
Before submitting labels, run:
|
||||
|
||||
```bash
|
||||
python3 scripts/day_level_holdout_validator.py \
|
||||
references/real_case_calibration/day_level_holdout_v3_preregistration.json
|
||||
```
|
||||
|
||||
Only `ready_for_blind_replay` permits a blind replay. It still does not permit
|
||||
retuning the frozen rules.
|
||||
@@ -0,0 +1,66 @@
|
||||
# Jyotishyamitra Pinned Adapter Probe - 2026-07-18
|
||||
|
||||
## Status
|
||||
|
||||
`jyotishyamitra` is pinned as a fourth independent observation oracle only.
|
||||
|
||||
It is not part of the three-engine truth matrix and does not promote any claim.
|
||||
|
||||
## Identity
|
||||
|
||||
- Package: `jyotishyamitra`
|
||||
- Version: `1.4.0`
|
||||
- GitHub commit: `86f7eb610a66b06b3f0817d2c53355bec8b3bf8d`
|
||||
- License: MIT in wheel license file
|
||||
- Wheel SHA-256: `4f1a16facfa86ef01cb44de505c6de2e66b2f8d2c8b5e125c090e3f8485c6a9d`
|
||||
- Python wheel tag: `py3-none-any`
|
||||
- Requires Python: `>=3.7`
|
||||
|
||||
## Execution Boundary
|
||||
|
||||
- Adapter: `scripts/jyotishyamitra_adapter_probe.py`
|
||||
- Tests: `tests/test_jyotishyamitra_adapter_probe.py`
|
||||
- The wheel is installed with `pip --target` into a temporary directory.
|
||||
- The package is invoked in an isolated subprocess with temporary `PYTHONPATH`.
|
||||
- `jyotishyamitra` is not a project runtime dependency and is not imported by commercial runtime code.
|
||||
- No implementation code is copied from the package.
|
||||
|
||||
## Canonical Request
|
||||
|
||||
The Steve Jobs probe records:
|
||||
|
||||
- birth: `1955-02-24 19:15:00`
|
||||
- place: `San Francisco, CA`
|
||||
- longitude: `-122.4194`
|
||||
- latitude: `37.7749`
|
||||
- timezone: `-8.0`
|
||||
- ayanamsa: `package_default`
|
||||
- node mode: `package_default`
|
||||
- returnval: `ASTRODATA_DICTIONARY`
|
||||
|
||||
## Artifacts
|
||||
|
||||
- Metadata-only: `references/oracle/jyotishyamitra_pinned_adapter_probe_2026_07_18.json`
|
||||
- Steve Jobs execution probe: `references/oracle/jyotishyamitra_steve_jobs_probe_2026_07_18.json`
|
||||
|
||||
The input contract issue was resolved: `input_birthdata()` returns string-valued input, while `generate_astrologicalData()` needs the numeric `get_birthdata()` object after `validate_birthdata() == "SUCCESS"`.
|
||||
|
||||
The Steve Jobs run now returns structured dictionary raw with top-level keys including `D1`, `D2`, `D4`, `D9`, `D10`, `Balas`, `AshtakaVarga`, and `Dashas`.
|
||||
|
||||
Replay stability:
|
||||
|
||||
- full raw hash: intentionally unstable because `$.Dashas.Vimshottari.current.date` embeds run time.
|
||||
- normalized raw hash: stable after replacing `$.Dashas.Vimshottari.current.date` with `<volatile_run_time>`.
|
||||
- normalized raw SHA-256: `b749d78f42a43aa4e5b647230a7e317602de21e3308a0a650c0e662c630546cf`
|
||||
- schema SHA-256: `4ed38f03ddc8774b48501969c31c0a9ad87de3e2a4b5bc293cd86280467bc858`
|
||||
- schema path count: `13524`
|
||||
|
||||
## Next
|
||||
|
||||
The D1/D2/D4/D9/D10 sign surface now has 45 observation rows against archived local and Xalen raw:
|
||||
|
||||
- local: `38/45` matches;
|
||||
- Xalen: `28/45` matches; Xalen's absent Rahu/Ketu rows are `not_comparable`, not mismatches;
|
||||
- D2 is a method-sensitive difference cluster and remains unarbitrated.
|
||||
|
||||
Balas, AshtakaVarga, and Vimshottari remain raw-only until their units, schema, and method contracts are independently aligned. Keep `promotion_allowed=false` unless external worked examples arbitrate method variants.
|
||||
@@ -0,0 +1,48 @@
|
||||
# Local BPHS Method Source Audit
|
||||
|
||||
## Source boundary
|
||||
|
||||
The inspected copy is a locally held Chinese BPHS reading note. It is a
|
||||
non-redistributable method source, not a licensed replacement for a published
|
||||
critical edition. This audit records page labels and derived verification scope,
|
||||
not book text or page images.
|
||||
|
||||
## Shadbala
|
||||
|
||||
| Local page label | Verifiable content | Permitted use |
|
||||
| --- | --- | --- |
|
||||
| 66 | Six components: Sthana, Dik, Kala, Chesta, Naisargika, Drik; seven classical planets only; 60 Virupa = 1 Rupa. | Component schema and unit contract. |
|
||||
| 66–71 | Subcomponent grouping and Dik Bala calculation convention. | Method-variant attribution. |
|
||||
| 72 | Planet-specific total and component Virupa strength thresholds. | Threshold provenance only. |
|
||||
|
||||
The pages contain formula/threshold material, but no single native chart with
|
||||
birth input and all six computed component values. They cannot adjudicate the
|
||||
existing 42 Shadbala component mismatches by themselves.
|
||||
|
||||
## Ashtakavarga
|
||||
|
||||
| Local page label | Verifiable content | Permitted use |
|
||||
| --- | --- | --- |
|
||||
| 271 | Ashtakavarga scope: seven planets plus Lagna. | Input-surface contract. |
|
||||
| 272–276 | Planet-to-reference-house Bindu matrices. | BAV matrix method comparison. |
|
||||
| 278 | Bindu/Rekha terminology and explicit note that other books use different allocations. | Parallel-method disclosure. |
|
||||
|
||||
The pages provide a matrix definition, not a complete birth input plus BAV/SAV
|
||||
output table. They can isolate an allocation-table disagreement but do not make
|
||||
one engine the numeric truth oracle.
|
||||
|
||||
## Related local sources
|
||||
|
||||
- B.V. Raman, *How to Judge a Horoscope*, Vols. 1–2: many numbered natal
|
||||
examples with birth data and Dasha balances; the inspected Vol. 2 index
|
||||
defines Shadbalas but does not provide a component worked table.
|
||||
- K.N. Rao, James Braha, Marc Boney, V.P. Goel, BPHS and Brihat Jataka sources
|
||||
are present in the local Jyotish library and remain candidates for further
|
||||
page-level review.
|
||||
|
||||
## Status
|
||||
|
||||
`method_evidence_available_not_numeric_worked_example`
|
||||
|
||||
Next acceptance target: a source page that contains the chart input, declared
|
||||
ayanamsa/node convention, and all target Shadbala or BAV/SAV values.
|
||||
@@ -0,0 +1,42 @@
|
||||
# Oracle Blocker Resolution Attempt - 2026-07-17
|
||||
|
||||
## Summary
|
||||
|
||||
This pass converts the three non-fakeable blockers into executable evidence gates.
|
||||
|
||||
## VedAstro hosted identity / output drift
|
||||
|
||||
- Added `scripts/vedastro_identity_archive.py`.
|
||||
- Archived NuGet self-host candidate identity for `VedAstro.Library` `1.2.0`:
|
||||
- package hash algorithm: `SHA512`
|
||||
- NuGet catalog commit: `c707690b-f7bd-4813-a2cb-876e943e9667`
|
||||
- license: `MIT`
|
||||
- target framework dependencies include `SwissEphNet [2.8.0.2, )`
|
||||
- Evidence: `references/oracle/vedastro_reproducible_identity_archive_2026_07_17.json`.
|
||||
- Boundary: this fixes a reproducible NuGet package identity only. It does not prove `api.vedastro.org` runs that package, DLL, container, or method semantics.
|
||||
- Status: `hosted_api_status=blocked`.
|
||||
|
||||
## Timing independent negative holdout
|
||||
|
||||
- Added `scripts/timing_negative_holdout_audit.py`.
|
||||
- Audited current candidate sources:
|
||||
- public positive timelines are not negative labels.
|
||||
- existing 40 control dates are observed and not independently reviewed, so diagnostic only.
|
||||
- Evidence: `references/real_case_calibration/timing_negative_holdout_source_audit_2026_07_17.json`.
|
||||
- Output policy remains: return ranked `candidate_day_window` with `claim_status=exploratory_unvalidated`; do not label day/month candidates as verified predictions.
|
||||
|
||||
## Xalen / Shadbala / Ashtakavarga arbitration
|
||||
|
||||
- Added `scripts/xalen_arbitration_gate.py`.
|
||||
- Regenerated:
|
||||
- `references/oracle/xalen_formula_unit_attribution_2026_07_17.json`
|
||||
- `references/oracle/xalen_public_case_batch_2026_07_17.json`
|
||||
- `references/oracle/xalen_ephemeris_mode_comparison_2026_07_17.json`
|
||||
- `references/oracle/xalen_formula_arbitration_gate_2026_07_17.json`
|
||||
- Five public AA cases replayed.
|
||||
- Independent ephemeris comparison remains ready:
|
||||
- max longitude delta: `0.005305966338369217` degrees
|
||||
- varga differences: `0`
|
||||
- Gate result: `truth_status=blocked`, `unresolved_variant_count=46`, `promotion_allowed=false`.
|
||||
- Boundary: multi-case replay and independent ephemeris reduce implementation risk; they do not arbitrate formula variants without external numeric worked examples.
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
# Jyotish External Oracle Closure Master Dashboard
|
||||
|
||||
Generated: `2026-07-01T17:18:16.718345+00:00`
|
||||
Generated: `2026-07-17T07:07:12.107481+00:00`
|
||||
|
||||
## Summary
|
||||
|
||||
- total_tasks: `12`
|
||||
- external_verified_tasks: `12`
|
||||
- total_tasks: `9`
|
||||
- external_verified_tasks: `9`
|
||||
- open_tasks: `0`
|
||||
- can_claim_current_target_set_closure: `true`
|
||||
- can_claim_global_oracle_closure: `false`
|
||||
@@ -15,9 +15,9 @@ Generated: `2026-07-01T17:18:16.718345+00:00`
|
||||
|
||||
| front | tasks | verified | first priority | missing fields | manual entries | metadata missing | target missing |
|
||||
|---|---:|---:|---|---:|---:|---:|---:|
|
||||
| `dasha` | 3 | 3 | `complete` | 0 | 0 | 0 | 0 |
|
||||
| `dasha` | 2 | 2 | `complete` | 0 | 0 | 0 | 0 |
|
||||
| `tajika_sahams` | 5 | 5 | `template_einstein_varshaphala_1905_lahiri` | 0 | 0 | 0 | 0 |
|
||||
| `shadbala` | 4 | 4 | `complete` | 0 | 0 | 0 | 0 |
|
||||
| `shadbala` | 2 | 2 | `complete` | 0 | 0 | 0 | 0 |
|
||||
|
||||
## Next Action Order
|
||||
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
# Prashna Gulika/Sphuta PyJHora Parity
|
||||
|
||||
## Scope
|
||||
|
||||
One public synthetic daytime chart: Beijing, 1990-01-01 12:00, UTC+8,
|
||||
Lahiri, Mean Node. PyJHora 4.8.7 is used only as an AGPL external black-box
|
||||
benchmark.
|
||||
|
||||
## Result
|
||||
|
||||
| Point | Local | PyJHora | Absolute delta |
|
||||
|---|---:|---:|---:|
|
||||
| Gulika | 22.154273° | 21.867466° | 0.286807° |
|
||||
| Tri Sphuta | 315.345416° | 315.052227° | 0.293189° |
|
||||
| Chatur Sphuta | 212.102430° | 211.811742° | 0.290688° |
|
||||
| Pancha Sphuta | 146.837653° | 146.543676° | 0.293977° |
|
||||
|
||||
All rows pass the declared 0.5° tolerance. The local Gulika method now uses
|
||||
the start of Saturn's share in eight equal day/night parts. The historical
|
||||
Ghatika-end variant remains available as `legacy_ghatika_end`.
|
||||
|
||||
## Boundary
|
||||
|
||||
This closes one daytime synthetic comparison only. Night charts, all weekdays,
|
||||
high-latitude sunrise behavior, and additional locations remain untested. No
|
||||
Prashna verdict, health claim, or production tuning is unlocked by this packet.
|
||||
@@ -109,6 +109,18 @@ For large architecture or release work, also read:
|
||||
| ERR-076 | Fragment/inventory tests required machine-local drafts, workspace residue, or a fixed minimum file count. | resolved 2026-07-16 | Assert count invariants and stable tracked classifications; validate optional local categories only when present. |
|
||||
| ERR-077 | VedAstro request previews serialized the live `x-api-key` header, allowing logs and failed test output to expose credentials. | resolved; credential rotation required 2026-07-16 | Preview/metadata profiles never contain authentication headers. Inject `VEDASTRO_API_KEY` only immediately before network execution; rotate any key exposed before this fix. |
|
||||
| ERR-078 | On this macOS host, bare `python3` resolves to Python 3.9 without pytest, while the project uses PEP 604 annotations; rerunning with `.venv/bin/python` reaches the tests but `test_preflight_fragment_scan_reports_authority_layers_and_risk_buckets` has a stale `high_value_unpromoted_count >= 1` assertion even when the scanner correctly reports zero. | observed 2026-07-15 | Run the gate with the project venv on this host and do not claim the full pre-work gate passed until the fragment-governance assertion is reconciled with the valid zero-unpromoted state. |
|
||||
| ERR-079 | VedAstro hosted replay and fixed-commit self-host validation cannot run on this host when `VEDASTRO_API_ENDPOINT` / `VEDASTRO_API_KEY` are absent and neither a .NET runtime nor a reachable Docker daemon is available. | observed 2026-07-17 | Keep hosted closure `blocked`; run `vedastro_contract_probe.py --repeats 3` only after injecting credentials through the environment, and build the pinned source in a provisioned Windows/.NET or reachable container environment. Never persist credentials in artifacts or shell history. |
|
||||
|
||||
## ERR-080 | Issue link was mistaken for benchmark provenance | mitigated 2026-07-18
|
||||
PyJHora issue #17 is a UI/encoding issue with a general mismatch report, not VP Jain calibration. The benchmark now pins `V4.8.7` / `ca22995709bd60e371e7820a1a5efc80ce4cf821` and the exact test function URL. Treat its AGPL numeric expectations as a candidate replay, never independent formula arbitration.
|
||||
|
||||
## ERR-081 | Fixture attribution was overstated as publication | mitigated 2026-07-18
|
||||
`shadbala_VPJainBook_tests` supplies no independently citable book edition, page, or numerical table. The product therefore calls it a VP Jain-attributed fixture, not a published worked example; it remains candidate replay data and cannot close a formula branch.
|
||||
|
||||
## ERR-082 | Public similar-case catalog coverage was mistaken for global coverage | active 2026-07-18
|
||||
The replayable public-case manifest currently contains 10 events: 5 career and 5 marriage. A separate health `public_context_only` case may be shown for comparison, but it is not replayed calibration evidence. Wealth still has no case with the required birth source, event source, and replay contract. The product returns available domains and requested uncovered domains rather than treating an empty result as evidence of no comparable case.
|
||||
|
||||
Prevention: add a new domain only after its public cases satisfy the same source/replay contract; never substitute loosely sourced celebrity notes or absence of a match for a negative conclusion.
|
||||
|
||||
## Fragment Sweep Command Set
|
||||
|
||||
|
||||
@@ -1,36 +1,36 @@
|
||||
# Public Jyotish Benchmark Dashboard
|
||||
|
||||
Generated: `2026-07-01T11:37:25.105482+00:00`
|
||||
Generated: `2026-07-17T07:10:35.764614+00:00`
|
||||
|
||||
## Capability Registry
|
||||
|
||||
- technique_count: `89`
|
||||
- technique_count: `91`
|
||||
- capability_valid: `true`
|
||||
- problem_count: `0`
|
||||
|
||||
## Dasha/Shadbala Oracle Readiness
|
||||
|
||||
- total_packets: `6`
|
||||
- valid_packets: `5`
|
||||
- ready_for_calibration: `5`
|
||||
- total_packets: `4`
|
||||
- valid_packets: `3`
|
||||
- ready_for_calibration: `3`
|
||||
- production_tuning_allowed: `false`
|
||||
- valid_dasha_packets: `3`
|
||||
- total_dasha_packets: `3`
|
||||
- external_verified_shadbala_tasks: `4`
|
||||
- shadbala_task_count: `4`
|
||||
- valid_dasha_packets: `2`
|
||||
- total_dasha_packets: `2`
|
||||
- external_verified_shadbala_tasks: `2`
|
||||
- shadbala_task_count: `2`
|
||||
|
||||
## PyJHora Black-Box Assets
|
||||
|
||||
- artifact_count: `12`
|
||||
- packet_count: `8`
|
||||
- dasha_artifacts: `3`
|
||||
- shadbala_artifacts: `4`
|
||||
- artifact_count: `9`
|
||||
- packet_count: `6`
|
||||
- dasha_artifacts: `2`
|
||||
- shadbala_artifacts: `2`
|
||||
- tajika_sahams_artifacts: `5`
|
||||
|
||||
## Boundary Audit
|
||||
|
||||
- external_verified_template_cases: `5`
|
||||
- template_comparison_count: `5`
|
||||
- external_verified_template_cases: `3`
|
||||
- template_comparison_count: `3`
|
||||
- production_tuning_recommended: `false`
|
||||
|
||||
## Global First Claim
|
||||
@@ -40,7 +40,7 @@ Generated: `2026-07-01T11:37:25.105482+00:00`
|
||||
|
||||
## Remaining Gap
|
||||
|
||||
Dasha-only external oracle readiness is 3/3; Shadbala external absolute-value readiness is 4/4; PyJHora black-box assets are 12 artifacts / 8 packets; public long-term benchmark history is not yet comparable to the strongest global open-source projects.
|
||||
Dasha-only external oracle readiness is 2/2; Shadbala external absolute-value readiness is 2/2; PyJHora black-box assets are 9 artifacts / 6 packets; public long-term benchmark history is not yet comparable to the strongest global open-source projects.
|
||||
|
||||
## Next Actions
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Jyotish Skill Gap Truth Audit
|
||||
|
||||
Generated: `2026-07-01T11:37:25.807944+00:00`
|
||||
Generated: `2026-07-17T07:10:34.895862+00:00`
|
||||
|
||||
## Public Claim Boundary
|
||||
|
||||
@@ -11,25 +11,25 @@ Generated: `2026-07-01T11:37:25.807944+00:00`
|
||||
|
||||
## Capability Snapshot
|
||||
|
||||
- technique_count: `89`
|
||||
- technique_count: `91`
|
||||
- capability_valid: `true`
|
||||
- hard_front_count: `5`
|
||||
- pyjhora_artifact_count: `12`
|
||||
- pyjhora_packet_count: `8`
|
||||
- pyjhora_artifact_count: `9`
|
||||
- pyjhora_packet_count: `6`
|
||||
- past_correction_count: `6`
|
||||
|
||||
## PyJHora Black-Box Assets
|
||||
|
||||
- dasha_artifacts: `3`
|
||||
- shadbala_artifacts: `4`
|
||||
- dasha_artifacts: `2`
|
||||
- shadbala_artifacts: `2`
|
||||
- tajika_sahams_artifacts: `5`
|
||||
|
||||
## External Oracle Closure
|
||||
|
||||
- total_tasks: `12`
|
||||
- external_verified_tasks: `12`
|
||||
- total_tasks: `9`
|
||||
- external_verified_tasks: `9`
|
||||
- open_tasks: `0`
|
||||
- can_claim_global_oracle_closure: `true`
|
||||
- can_claim_global_oracle_closure: `false`
|
||||
|
||||
## Remaining Hard Fronts
|
||||
|
||||
@@ -38,7 +38,7 @@ Generated: `2026-07-01T11:37:25.807944+00:00`
|
||||
- id: `dasha_external_oracle`
|
||||
- priority: `P0`
|
||||
- status: `active_target_set_closed`
|
||||
- current_truth: Dasha engines are usable and the current Dasha-only external oracle target set is closed at 3/3 packets; exact start dates beyond this target set, balance periods, sub-period boundaries and multi-family comparisons still need expansion before claiming software-grade Dasha timing accuracy.
|
||||
- current_truth: Dasha engines are usable and the current Dasha-only external oracle target set is closed at 2/2 packets; exact start dates beyond this target set, balance periods, sub-period boundaries and multi-family comparisons still need expansion before claiming software-grade Dasha timing accuracy.
|
||||
|
||||
### Long-term public benchmark
|
||||
|
||||
@@ -52,7 +52,7 @@ Generated: `2026-07-01T11:37:25.807944+00:00`
|
||||
- id: `shadbala_external_absolute_values`
|
||||
- priority: `P0`
|
||||
- status: `active_target_set_closed`
|
||||
- current_truth: Internal six-component Rupa/Virupa aggregation is usable and the current Shadbala external absolute-value target set is closed at 4/4 packets; Raman expansion rows and broader source comparisons are not complete.
|
||||
- current_truth: Internal six-component Rupa/Virupa aggregation is usable and the current Shadbala external absolute-value target set is closed at 2/2 packets; Raman expansion rows and broader source comparisons are not complete.
|
||||
|
||||
### Tajika / Sahams annual closure
|
||||
|
||||
|
||||
@@ -0,0 +1,72 @@
|
||||
# VedAstro Live Replay Conflict 2026-07-17
|
||||
|
||||
## Status
|
||||
|
||||
`blocked`: a fresh official VedAstro full snapshot for the public Steve Jobs
|
||||
same-chart case does not reproduce the previously recorded D1 longitude packet.
|
||||
This report records an external-oracle conflict. It does not authorize prediction
|
||||
claims, production tuning, or a three-engine closure claim.
|
||||
|
||||
## Reproducible Public Request
|
||||
|
||||
- Case: `steve_jobs_public_aa` / `steve_jobs_public_1955_lahiri`
|
||||
- Birth time: `19:15 24/02/1955 -08:00`
|
||||
- Location: `37.7749, -122.4194`
|
||||
- Ayanamsa / node mode: `lahiri` / `mean`
|
||||
- Fresh local raw artifact: `scratch/local/vedastro_adapter/official_full_snapshot-1ff276e8fdee-ab172556e932.json`
|
||||
- Fresh official raw response SHA-256: `ab172556e9327f55ce5a14d2a2da91c7736690c5181ba59627d0acbf0d1b0ef8`
|
||||
- Runner output: `scratch/local/three_engine_parity_vedastro_live/three_engine_parity_replay.json`
|
||||
- Independent repeat raw response SHA-256: `64c784ddfce22b83f2ba4a666983c1ca3a01f54c6f4d49dd1070167dbf850d54`
|
||||
- Repeat runner output: `scratch/local/three_engine_parity_vedastro_retry/three_engine_parity_replay.json`
|
||||
|
||||
## Fresh Result
|
||||
|
||||
| metric | value |
|
||||
|---|---:|
|
||||
| normalized D1 rows | 15 |
|
||||
| matches | 9 |
|
||||
| mismatches | 5 |
|
||||
| blocked rows | 0 |
|
||||
|
||||
Mismatched fields: `Sun.longitude`, `Moon.longitude`, `Mars.longitude`,
|
||||
`Mercury.longitude`, `Venus.longitude`.
|
||||
|
||||
The independent repeat used the same visible request body and produced the same
|
||||
five normalized mismatch values. The raw response hash differs, but the
|
||||
normalized external discrepancy is stable for this endpoint replay.
|
||||
|
||||
## Conflict Arbitration
|
||||
|
||||
The prior commercial manifest referenced a research-local scratch artifact with
|
||||
the same visible birth-time request but a different official response hash. Two
|
||||
fresh official responses converge on the same five normalized discrepancies.
|
||||
The mismatch must remain visible until the VedAstro endpoint/version/method
|
||||
contract explains the drift. Do not replace the old packet with a pass result
|
||||
or tune local calculations to match either response.
|
||||
|
||||
## Required Next Evidence
|
||||
|
||||
1. Capture official API version and method identifiers alongside the raw packet.
|
||||
2. Replay the same request after a bounded delay and compare response hashes.
|
||||
3. Publish a redacted, versioned public packet only after the response is stable.
|
||||
4. Require a fresh normalized 15-row comparison before changing
|
||||
`three_engine_parity_replay_manifest.json` from its current blocked boundary.
|
||||
|
||||
## Contract Probe Resolution Attempt
|
||||
|
||||
Research commit `c91eea2` executed three complete versioned contract probes.
|
||||
Each probe compared the negative-offset birth time with its UTC equivalent and
|
||||
a positive-offset control, then cross-checked `AllPlanetLongitude`,
|
||||
`AllPlanetData.PlanetRasiD1Sign`, and `PlanetNirayanaLongitude`.
|
||||
|
||||
- Negative offset and UTC-equivalent inputs agreed.
|
||||
- Positive-offset behavior was not reliably distinct.
|
||||
- Cross-method results changed between runs; one run temporarily agreed while
|
||||
the other two exposed different planet-level discrepancies.
|
||||
- The third probe also showed instability within its three baseline repeats.
|
||||
- The service returned `Server: Kestrel` but no explicit API version header.
|
||||
|
||||
Therefore the requested contract evidence was attempted and did not resolve
|
||||
the conflict. `VedAstro.D1.longitude` remains field-level `blocked`. Separately
|
||||
validated VedAstro BAV, SAV, and Shadbala raw evidence is not invalidated by
|
||||
this longitude-method boundary.
|
||||
@@ -0,0 +1,161 @@
|
||||
# Commercial External Validation Release Implementation Plan
|
||||
> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking.
|
||||
|
||||
**Goal:** Make the commercial repository's public external-validation evidence a versioned, hash-verified release gate while preserving every unresolved external-oracle boundary.
|
||||
|
||||
**Architecture:** The existing public research reports remain the evidence payload. A small manifest records their expected SHA-256 digests and declared engine boundaries; a standalone Python gate validates file integrity and projects the VedAstro/JHora closure states into machine-readable output. The runtime-truth quality profile executes the gate so evidence drift blocks acceptance without requiring private raw artifacts or credentials.
|
||||
|
||||
**Tech Stack:** Python 3 standard library, JSON, pytest, existing `scripts/run_quality_gate.py` profiles.
|
||||
|
||||
### Task 1: Specify the public evidence release
|
||||
|
||||
**Files:**
|
||||
- Create: `references/evidence_manifests/commercial_external_validation_release.v1.json`
|
||||
- Test: `tests/test_external_validation_release_gate.py`
|
||||
|
||||
- [x] **Step 1: Write the failing manifest-contract test**
|
||||
|
||||
```python
|
||||
def test_release_manifest_declares_public_assets_and_external_boundaries() -> None:
|
||||
manifest = _manifest()
|
||||
assert manifest["schema_version"] == 1
|
||||
assert manifest["release_scope"] == "public_research_evidence_snapshot"
|
||||
assert manifest["engines"]["PyJHora"]["status"] == "available"
|
||||
assert manifest["engines"]["VedAstro"]["status"] == "blocked"
|
||||
assert manifest["engines"]["JHora"]["official_raw_status"] != "verified"
|
||||
```
|
||||
|
||||
- [x] **Step 2: Run the test to verify it fails**
|
||||
|
||||
Run: `python3 -m pytest -q tests/test_external_validation_release_gate.py::test_release_manifest_declares_public_assets_and_external_boundaries`
|
||||
|
||||
Expected: FAIL because the manifest and `_manifest` helper do not exist.
|
||||
|
||||
- [x] **Step 3: Add the versioned manifest**
|
||||
|
||||
Record the eight already-versioned research reports, their SHA-256 digests, scope, and non-escalation boundaries. Record `PyJHora` and `jyotishganit` as locally available, `VedAstro` as blocked pending official replay closure, and JHora raw evidence as not verified.
|
||||
|
||||
- [x] **Step 4: Run the manifest-contract test**
|
||||
|
||||
Run: `python3 -m pytest -q tests/test_external_validation_release_gate.py::test_release_manifest_declares_public_assets_and_external_boundaries`
|
||||
|
||||
Expected: PASS.
|
||||
|
||||
### Task 2: Implement integrity and boundary gate
|
||||
|
||||
**Files:**
|
||||
- Create: `scripts/external_validation_release_gate.py`
|
||||
- Modify: `tests/test_external_validation_release_gate.py`
|
||||
|
||||
- [x] **Step 1: Write failing gate behavior tests**
|
||||
|
||||
```python
|
||||
def test_evaluate_manifest_accepts_current_public_release() -> None:
|
||||
report = gate.evaluate_manifest(MANIFEST)
|
||||
assert report["status"] == "pass"
|
||||
assert report["summary"]["assets_verified"] == report["summary"]["assets_total"]
|
||||
assert report["summary"]["production_tuning_allowed"] is False
|
||||
|
||||
def test_evaluate_manifest_reports_digest_drift(tmp_path: Path) -> None:
|
||||
manifest = _copy_manifest_with_one_bad_digest(tmp_path)
|
||||
report = gate.evaluate_manifest(manifest)
|
||||
assert report["status"] == "blocked"
|
||||
assert report["assets"][0]["integrity"] == "mismatch"
|
||||
```
|
||||
|
||||
- [x] **Step 2: Run tests to verify they fail**
|
||||
|
||||
Run: `python3 -m pytest -q tests/test_external_validation_release_gate.py -v`
|
||||
|
||||
Expected: FAIL because `scripts.external_validation_release_gate` does not exist.
|
||||
|
||||
- [x] **Step 3: Add the minimal gate**
|
||||
|
||||
Implement `evaluate_manifest(path)` using `hashlib.sha256`; return JSON with per-asset existence/integrity, engine states, `production_tuning_allowed: false`, and `status: pass` only when every asset matches. Add CLI `--manifest`, `--format json`, and `--require-match`; `--require-match` returns non-zero for missing or mismatched assets only, not merely because VedAstro remains blocked.
|
||||
|
||||
- [x] **Step 4: Run focused tests and CLI**
|
||||
|
||||
Run:
|
||||
|
||||
```bash
|
||||
python3 -m pytest -q tests/test_external_validation_release_gate.py
|
||||
python3 scripts/external_validation_release_gate.py --format json --require-match
|
||||
```
|
||||
|
||||
Expected: tests PASS; CLI returns zero with `status: pass` and preserves `VedAstro: blocked` plus `production_tuning_allowed: false`.
|
||||
|
||||
### Task 3: Wire the gate into runtime truth
|
||||
|
||||
**Files:**
|
||||
- Modify: `scripts/run_quality_gate.py`
|
||||
- Modify: `tests/test_external_validation_release_gate.py`
|
||||
|
||||
- [x] **Step 1: Write the failing quality-profile test**
|
||||
|
||||
```python
|
||||
def test_runtime_truth_profile_runs_external_validation_release_gate() -> None:
|
||||
text = (ROOT / "scripts" / "run_quality_gate.py").read_text(encoding="utf-8")
|
||||
assert "external_validation_release_gate.py" in text
|
||||
```
|
||||
|
||||
- [x] **Step 2: Run it to verify it fails**
|
||||
|
||||
Run: `python3 -m pytest -q tests/test_external_validation_release_gate.py::test_runtime_truth_profile_runs_external_validation_release_gate`
|
||||
|
||||
Expected: FAIL because the release gate is not yet part of the quality gate.
|
||||
|
||||
- [x] **Step 3: Add the runtime-truth command**
|
||||
|
||||
Add the release-gate invocation to the runtime-truth command list with `--require-match`; retain the existing oracle collection semantics and do not convert blocked external engines into failures.
|
||||
|
||||
- [x] **Step 4: Run runtime-truth and focused regression suite**
|
||||
|
||||
Run:
|
||||
|
||||
```bash
|
||||
python3 scripts/run_quality_gate.py --profile runtime-truth
|
||||
python3 -m pytest -q tests/test_external_validation_release_gate.py tests/test_oracle_closure_master_dashboard.py tests/test_three_engine_parity_replay_validator.py tests/test_cross_project_contract.py tests/test_cross_project_sync_status.py
|
||||
```
|
||||
|
||||
Expected: PASS. The gate proves release integrity; output continues to state that prediction accuracy and production tuning remain blocked.
|
||||
|
||||
### Task 4: Record the commercial release boundary
|
||||
|
||||
**Files:**
|
||||
- Modify: `docs/superpowers/plans/2026-07-17-commercial-external-validation-release.md`
|
||||
|
||||
- [x] **Step 1: Keep the gate commercial-only**
|
||||
|
||||
The evidence files are already byte-identical research-derived public assets. The new manifest and validator are a commercial acceptance layer, so they are deliberately not added to the bidirectional calculation-contract policy or ledger. No private scratch, credentials, or raw oracle captures are added.
|
||||
|
||||
- [x] **Step 2: Record the completed scope in this plan**
|
||||
|
||||
This release verifies public evidence integrity only. It does not claim external oracle closure, prediction accuracy, or production-tuning authorization.
|
||||
|
||||
- [x] **Step 3: Verify release hygiene and working tree**
|
||||
|
||||
Run:
|
||||
|
||||
```bash
|
||||
git diff --check
|
||||
git status --short --branch
|
||||
python3 scripts/scan_public_artifact_privacy.py --format json
|
||||
```
|
||||
|
||||
Expected: no whitespace errors, no privacy findings, and only intended files modified before commit.
|
||||
|
||||
- [ ] **Step 4: Commit and push**
|
||||
|
||||
```bash
|
||||
git add docs/superpowers/plans/2026-07-17-commercial-external-validation-release.md \
|
||||
references/evidence_manifests/commercial_external_validation_release.v1.json \
|
||||
scripts/external_validation_release_gate.py \
|
||||
scripts/run_quality_gate.py \
|
||||
tests/test_external_validation_release_gate.py \
|
||||
references/cross_project_contract/sync_policy.v1.json \
|
||||
references/cross_project_contract/sync_ledger.json
|
||||
git commit -m "feat: gate commercial external validation release"
|
||||
git push origin codex/cross-project-contract
|
||||
```
|
||||
|
||||
Expected: remote branch contains the integrity gate; `main` remains untouched pending merge review.
|
||||
@@ -0,0 +1,38 @@
|
||||
# Shadbala High-Rigor Migration Implementation Plan
|
||||
> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking.
|
||||
|
||||
**Goal:** Port the reviewed `f3bae51` Shadbala component-formula correction and its public high-rigor parity evidence from research to the commercial backend without importing research worktree residue.
|
||||
|
||||
**Architecture:** Use the committed research tree at `f3bae51` as the only source. First add the precise-context regression to commercial and observe failure; then port the smallest calculation/API/engine changes needed for it. Public Steve Jobs artifacts and the parity manifest move only after privacy and hash checks.
|
||||
|
||||
**Tech Stack:** Python 3, pytest, existing Swiss Ephemeris/Jyotish engine, JSON evidence manifests.
|
||||
|
||||
### Task 1: Port formula regression first
|
||||
|
||||
**Files:**
|
||||
- Create: `tests/test_shadbala_precise_context.py`
|
||||
- Modify: `scripts/shadbala.py`
|
||||
- Modify: `scripts/jyotish_engine.py`
|
||||
- Modify: `scripts/jyotish_api_server.py`
|
||||
|
||||
- [ ] Copy the committed regression test from `f3bae51`; run it in commercial and observe failure.
|
||||
- [ ] Diff the source commit against its parent, then port only paths exercised by the failing test.
|
||||
- [ ] Run the precise-context test plus existing Shadbala tests.
|
||||
|
||||
### Task 2: Port public high-rigor evidence
|
||||
|
||||
**Files:**
|
||||
- Create: `references/oracle/artifacts/jyotishganit_steve_jobs_high_rigor_raw.json`
|
||||
- Create: `references/oracle/artifacts/local_steve_jobs_high_rigor_raw.json`
|
||||
- Modify: `references/oracle/three_engine_parity_replay_manifest.json`
|
||||
|
||||
- [ ] Verify artifacts have no secret/private input and are referenced by the committed parity manifest.
|
||||
- [ ] Copy exact committed public files, then run parity artifact-contract and replay-validator tests.
|
||||
|
||||
### Task 3: Verify and publish
|
||||
|
||||
**Files:**
|
||||
- Modify: `references/evidence_manifests/commercial_external_validation_release.v1.json` when public evidence is added to release scope
|
||||
|
||||
- [ ] Run focused Shadbala, parity, API, privacy, and release-hash gates.
|
||||
- [ ] Commit only reviewed migration files and push `codex/cross-project-contract`.
|
||||
Reference in New Issue
Block a user