Retarget Tajika packet assistant to Einstein 1905

This commit is contained in:
732642856
2026-06-27 14:55:08 +08:00
parent 16a4c81746
commit 3e7ffd2a29
4 changed files with 110 additions and 10 deletions
@@ -0,0 +1,93 @@
# First Tajika/Sahams Annual Oracle Packet Operator Card
Goal: fill one external annual-chart packet for `template_einstein_varshaphala_1905_lahiri`.
This is for Varshaphala / Tajika / Sahams only. Do not use local `scripts/varshaphala.py` output as evidence.
## Birth And Year
- Birth date: `1879-03-14`
- Birth time: `11:30:00`
- Birth place: Ulm, Germany
- Coordinates: `48.3984, 9.9916`
- Birth timezone: `0.883333`
- Ayanamsa: `lahiri`
- Node mode: `mean`
- Target annual year: `1905`
## External Tool
Use one external black-box source:
- JHora Varshaphala/Tajika annual chart screen, or
- PyJHora black-box annual output, or
- a printed Tajika/Varshaphala example.
Record the solar-return convention in `metadata.operator_note`, including timezone/DST handling and whether the tool calculates the annual chart at exact solar return.
## Fill This Packet
Template:
`references/oracle/artifacts/pending_packets/external_template_einstein_varshaphala_1905_lahiri.json`
Required metadata:
- `status`: set to `external_verified`
- `metadata.tool_name`
- `metadata.tool_version_or_url`
- `metadata.capture_date`
- `metadata.source_artifact`
- `metadata.operator_note`
Required target fields:
- `target.solar_return_datetime`
- `target.varsha_lagna_deg`
- `target.muntha_sign`
- `target.year_lord`
- `target.mudda_dasha_first_lord`
- `target.sahams.punya_saham`
- `target.sahams.rajya_saham`
- `target.sahams.vivah_saham`
- `target.tajika_yogas`
- `target.source_artifact`
Save the redacted screenshot, stdout snippet, or book citation under `references/oracle/artifacts/`.
## Screen Checklist
Capture only what is needed:
1. Settings screen: ayanamsa, node mode, location, target year and solar-return convention.
2. Varshaphala chart: solar return datetime and Varsha Lagna.
3. Muntha / Year Lord screen: Muntha sign and Year Lord.
4. Mudda Dasha screen: first Mudda Dasha lord.
5. Sahams screen: Punya Saham, Rajya Saham and Vivah Saham.
6. Tajika Yogas screen: visible yogas such as Ithasala, Easarapha, Nakta or other tool labels.
## Apply
```bash
python3 scripts/tajika_annual_oracle_queue.py \
--oracle-file references/oracle/tajika_annual_oracle_cases.json \
--apply-packet references/oracle/artifacts/pending_packets/external_template_einstein_varshaphala_1905_lahiri.json \
--format json
```
## Validate
```bash
python3 scripts/tajika_annual_oracle_queue.py \
--oracle-file references/oracle/tajika_annual_oracle_cases.json \
--format json
python3 scripts/tajika_annual_benchmark_dashboard.py \
--oracle-file references/oracle/tajika_annual_oracle_cases.json \
--format json
```
Expected first milestone after real external evidence is filled:
- Tajika/Sahams annual closure board moves from `external_verified_annual_tasks: 1` to at least `2`.
- Master dashboard still keeps `can_claim_global_oracle_closure: false` until all external oracle fronts are complete.
+13 -6
View File
@@ -41,8 +41,8 @@ FRONTS = {
"--format",
"json",
],
"operator_card": "docs/benchmark/tajika_steve_jobs_1984_first_packet_operator_card.md",
"packet_template": "references/oracle/evidence_packet_templates/tajika_steve_jobs_1984_first_packet.json",
"operator_card": "docs/benchmark/tajika_einstein_1905_first_packet_operator_card.md",
"packet_template": "references/oracle/artifacts/pending_packets/external_template_einstein_varshaphala_1905_lahiri.json",
"external_sources": [
"JHora Varshaphala/Tajika annual chart screen",
"PyJHora black-box annual output",
@@ -173,10 +173,17 @@ def build_report(front: str) -> dict[str, Any]:
raise RuntimeError(f"Unsupported front: {front}")
config = FRONTS[front]
status = _run_json(config["status_command"])
first = status["first_priority"]
packet = json.loads((ROOT / config["packet_template"]).read_text(encoding="utf-8"))
first = status.get("first_priority") or {
"case_id": packet.get("case_id"),
"capture_id": packet.get("capture_id"),
"apply_command": "",
"validate_command": "",
"packet_path": config["packet_template"],
}
packet_missing = _packet_missing(config["packet_template"])
missing_groups = _group_missing_fields(packet_missing)
packet = json.loads((ROOT / config["packet_template"]).read_text(encoding="utf-8"))
apply_command = first["apply_command"].replace(first["packet_path"], config["packet_template"]) if first.get("apply_command") else ""
return {
"scope": "first_external_oracle_packet_assistant",
"schema_version": 1,
@@ -191,8 +198,8 @@ def build_report(front: str) -> dict[str, Any]:
"manual_fill_plan": _manual_fill_plan(packet, packet_missing),
"ready_to_apply": not packet_missing,
"external_sources": config["external_sources"],
"apply_command": first["apply_command"].replace(first["packet_path"], config["packet_template"]),
"validate_command": first["validate_command"],
"apply_command": apply_command,
"validate_command": first.get("validate_command", ""),
"boundary": (
"This assistant only reports what to fill. It must not invent external oracle values, "
"must not use local engine output as evidence, and must not copy incompatible external code."
+3 -3
View File
@@ -93,9 +93,9 @@ def test_first_oracle_packet_assistant_reports_tajika_front() -> None:
assert completed.returncode == 0, completed.stderr or completed.stdout
report = json.loads(completed.stdout)
assert report["front"] == "tajika_sahams"
assert report["case_id"] == "template_steve_jobs_varshaphala_1984_lahiri"
assert report["operator_card"].endswith("tajika_steve_jobs_1984_first_packet_operator_card.md")
assert report["packet_template"].endswith("tajika_steve_jobs_1984_first_packet.json")
assert report["case_id"] == "template_einstein_varshaphala_1905_lahiri"
assert report["operator_card"].endswith("tajika_einstein_1905_first_packet_operator_card.md")
assert report["packet_template"].endswith("external_template_einstein_varshaphala_1905_lahiri.json")
assert report["missing_groups"]["metadata"]["count"] == 5
assert report["missing_groups"]["target"]["count"] == 10
assert report["manual_fill_plan"]["manual_entry_count"] == 15
+1 -1
View File
@@ -46,7 +46,7 @@ def test_generate_blank_oracle_writes_first_packet_kit(tmp_path: Path) -> None:
assert manifest_data["fronts"]["shadbala"]["missing_field_count"] == 55
dasha_packet = tmp_path / "dasha" / "external_template_steve_jobs_dasha_lahiri.json"
tajika_packet = tmp_path / "tajika_sahams" / "external_template_steve_jobs_varshaphala_1984_lahiri.json"
tajika_packet = tmp_path / "tajika_sahams" / "external_template_einstein_varshaphala_1905_lahiri.json"
shadbala_packet = tmp_path / "shadbala" / "external_template_redacted_place_shadbala_raman.json"
assert dasha_packet.exists()
assert tajika_packet.exists()