Firdaria (LOG-11) — perska technika time-lord

- engine/firdaria.py: sekta (dzień = Słońce nad horyzontem, ta sama półkula
  osi Asc-Dsc co MC); kolejność diurnalna/nokturnalna; klasyczne długości
  okresów (Su10 Ve8 Me13 Mo9 Sa11 Ju12 Ma7 + NN3 + SN2 = 75 lat); okresy główne
  planet dzielone na 7 podokresów (sub-lord od władcy okresu), węzły bez sub.
- endpoint /chart/firdaria.
- oś czasu: firdaria_events — starty (pod)okresów w oknie; wpięte w build_timeline
  (domyślnie) + tokeny [major][sub] do dopięcia interpretacji (1B->2B).

Walidacja:
- sekta = day dla horoskopu referencyjnego (zgodnie z notes3 "Day birth");
  night gdy Słońce po stronie IC; sumy i przyleganie okresów; podokresy 7x
  sumujące się do okresu; wiek 42 w okresie Saturna.
- E2E: okresy Sun 1984-1994 ... Saturn 2024-2035; w osi czasu
  "Firdaria: Saturn / Mars" 2027 -> 223 interpretacje ([Sa+[Ma -> "injury").
- 78 testów przechodzi (nowy test_firdaria).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-17 22:48:53 +02:00
parent cff0ac194c
commit 9d5b65ddbd
6 changed files with 172 additions and 2 deletions
+9
View File
@@ -222,6 +222,15 @@ def _event_tokens(event: dict) -> list[str]:
if sign:
toks.append("[" + sign)
return toks if lord else []
if event.get("technique") == "firdaria":
major = PLANET_ABBR.get(event.get("fd_major"))
sub = PLANET_ABBR.get(event.get("fd_sub"))
toks = []
if major:
toks.append("[" + major)
if sub:
toks.append("[" + sub)
return toks if major else []
return []