Add Einstein Tajika annual fill map

This commit is contained in:
732642856
2026-06-27 15:06:20 +08:00
parent 3e7ffd2a29
commit 9dc7a4c180
3 changed files with 96 additions and 7 deletions
@@ -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.
@@ -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
@@ -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