feat: sync high value technique gap registries

This commit is contained in:
732642856
2026-07-19 16:46:35 +08:00
parent 3cdd6bfdf0
commit d312efbc78
8 changed files with 522 additions and 2 deletions
@@ -0,0 +1,66 @@
{
"scope": "ashtakavarga_advanced_usage_gap_registry",
"created_at": "2026-07-19",
"status": "gap_registry_v1",
"production_tuning_allowed": false,
"source_scan_policy": "Separate core BAV/SAV calculation from advanced transit, age and relationship usage claims.",
"top_external_references": [
{
"name": "Kala calculation list",
"url": "https://www.vedic-astrology.net/kala/List-of-Calculations.asp",
"relevance": "Top-tier Ashtakavarga usage reference: Kakshas, sensitive transit nakshatras/rashis, important ages and relationship overlays."
},
{
"name": "PyJHora",
"url": "https://github.com/naturalstupid/PyJHora",
"relevance": "External AGPL oracle/reference candidate for Ashtakavarga variants; do not vendor."
}
],
"items": [
{
"technique_id": "bav_sav_core",
"local_code_status": "present",
"skill_invocation_status": "invoked",
"api_ui_entry_status": "present",
"external_oracle_status": "partial",
"commercial_sync_status": "ready_after_guarded_contract",
"claim_boundary": "Core BAV/SAV can be used with method-variant and parity boundary."
},
{
"technique_id": "kakshya_transit",
"local_code_status": "missing_runtime",
"skill_invocation_status": "not_invoked",
"api_ui_entry_status": "missing",
"external_oracle_status": "missing",
"commercial_sync_status": "blocked_until_oracle",
"claim_boundary": "Observation-only design item; do not use for precise transit timing until source and holdout gates close."
},
{
"technique_id": "sensitive_transit_nakshatra_rashi",
"local_code_status": "missing_runtime",
"skill_invocation_status": "reference_only",
"api_ui_entry_status": "missing",
"external_oracle_status": "missing",
"commercial_sync_status": "blocked_until_oracle",
"claim_boundary": "Research-only until rules, source examples and negative controls are available."
},
{
"technique_id": "important_ages_directional_usage",
"local_code_status": "missing_runtime",
"skill_invocation_status": "not_invoked",
"api_ui_entry_status": "missing",
"external_oracle_status": "missing",
"commercial_sync_status": "research_only",
"claim_boundary": "Do not infer life events from age/direction lists without verified case calibration."
},
{
"technique_id": "annual_sav_timing_scan",
"local_code_status": "missing_runtime",
"skill_invocation_status": "not_invoked",
"api_ui_entry_status": "missing",
"external_oracle_status": "missing",
"commercial_sync_status": "blocked_until_oracle",
"claim_boundary": "Blocked for verified timing until independent negative holdout passes."
}
]
}
@@ -0,0 +1,66 @@
{
"scope": "compatibility_full_system_gap_registry",
"created_at": "2026-07-19",
"status": "gap_registry_v1",
"production_tuning_allowed": false,
"source_scan_policy": "Separate mature match-score modules from advanced compatibility overlays and Western-style composite techniques.",
"top_external_references": [
{
"name": "Kala calculation list",
"url": "https://www.vedic-astrology.net/kala/List-of-Calculations.asp",
"relevance": "Compatibility feature reference: Kutas from Moon/planets/Lagna, Rajju/Vedha/Stree Deergha/Mahendra/Vasya, interaspects, Davidson, Composite and AV overlay."
},
{
"name": "Local relationship registry",
"url": "references/oracle/relationship_combinations_rule_family_registry_2026_07_19.json",
"relevance": "Current local indexed relationship-combination families requiring source closure and tests."
}
],
"items": [
{
"technique_id": "ashtakoota_core",
"local_code_status": "present",
"skill_invocation_status": "invoked",
"api_ui_entry_status": "present",
"external_oracle_status": "partial",
"commercial_sync_status": "ready_after_guarded_contract",
"claim_boundary": "Usable as compatibility factor, not deterministic marriage outcome."
},
{
"technique_id": "extended_koota_planet_lagna",
"local_code_status": "partial_or_missing",
"skill_invocation_status": "reference_only",
"api_ui_entry_status": "missing",
"external_oracle_status": "missing",
"commercial_sync_status": "blocked_until_oracle",
"claim_boundary": "Do not claim full top-tier compatibility until planet/Lagna Kuta variants and examples are validated."
},
{
"technique_id": "relationship_combinations_rule_families",
"local_code_status": "registry_only",
"skill_invocation_status": "not_invoked",
"api_ui_entry_status": "missing",
"external_oracle_status": "missing",
"commercial_sync_status": "research_only",
"claim_boundary": "Research-only until deduplication, source packet and tests exist."
},
{
"technique_id": "relationship_av_overlay",
"local_code_status": "missing_runtime",
"skill_invocation_status": "not_invoked",
"api_ui_entry_status": "missing",
"external_oracle_status": "missing",
"commercial_sync_status": "blocked_until_oracle",
"claim_boundary": "Observation-only until Ashtakavarga relationship overlay rules and examples close."
},
{
"technique_id": "composite_davidson_charts",
"local_code_status": "missing_runtime",
"skill_invocation_status": "not_invoked",
"api_ui_entry_status": "missing",
"external_oracle_status": "not_applicable_vedic_core",
"commercial_sync_status": "not_for_commercial_runtime",
"claim_boundary": "Western-derived compatibility overlay; keep out of Vedic commercial runtime unless explicitly scoped as cross-system research."
}
]
}
@@ -5,8 +5,8 @@
"production_tuning_allowed": false,
"boundary": "Index of current governance packets only. Raw oracle artifacts remain in references/oracle/artifacts and are not all duplicated here.",
"summary": {
"packet_count": 21,
"blocked_or_partial_count": 13,
"packet_count": 26,
"blocked_or_partial_count": 20,
"human_review_required_count": 1
},
"packets": [
@@ -177,6 +177,46 @@
"claim_status": "partial",
"consumer_policy": "research_only",
"claim_boundary": "All planned rectification layers have partial guarded runtime surfaces; Shadbala-AV remains formula/unit partial and Gochara remains negative-holdout blocked, so outputs stay exploratory."
},
{
"packet_id": "kp_precision_timing_gap_registry",
"path": "references/oracle/kp_precision_timing_gap_registry_2026_07_19.json",
"domain": "kp_precision_timing",
"claim_status": "partial",
"consumer_policy": "research_to_commercial_contract_only",
"claim_boundary": "KP precision timing gap registry exists; star/sub-lord, ruling planets and significator tables remain blocked until source/oracle/holdout gates close."
},
{
"packet_id": "muhurta_full_system_gap_registry",
"path": "references/oracle/muhurta_full_system_gap_registry_2026_07_19.json",
"domain": "muhurta",
"claim_status": "partial",
"consumer_policy": "research_to_commercial_contract_only",
"claim_boundary": "Panchanga base exists, but full Muhurta scoring remains blocked until Tarabala/Chandrabala/Panchaka/Rahu Kalam examples and source contracts close."
},
{
"packet_id": "ashtakavarga_advanced_usage_gap_registry",
"path": "references/oracle/ashtakavarga_advanced_usage_gap_registry_2026_07_19.json",
"domain": "ashtakavarga_advanced_usage",
"claim_status": "partial",
"consumer_policy": "research_to_commercial_contract_only",
"claim_boundary": "Core BAV/SAV exists; Kakshya transit, sensitive transit signs/nakshatras and annual SAV timing remain observation-only until oracle/holdout gates close."
},
{
"packet_id": "compatibility_full_system_gap_registry",
"path": "references/oracle/compatibility_full_system_gap_registry_2026_07_19.json",
"domain": "compatibility",
"claim_status": "partial",
"consumer_policy": "research_to_commercial_contract_only",
"claim_boundary": "Ashtakoota core exists; extended planet/Lagna Kuta, relationship AV overlay and rule-family combinations remain partial/research-only."
},
{
"packet_id": "kp_precision_timing_probe",
"path": "scripts/kp_precision_timing_probe.py",
"domain": "kp_precision_timing",
"claim_status": "partial",
"consumer_policy": "research_to_commercial_contract_only",
"claim_boundary": "KP star/sub-lord and significator probe exposes raw fields and hash, but cannot drive precise event timing without exact KP cusp oracle and independent negative holdout validation."
}
]
}
@@ -0,0 +1,66 @@
{
"scope": "kp_precision_timing_gap_registry",
"created_at": "2026-07-19",
"status": "gap_registry_v1",
"production_tuning_allowed": false,
"source_scan_policy": "Local repo + referenced OSS/web sources only; .workbuddy remains read-only reference.",
"top_external_references": [
{
"name": "VedicAstro",
"url": "https://github.com/diliprk/VedicAstro",
"relevance": "KP-focused open source surface: planet/house significators, KP horary ascendant, nakshatra/sub-lord style timing candidates."
},
{
"name": "Kala calculation list",
"url": "https://www.vedic-astrology.net/kala/List-of-Calculations.asp",
"relevance": "Commercial top-tier feature reference for KP cusps, nakshatra lords and sub-lords."
}
],
"items": [
{
"technique_id": "kp_cusps",
"local_code_status": "partial",
"skill_invocation_status": "reference_only",
"api_ui_entry_status": "partial_api_no_truth_gate",
"external_oracle_status": "missing",
"commercial_sync_status": "blocked_until_oracle",
"claim_boundary": "Reference/probe only until KP house cusp settings, ayanamsa, Placidus/KP house contract and numeric oracle pass."
},
{
"technique_id": "star_sub_lord",
"local_code_status": "minimal_probe_present",
"skill_invocation_status": "not_invoked_runtime_probe_available",
"api_ui_entry_status": "missing_api_probe_script_available",
"external_oracle_status": "partial_sublord_csv_only",
"commercial_sync_status": "blocked_until_oracle",
"claim_boundary": "Reference/probe only; KP star/sub-lord fields are exposed by scripts/kp_precision_timing_probe.py but cannot make precise event claims until exact cusp oracle and holdout gates close."
},
{
"technique_id": "ruling_planets",
"local_code_status": "missing_runtime",
"skill_invocation_status": "not_invoked",
"api_ui_entry_status": "missing",
"external_oracle_status": "missing",
"commercial_sync_status": "blocked_until_oracle",
"claim_boundary": "Reference/probe only; ruling planets cannot drive rectification or timing before external oracle and negative holdout gates."
},
{
"technique_id": "kp_significators",
"local_code_status": "minimal_probe_present",
"skill_invocation_status": "not_invoked_runtime_probe_available",
"api_ui_entry_status": "missing_api_probe_script_available",
"external_oracle_status": "missing_significator_oracle",
"commercial_sync_status": "blocked_until_oracle",
"claim_boundary": "Reference/probe only; significator ABCD tables are exposed by scripts/kp_precision_timing_probe.py but require exact cusp contract and field-level oracle before runtime use."
},
{
"technique_id": "kp_horary",
"local_code_status": "missing_runtime",
"skill_invocation_status": "not_invoked",
"api_ui_entry_status": "missing",
"external_oracle_status": "missing",
"commercial_sync_status": "research_only",
"claim_boundary": "Research-only until question-time input contract, KP number handling, and external examples are available."
}
]
}
@@ -0,0 +1,66 @@
{
"scope": "muhurta_full_system_gap_registry",
"created_at": "2026-07-19",
"status": "gap_registry_v1",
"production_tuning_allowed": false,
"source_scan_policy": "Compare local Panchanga/Muhurta fragments against top-tier Muhurta software surfaces before implementation.",
"top_external_references": [
{
"name": "Kala calculation list",
"url": "https://www.vedic-astrology.net/kala/List-of-Calculations.asp",
"relevance": "Extensive Muhurta feature surface: Vara, Hora, Rahu Kalam, Sankranti, Vyatipata, Vaidhriti and Panchanga factors."
},
{
"name": "dashaflow reference candidate",
"url": "references/open_source_sources/dashaflow",
"relevance": "Local OSS candidate requiring license/formula audit before adaptation."
}
],
"items": [
{
"technique_id": "panchanga_base",
"local_code_status": "present",
"skill_invocation_status": "invoked_as_supporting_layer",
"api_ui_entry_status": "partial",
"external_oracle_status": "partial",
"commercial_sync_status": "ready_after_guarded_contract",
"claim_boundary": "Can support day context, but cannot be marketed as full Muhurta scoring."
},
{
"technique_id": "full_muhurta_scoring",
"local_code_status": "missing_runtime",
"skill_invocation_status": "reference_only",
"api_ui_entry_status": "missing",
"external_oracle_status": "missing",
"commercial_sync_status": "blocked_until_oracle",
"claim_boundary": "Do not present as auspicious-date selection until Tarabala/Chandrabala/Panchaka/Rahu Kalam weights and examples are validated."
},
{
"technique_id": "tarabala_chandrabala",
"local_code_status": "partial_or_fragment",
"skill_invocation_status": "not_invoked",
"api_ui_entry_status": "missing",
"external_oracle_status": "missing",
"commercial_sync_status": "blocked_until_oracle",
"claim_boundary": "Observation-only until natal Moon matching, Tara sequence, Chandra Bala rules and external examples pass."
},
{
"technique_id": "rahu_yamaganda_gulika_kalam",
"local_code_status": "partial",
"skill_invocation_status": "not_invoked",
"api_ui_entry_status": "missing",
"external_oracle_status": "partial",
"commercial_sync_status": "ready_after_guarded_contract",
"claim_boundary": "Can be shown as Panchanga interval after sunrise/sunset contract; not a full Muhurta verdict."
},
{
"technique_id": "abhijit_sankranti_vyatipata_vaidhriti",
"local_code_status": "missing_runtime",
"skill_invocation_status": "reference_only",
"api_ui_entry_status": "missing",
"external_oracle_status": "missing",
"commercial_sync_status": "blocked_until_oracle",
"claim_boundary": "Reference-only until formula source, timezone handling and worked examples close."
}
]
}
+88
View File
@@ -0,0 +1,88 @@
#!/usr/bin/env python3
"""Minimal KP star/sub-lord + significator probe.
This is a probe artifact, not a timing oracle. It reuses the local
`kp_system.py` implementation and keeps exact event timing blocked until
external examples and negative holdout validation exist.
"""
from __future__ import annotations
import hashlib
import json
from pathlib import Path
from typing import Any
from kp_system import calc_kp_analysis
ROOT = Path(__file__).resolve().parents[1]
CANONICAL_PLANETS = {
"Sun": {"sign": "Aries", "degree": 10.0, "house": 1},
"Moon": {"sign": "Taurus", "degree": 5.0, "house": 2},
"Mars": {"sign": "Gemini", "degree": 18.0, "house": 3},
"Mercury": {"sign": "Pisces", "degree": 22.0, "house": 12},
"Jupiter": {"sign": "Cancer", "degree": 12.0, "house": 4},
"Venus": {"sign": "Aquarius", "degree": 27.0, "house": 11},
"Saturn": {"sign": "Capricorn", "degree": 3.0, "house": 10},
"Rahu": {"sign": "Scorpio", "degree": 17.0, "house": 8},
"Ketu": {"sign": "Taurus", "degree": 17.0, "house": 2},
}
def _stable_hash(data: Any) -> str:
payload = json.dumps(data, ensure_ascii=False, sort_keys=True, separators=(",", ":"))
return hashlib.sha256(payload.encode("utf-8")).hexdigest()
def build_probe() -> dict[str, Any]:
raw = calc_kp_analysis(CANONICAL_PLANETS, asc_sign="Aries")
planets = raw.get("planets", {})
houses = raw.get("houses", {})
kp_lords_by_planet = {
planet: value.get("kp_lords", {})
for planet, value in sorted(planets.items())
}
planet_significators = {
planet: value.get("significators", {})
for planet, value in sorted(planets.items())
}
house_significators = {
str(house): value.get("significators", {})
for house, value in sorted(houses.items(), key=lambda item: int(item[0]))
}
return {
"scope": "kp_star_sub_lord_significator_probe",
"created_at": "2026-07-19",
"production_tuning_allowed": False,
"claim_status": "probe_only_not_timing_truth",
"external_oracle_status": "partial_sublord_csv_only",
"negative_holdout_status": "missing",
"input_contract": {
"planet_format": "{planet: {sign, degree_in_sign, house}}",
"asc_sign": "Aries",
"ayanamsa": "caller_supplied_sidereal_positions",
"house_contract": "whole-sign house probe, not precise KP cusp oracle",
},
"local_reuse": {
"module": "scripts/kp_system.py",
"functions": ["calc_kp_analysis", "get_kp_lords", "get_planet_significators", "get_house_significators"],
"license_boundary": "Local implementation cites diliprk/VedicAstro MIT; keep source/oracle audit before commercial precise timing.",
},
"kp_lords_by_planet": kp_lords_by_planet,
"planet_significators": planet_significators,
"house_significators": house_significators,
"raw_sha256": _stable_hash(raw),
"claim_boundary": "This probe can expose KP star/sub-lord and significator fields, but cannot drive precise event timing without exact KP cusp oracle and independent negative holdout validation.",
}
def main() -> int:
print(json.dumps(build_probe(), ensure_ascii=False, indent=2, sort_keys=True))
return 0
if __name__ == "__main__":
raise SystemExit(main())
+78
View File
@@ -0,0 +1,78 @@
from __future__ import annotations
import json
from pathlib import Path
ROOT = Path(__file__).resolve().parents[1]
REGISTRY_DIR = ROOT / "references/oracle"
REGISTRIES = [
"kp_precision_timing_gap_registry_2026_07_19.json",
"muhurta_full_system_gap_registry_2026_07_19.json",
"ashtakavarga_advanced_usage_gap_registry_2026_07_19.json",
"compatibility_full_system_gap_registry_2026_07_19.json",
]
REQUIRED_FIELDS = {
"technique_id",
"local_code_status",
"skill_invocation_status",
"api_ui_entry_status",
"external_oracle_status",
"commercial_sync_status",
"claim_boundary",
}
def _load(name: str) -> dict:
return json.loads((REGISTRY_DIR / name).read_text(encoding="utf-8"))
def test_high_value_gap_registries_exist_and_keep_required_fields() -> None:
for name in REGISTRIES:
data = _load(name)
assert data["status"] == "gap_registry_v1"
assert data["production_tuning_allowed"] is False
assert data["items"]
for item in data["items"]:
assert REQUIRED_FIELDS.issubset(item)
assert item["claim_boundary"]
assert item["commercial_sync_status"] in {
"ready_after_guarded_contract",
"research_only",
"blocked_until_oracle",
"not_for_commercial_runtime",
}
def test_kp_registry_keeps_precision_timing_blocked_without_oracle() -> None:
data = _load("kp_precision_timing_gap_registry_2026_07_19.json")
ids = {item["technique_id"]: item for item in data["items"]}
assert {"kp_cusps", "star_sub_lord", "ruling_planets", "kp_significators", "kp_horary"}.issubset(ids)
assert ids["star_sub_lord"]["local_code_status"] == "minimal_probe_present"
assert ids["star_sub_lord"]["external_oracle_status"] == "partial_sublord_csv_only"
assert ids["kp_significators"]["local_code_status"] == "minimal_probe_present"
assert ids["kp_significators"]["claim_boundary"].startswith("Reference/probe only")
def test_muhurta_registry_distinguishes_panchanga_from_full_muhurta() -> None:
data = _load("muhurta_full_system_gap_registry_2026_07_19.json")
ids = {item["technique_id"]: item for item in data["items"]}
assert ids["panchanga_base"]["local_code_status"] == "present"
assert ids["full_muhurta_scoring"]["local_code_status"] == "missing_runtime"
assert ids["full_muhurta_scoring"]["claim_boundary"].startswith("Do not present")
def test_ashtakavarga_advanced_registry_keeps_advanced_usage_observation_only() -> None:
data = _load("ashtakavarga_advanced_usage_gap_registry_2026_07_19.json")
ids = {item["technique_id"]: item for item in data["items"]}
assert ids["bav_sav_core"]["local_code_status"] == "present"
assert ids["kakshya_transit"]["external_oracle_status"] == "missing"
assert ids["annual_sav_timing_scan"]["commercial_sync_status"] == "blocked_until_oracle"
def test_compatibility_registry_separates_basic_koota_from_advanced_overlays() -> None:
data = _load("compatibility_full_system_gap_registry_2026_07_19.json")
ids = {item["technique_id"]: item for item in data["items"]}
assert ids["ashtakoota_core"]["local_code_status"] == "present"
assert ids["composite_davidson_charts"]["commercial_sync_status"] == "not_for_commercial_runtime"
assert ids["relationship_av_overlay"]["external_oracle_status"] == "missing"
+50
View File
@@ -0,0 +1,50 @@
from __future__ import annotations
import json
import subprocess
import sys
from pathlib import Path
ROOT = Path(__file__).resolve().parents[1]
PROBE = ROOT / "scripts" / "kp_precision_timing_probe.py"
def test_kp_precision_timing_probe_outputs_star_sub_lord_and_significators() -> None:
completed = subprocess.run(
[sys.executable, str(PROBE)],
cwd=ROOT,
check=True,
capture_output=True,
text=True,
)
report = json.loads(completed.stdout)
assert report["scope"] == "kp_star_sub_lord_significator_probe"
assert report["claim_status"] == "probe_only_not_timing_truth"
assert report["production_tuning_allowed"] is False
assert report["raw_sha256"]
assert "Sun" in report["kp_lords_by_planet"]
sun_lords = report["kp_lords_by_planet"]["Sun"]
assert {"rasi_lord", "nakshatra_lord", "sub_lord", "sub_sub_lord"} <= set(sun_lords)
assert "Sun" in report["planet_significators"]
assert {"A", "B", "C", "D"} <= set(report["planet_significators"]["Sun"])
assert "10" in report["house_significators"]
assert {"A", "B", "C", "D"} <= set(report["house_significators"]["10"])
def test_kp_precision_timing_probe_preserves_oracle_and_holdout_blockers() -> None:
completed = subprocess.run(
[sys.executable, str(PROBE)],
cwd=ROOT,
check=True,
capture_output=True,
text=True,
)
report = json.loads(completed.stdout)
assert report["external_oracle_status"] == "partial_sublord_csv_only"
assert report["negative_holdout_status"] == "missing"
assert "cannot drive precise event timing" in report["claim_boundary"]