diff --git a/docs/benchmark/tajika_einstein_1905_fill_map.md b/docs/benchmark/tajika_einstein_1905_fill_map.md new file mode 100644 index 00000000..1de6b323 --- /dev/null +++ b/docs/benchmark/tajika_einstein_1905_fill_map.md @@ -0,0 +1,57 @@ +# Tajika Einstein 1905 Fill Map + +Packet: `template_einstein_varshaphala_1905_lahiri` +Apply target: `references/oracle/artifacts/pending_packets/external_template_einstein_varshaphala_1905_lahiri.json` + +This map exists to reduce guesswork while filling the next Tajika / Sahams annual external oracle packet. + +Record the exact solar-return convention in `metadata.operator_note`, especially timezone/DST handling and whether the tool computes the annual chart at exact solar return. + +## Metadata + +| Field | What to write | Source | +|---|---|---| +| `metadata.tool_name` | `JHora`, `PyJHora`, or book/source name | The external tool or book you used | +| `metadata.tool_version_or_url` | Version string, release tag, or bibliographic pointer | Tool about dialog, stdout header, or citation | +| `metadata.capture_date` | Date of capture in `YYYY-MM-DD` | The day you captured the evidence | +| `metadata.source_artifact` | Repo-relative file under `references/oracle/artifacts/` | Redacted screenshot, stdout snippet, or citation note | +| `metadata.operator_note` | A short note about ayanamsa, node mode, timezone, and solar-return convention | Your own note from the run | + +## Annual Targets + +| Field | What to copy | Preferred place to read it | +|---|---|---| +| `target.solar_return_datetime` | Exact solar return timestamp with offset if shown | JHora annual chart header, PyJHora annual output header, or printed example note | +| `target.varsha_lagna_deg` | Varsha Lagna degree in absolute zodiac degrees | Annual chart ascendant line or annual report table | +| `target.muntha_sign` | Muntha sign name | Muntha section in the annual chart report | +| `target.year_lord` | Year Lord name | Year Lord / Varshesha section | +| `target.mudda_dasha_first_lord` | First Mudda Dasha lord | Mudda Dasha table, first row | +| `target.sahams.punya_saham` | Punya Saham absolute degree | Sahams table | +| `target.sahams.rajya_saham` | Rajya Saham absolute degree | Sahams table | +| `target.sahams.vivah_saham` | Vivah Saham absolute degree | Sahams table | +| `target.tajika_yogas` | Visible yoga structure exactly as the external source presents it | Tajika Yogas screen or stdout block | +| `target.source_artifact` | Same artifact path or a more specific annual proof file | Same evidence set as `metadata.source_artifact` | + +## Screen Checklist + +Use one external source only per pass: + +1. `JHora` Varshaphala/Tajika annual chart screen, or +2. `PyJHora` black-box annual output, or +3. one printed Tajika/Varshaphala example. + +Capture only what is needed: + +1. Settings screen: ayanamsa, node mode, location, target year, solar-return convention. +2. Annual chart header: solar return datetime. +3. Annual ascendant / Varsha Lagna line. +4. Muntha / Year Lord section. +5. Mudda Dasha section. +6. Sahams section. +7. Tajika Yogas section. + +## Boundary + +- Do not use local `scripts/varshaphala.py` output as evidence. +- Do not mix multiple tools into one single packet unless `metadata.operator_note` explicitly documents it. +- Keep `target.tajika_yogas` faithful to the external source labels rather than translating them through local interpretation logic. diff --git a/tests/test_tajika_einstein_1905_fill_map.py b/tests/test_tajika_einstein_1905_fill_map.py new file mode 100644 index 00000000..c3566a0b --- /dev/null +++ b/tests/test_tajika_einstein_1905_fill_map.py @@ -0,0 +1,31 @@ +#!/usr/bin/env python3 +"""Tests for the Einstein 1905 Tajika annual human fill map.""" + +from __future__ import annotations + +from pathlib import Path + + +ROOT = Path(__file__).resolve().parents[1] +DOC = ROOT / "docs" / "benchmark" / "tajika_einstein_1905_fill_map.md" + + +def test_tajika_einstein_1905_fill_map_is_field_level_and_actionable() -> None: + text = DOC.read_text(encoding="utf-8") + + assert "# Tajika Einstein 1905 Fill Map" in text + assert "template_einstein_varshaphala_1905_lahiri" in text + assert "metadata.tool_name" in text + assert "metadata.source_artifact" in text + assert "target.solar_return_datetime" in text + assert "target.varsha_lagna_deg" in text + assert "target.muntha_sign" in text + assert "target.year_lord" in text + assert "target.mudda_dasha_first_lord" in text + assert "target.sahams.punya_saham" in text + assert "target.sahams.rajya_saham" in text + assert "target.sahams.vivah_saham" in text + assert "target.tajika_yogas" in text + assert "JHora" in text + assert "PyJHora" in text + assert "solar-return convention" in text diff --git a/tests/test_tajika_first_packet_operator_card.py b/tests/test_tajika_first_packet_operator_card.py index e9cc0ce5..5c4e506a 100644 --- a/tests/test_tajika_first_packet_operator_card.py +++ b/tests/test_tajika_first_packet_operator_card.py @@ -8,31 +8,33 @@ from pathlib import Path ROOT = Path(__file__).resolve().parents[1] -CARD = ROOT / "docs" / "benchmark" / "tajika_steve_jobs_1984_first_packet_operator_card.md" -PACKET = ROOT / "references" / "oracle" / "evidence_packet_templates" / "tajika_steve_jobs_1984_first_packet.json" +CARD = ROOT / "docs" / "benchmark" / "tajika_einstein_1905_first_packet_operator_card.md" +PACKET = ROOT / "references" / "oracle" / "artifacts" / "pending_packets" / "external_template_einstein_varshaphala_1905_lahiri.json" def test_tajika_first_packet_operator_card_is_actionable() -> None: text = CARD.read_text(encoding="utf-8") assert "# First Tajika/Sahams Annual Oracle Packet Operator Card" in text - assert "template_steve_jobs_varshaphala_1984_lahiri" in text + assert "template_einstein_varshaphala_1905_lahiri" in text assert "target.solar_return_datetime" in text assert "target.sahams.punya_saham" in text assert "target.tajika_yogas" in text assert "solar-return convention" in text assert "--apply-packet" in text assert "tajika_annual_benchmark_dashboard.py" in text + assert "target.year_lord" in text + assert "target.mudda_dasha_first_lord" in text def test_tajika_first_packet_template_contains_only_annual_targets() -> None: packet = json.loads(PACKET.read_text(encoding="utf-8")) - assert packet["capture_id"] == "external_template_steve_jobs_varshaphala_1984_lahiri" + assert packet["capture_id"] == "external_template_einstein_varshaphala_1905_lahiri" assert packet["status"] == "draft" - assert packet["case_id"] == "template_steve_jobs_varshaphala_1984_lahiri" + assert packet["case_id"] == "template_einstein_varshaphala_1905_lahiri" assert packet["metadata"]["source_artifact"] == "references/oracle/artifacts/" - assert packet["settings"]["target_year"] == 1984 + assert packet["settings"]["target_year"] == 1905 assert set(packet["target_placeholders"]) == { "target.solar_return_datetime", "target.varsha_lagna_deg", @@ -45,5 +47,4 @@ def test_tajika_first_packet_template_contains_only_annual_targets() -> None: "target.tajika_yogas", "target.source_artifact", } - assert packet["operator_goal"] == "Fill one external Varshaphala/Tajika annual chart packet." assert packet["integrity_checks"]["must_not_come_from_local_engine"] is True