diff --git a/docs/analiza-klient-2026-09.md b/docs/analiza-klient-2026-09.md index 5717b66..674a627 100644 --- a/docs/analiza-klient-2026-09.md +++ b/docs/analiza-klient-2026-09.md @@ -2,145 +2,203 @@ Źródła: - `astro parser TO DO LIST 2026-09-05.xlsx` — dalej **TO DO**, -- `astro parser_2026-09-13.docx` — dalej **specyfikacja**. +- `astro parser_2026-09-13.docx` — dalej **specyfikacja**, +- dosłane 2026-10-04: `wznoszenie znaków ascensional times.xlsx` i `fidaria calculator.xls`. Architektura (trzy warstwy) zostaje bez zmian. Uwagi klienta o architekturze i stosie technologicznym są tu celowo pominięte. -Legenda pewności: **[kod]** sprawdzone w kodzie · **[rejestr]** status z `astrololo_wymagania.xlsx`, niezweryfikowany w kodzie · **[hipoteza]** wniosek z objawów, niesprawdzony. +Wnioski są naniesione do rejestru `astrololo_wymagania.xlsx` w tym samym PR. Każda zmiana — z wartością „było / jest", powodem i dowodem — jest w arkuszu **„Zmiany 2026-10"**. + +Legenda pewności: **[kod]** sprawdzone w kodzie · **[hipoteza]** wniosek z objawów, niesprawdzony. ## TL;DR -1. **Interpretacje pokazują sygnifikatory, których w horoskopie nie ma.** Klient ma rację, mechanizm potwierdzony w kodzie. To nie nowe wymaganie, tylko błąd w działającej funkcji — i ten sam błąd zasila prompt do LLM. -2. **Specyfikacja (docx) to w ~90% wynik AI, którego klient jeszcze nie przejrzał.** W części 2 z 21 stoi znacznik „{DOTĄD SPRAWDZONE}". Nie traktować jej jako wymagań — to skorowidz do sprawdzania algorytmów. -3. **Prawdziwą listą priorytetów jest TO DO (xlsx).** Astrologia wedyjska, chińska i majańska występuje wyłącznie w specyfikacji; w TO DO jej nie ma. -4. **Trzy zmiany przekrojowe:** interfejs po angielsku, wyłącznie jasny motyw z kolorowaniem, tabele w formie „symbol + skrót". -5. **Część pozycji z TO DO już istnieje** (paralele, draconic, stacje, profekcje, zbiorcza tabela predykcji) — klient może o tym nie wiedzieć albo chce innego formatu. +1. **Interpretacje pokazują sygnifikatory, których w horoskopie nie ma.** Klient ma rację, mechanizm potwierdzony w kodzie, a ten sam błąd zasila prompt do LLM. Dodatkowo wyszukiwanie ucina rekordy limitem 5000, więc część bazy w ogóle nie jest sprawdzana. +2. **Specyfikacja (docx) to w ~90% wynik AI, którego klient jeszcze nie przejrzał** (znacznik „{DOTĄD SPRAWDZONE}" w części 2 z 21). Służy jako skorowidz, nie jako wymagania. +3. **Priorytety bierzemy z TO DO.** Astrologia wedyjska, chińska i majańska występuje tylko w specyfikacji — trafiła do pytań (Q-15), nie do wymagań. +4. **Wygląd i interfejs zapisane jako opcje do wyboru:** język, motyw jasny obok obecnego ciemnego, kolorowanie, „symbol + skrót", styl koła. +5. **Rejestr:** 56 nowych wymagań, 103 zmiany w istniejących, 34 nowe pytania (Q-15…Q-48), 21 haseł słownika. +6. **17 statusów skorygowanych w dół.** Te wiersze już w pierwotnej treści obiecywały funkcje, których w kodzie nie ma. +7. **Pięć plików z `docs/` celowo poza repozytorium** — kupione bazy i dane osobowe (sekcja 7). ## 1. Interpretacje działają źle (potwierdzone w kodzie) -**Zgłoszenie (TO DO, wiersz 11, \*\*\*).** Pod nagłówkiem „Sun w Taurus" pojawia się rekord „Sun in Gemini or Sagittarius, in square or opposition the Moon", choć żaden z warunków nie zachodzi. Fasetka „koniunkcja z Moon — 84 dopasowań" zbiera każdą koniunkcję czegokolwiek z Księżycem. Pokazują się też rekordy o dyrekcjach („by dir."), których nie liczymy, oraz o godnościach („well-dig. at B."), które w tym horoskopie nie są spełnione. +**Zgłoszenie (TO DO, wiersz 11, \*\*\*).** Pod nagłówkiem „Sun w Taurus" pojawia się rekord „Sun in Gemini or Sagittarius, in square or opposition the Moon", choć żaden z warunków nie zachodzi. Fasetka „koniunkcja z Moon — 84 dopasowań" zbiera każdą koniunkcję czegokolwiek z Księżycem. Pokazują się też rekordy o dyrekcjach („by dir."), których nie liczymy, i o godnościach („well-dig. at B."), które w tym horoskopie nie są spełnione. -**Mechanizm [kod].** `_facet_samples` w [significators.py](../services/logic/app/significators.py#L70) przepuszcza rekord, jeśli tekst jego sygnifikatora *zawiera* wszystkie tokeny fasetki ([linia 82](../services/logic/app/significators.py#L82): `if not all(t in low for t in toks)`). Sprawdza więc, czy rekord *wspomina* te tokeny, a nie czy *wszystkie warunki rekordu* są spełnione w horoskopie. Skutki: +**Mechanizm [kod].** `_facet_samples` w [significators.py](../services/logic/app/significators.py#L70) przepuszcza rekord, jeśli tekst jego sygnifikatora *zawiera* wszystkie tokeny fasetki ([linia 82](../services/logic/app/significators.py#L82)). Sprawdza więc, czy rekord *wspomina* te tokeny, a nie czy *wszystkie jego warunki* są spełnione w horoskopie. Skutki: -- Nie rozróżnia, **która** planeta jest w aspekcie. Rekord `[Ve [conj [Mo … [Su in 7th H.` trafia do fasetki „Słońce w koniunkcji z Księżycem", bo zawiera `[Su`, `[conj` i `[Mo`. -- Ignoruje **dodatkowe warunki** rekordu: inny znak („Gem or Sag"), inny aspekt („sq or opp"), kwalifikatory techniki („by dir.", „tr."), godności („at B."). -- „[Su: 5415 rekordów" w nagłówku to `planet_total` — liczba wszystkich rekordów wspominających Słońce, bez żadnego dopasowania. +- Nie rozróżnia, **która** planeta jest w aspekcie. Rekord `[Ve [conj [Mo … [Su in 7th H.` trafia do fasetki „Słońce w koniunkcji z Księżycem". +- Ignoruje **dodatkowe warunki** rekordu: inny znak, inny aspekt, kwalifikatory techniki („by dir.", „tr."), godności („at B."). +- **Limit 5000 [kod].** Wyszukiwanie po tokenie planety jest ucinane do 5000 rekordów ([main.py](../services/logic/app/main.py#L253), [excel_provider.py](../services/data/app/providers/excel_provider.py#L166)). Licznik „[Su: 5415 rekordów" jest liczony *przed* ucięciem, więc ok. 400 rekordów Słońca nigdy nie trafia do sprawdzania, a liczba w nagłówku nie odpowiada temu, co sprawdzono. -Ta sama funkcja obsługuje ścieżkę kalendarza ([`interpret_events`](../services/logic/app/significators.py#L265)), więc wada dotyczy obu ekranów. +Ta sama funkcja obsługuje Kalendarz ([`interpret_events`](../services/logic/app/significators.py#L265)), a generator promptów (LOG-29/30) bierze dopasowania z tego samego `build_report` ([main.py](../services/logic/app/main.py#L338), [prompt.py](../services/logic/app/prompt.py#L66)). Model z przekonaniem cytuje więc świadectwa, których w horoskopie nie ma. -**Dlaczego to pilne.** Generator promptów (LOG-29/30) bierze dopasowania z tego samego `build_report` ([main.py](../services/logic/app/main.py#L338), [prompt.py](../services/logic/app/prompt.py#L66)), a prompt każe modelowi popierać każdą tezę konkretnym sygnifikatorem. Model z przekonaniem cytuje więc świadectwa, których w horoskopie nie ma. +**W rejestrze:** +- LOG-15 (parser) → „Do zrobienia"; +- LOG-16 (atomy) i LOG-19 (wypis) → „W trakcie"; +- kryteria odbioru naprawy, z przykładami klienta jako testami, są w LOG-19; +- ekran opisuje PRE-36; +- przypadek „rekord nie do oceny" — pytanie Q-35. -**Rozbieżność z rejestrem.** LOG-15, LOG-16 i LOG-19 mają status „Zrobione", a docstring modułu sam nazywa ten kod „Zalążkiem LOG-15/16". Statusy do korekty. +## 2. Czym są te dokumenty -**Co trzeba zrobić.** Prawdziwy ewaluator zamiast dopasowania tokenów: rozbiór sygnifikatora na drzewo warunków (koniunkcja klauzul, alternatywy „or", kwalifikatory techniki i godności) i sprawdzenie każdej klauzuli względem atomów policzonych dla horoskopu. Rekord z warunkiem, którego nie umiemy sprawdzić (dyrekcje, godności), ma zostać odrzucony albo oznaczony „nie do oceny" — nigdy pokazany jako trafienie. Przypadek testowy wprost od klienta: rekord z „by dir." nie może się pojawić w interpretacji natalnej. +**TO DO (xlsx)** to właściwa lista robocza: arkusz „LISTA TO DO" z priorytetami (\*\*\* / \*\* / \* / brak = na tym etapie niekonieczne) oraz 16 arkuszy-wzorców tabel. Arkusz ma też **legendę kolorów [kod — odczyt stylów]**: +- **pomarańczowy** = „muszę uzupełnić ten opis — lepiej poczekać": wiersze 24, 32–34, 37, 40, 42–45, 73–76, 79, 87, 89, 91, 92, 94, 96, 98, 100; +- **żółty** = „jeszcze w ogóle nie ugryzione — poczekać": wiersze 27 i 38. -## 2. Czym są te dwa dokumenty +Wymagania z tych wierszy mają w rejestrze dopisek „opis u klienta do uzupełnienia". -**TO DO (xlsx)** to właściwa lista robocza: arkusz „LISTA TO DO" z priorytetami (\*\*\* / \*\* / \* / brak = na tym etapie niekonieczne) oraz 16 arkuszy-wzorców z przykładowymi tabelami (tabela stopni, synastria, lista aspektów, profekcje, tranzyty, asteroidy, dane obiektów, godziny planetarne, syzygia, żywioły, orby, obiekty). Ostatnia poprawka: 05.09.2026. +**Specyfikacja (docx)** to „Kompletna specyfikacja techniczna" w 21 częściach. Według klienta to efekt ponad 20 godzin pracy z agentem AI, wciąż niedokończony. Ustalenia z formatowania [kod — odczyt XML]: -**Specyfikacja (docx)** to „Kompletna specyfikacja techniczna" w 21 częściach. Według klienta to efekt ponad 20 godzin pracy z agentem AI, wciąż niedokończony; ma być czytana razem z TO DO. Ustalenia z formatowania dokumentu [kod — odczyt XML]: +- Legenda cieniowania akapitów: pomarańczowy = „to jeszcze uzupełnię", żółty = „kompletnie do poprawki", łososiowy = „chyba out". +- Flagi występują **tylko w częściach 1–2**, a w części 2 — zaraz po „Accidental dignities" — stoi znacznik **„{DOTĄD SPRAWDZONE}"**. Części 3–21 to **nieprzejrzany wynik AI**. +- Kolor „chyba out" nie występuje ani razu. +- Czerwona czcionka w częściach 1–2 to specyfikacja kolorów UI (osłabienia, domy kadentne, ujemne punkty), a nie znacznik „bzdura". +- Dokument jest urwany („TU WYWALIŁ BŁĄD" w części 11, „TU SIĘ SKOŃCZYŁ LIMIT WĄTKU" w części 21). +- Zawiera błędy merytoryczne, np. „0.5° Vigintile (1/40)" zamiast 18° (1/20). Arkusz „ASPECTS" w TO DO ma to poprawnie. **Przy konflikcie źródłem prawdy jest xlsx.** -- **Legenda kolorów** (cieniowanie akapitów): pomarańczowy = „to jeszcze uzupełnię", żółty = „kompletnie do poprawki", łososiowy = „chyba out". -- Flagi występują **tylko w częściach 1–2**. W części 2, zaraz po „Accidental dignities", stoi znacznik **„{DOTĄD SPRAWDZONE}"**. Wszystko dalej — części 3–21: aspekty, Lots, midpointy, astrologia wedyjska, gwiazdy stałe, wszystkie techniki predykcyjne, dashy, numerologia, chiromancja — to **nieprzejrzany wynik AI**. -- Kolor „chyba out" nie występuje ani razu: nic nie jest jeszcze wykreślone. -- „Do poprawki" dotyczy formatu tabeli orbów (1.2). To zgodne z niespójnością tej tabeli: Słońce i Księżyc mają w niej 8°, a obok stoi „+2° bonusu dla świateł" — nie wiadomo, czy bonus jest już wliczony. -- Czerwona czcionka w częściach 1–2 to **specyfikacja kolorów UI** (osłabienia, domy kadentne i ujemne punkty na czerwono), a nie znacznik „bzdura". -- Dokument jest urwany: „TU WYWALIŁ BŁĄD, KONTYNUACJA" w części 11 i „TU SIĘ SKOŃCZYŁ LIMIT WĄTKU" w części 21. +## 3. Błędy w działającej aplikacji -**Specyfikacja zawiera błędy merytoryczne.** Lista aspektów pobocznych w części 1.2 podaje np. „0.5° Vigintile (1/40)" i „11.25° Undecile? (1/32)". W rzeczywistości vigintyl to 18° (1/20), a undecyl 32,73° (1/11) — arkusz „ASPECTS" w TO DO ma te wartości poprawnie. **Przy konflikcie źródłem prawdy jest xlsx; specyfikację traktujemy jako skorowidz do weryfikacji.** +| TO DO | Prio | Zgłoszenie | Ocena | Rejestr | +|---|---|---|---|---| +| 11 | \*\*\* | Interpretacje pokazują nieobecne sygnifikatory | **[kod]** potwierdzone, sekcja 1 | LOG-15/16/19, PRE-36 | +| 9 | \*\*\* | Pliki 5 MB i 7,75 MB kończą się „Gateway Timeout" | **[hipoteza]** 504 zwraca proxy/ingress — w aplikacji nie ma limitu rozmiaru. Rozmiary pasują do `astro19 version2026.xlsm` (7,76 MiB) i `Encyclopaedia of Medical Astrology` (4,9 MiB). **[kod]** Nawet po usunięciu przekroczenia czasu domyślna reguła wgrywania przyjmuje tylko `.xlsx` ([files.py](../services/data/app/files.py#L64)), więc `.xlsm` zostanie odrzucony. | DAN-29, DAN-16 (→ Must) | +| 9 | \*\*\* | Komunikat „nie nadaje się do użycia" dopiero przy ponownym wgraniu | Walidacja od razu po wgraniu + stały opis wymaganego układu | DAN-30, PRE-34 | +| 10 | \*\*\* | Brak listy wgranych plików | **[hipoteza]** Lista istnieje w astrololo (DAN-27). Klient pracuje najpewniej na astrokliencie, który z założenia jest „bez administracji". | PRE-35, Q-19, Q-21 | +| 12 | \*\*\* | Ekran „Sygnifikatory" — nie wiadomo, do czego służy | Wymaga wpisywania tokenów w składni bazy | PRE-37 | -## 3. Błędy w działającej aplikacji (to nie są nowe wymagania) +## 4. Wygląd i interfejs — jako opcje do wyboru -| TO DO | Prio | Zgłoszenie | Ocena | +Zgodnie z decyzją: zmiany wyglądu są **opcjami**, nie zamiennikami — obecny wygląd zostaje dostępny. + +| Wymaganie | Opcja | +|---|---| +| PRE-30 | język interfejsu: angielski lub polski | +| PRE-31 | motyw jasny obok obecnego ciemnego | +| PRE-32 | kolorowanie komórek wg planet, znaków i aspektów | +| PRE-33 | zapis „symbol + skrót" (`☍ opp`, `☉ Su`, `♐ Sag`) | +| PRE-49 | zakotwiczenie koła: Asc / whole sign / Baran / Rak / Słońce / Księżyc | +| PRE-50 | granice terminów i dekanatów na kole | +| PRE-51 | styl linii aspektów | + +Wartości domyślne motywu i języka oraz zasięg przełącznika języka (wszystkie warianty? raporty LLM?) — pytania Q-17 i Q-18. + +## 5. Co zostało naniesione do rejestru + +| Warstwa | Wymagania przed → po | Zrobione / W trakcie / Do zrobienia — przed | po | |---|---|---|---| -| 11 | \*\*\* | Interpretacje pokazują nieobecne sygnifikatory | **[kod]** potwierdzone — sekcja 1. | -| 9 | \*\*\* | Pliki 5 MB i 7,75 MB kończą się „Gateway Timeout" | **[hipoteza]** Odpowiedź 504 zwraca proxy/ingress, nie aplikacja — w warstwach prezentacji i danych nie ma limitu rozmiaru. Do sprawdzenia w repo deploy (timeout ingressu, limit rozmiaru żądania). | -| 9 | \*\*\* | Komunikat „przyjęty, ale nie nadaje się do użycia" pojawia się dopiero przy ponownym wgraniu | Walidacja struktury powinna iść od razu po wgraniu, razem z opisem wymaganego układu kolumn (najlepiej jako stała podpowiedź w UI). | -| 10 | \*\*\* | Brak listy wgranych plików (usuń / sprawdź / aktywuj) | **[hipoteza]** DAN-27 i PRE-09 mają status „Zrobione". Klient najpewniej pracuje na wariancie albo koncie bez tej zakładki: astroklient jest z założenia „bez administracji" (commit 10970c5), a zakładki są bramkowane uprawnieniami (PRE-27). Ustalić, gdzie to widać. | -| 12 | \*\*\* | Ekran „Sygnifikatory" — nie wiadomo, do czego służy | UX: ekran wymaga wpisywania tokenów w składni bazy. Potrzebny opis i podpowiedzi albo przeprojektowanie. | +| Dane | 28 → 37 | 14 / 3 / 11 | 13 / 5 / 19 | +| Logika | 34 → 51 | 29 / 3 / 2 | 18 / 12 / 21 | +| Prezentacja | 29 → 59 | 27 / 1 / 1 | 23 / 5 / 31 | +| Pytania otwarte | 14 → 48 | | | -## 4. Zmiany przekrojowe +### Korekty statusów (17) -- **Interfejs po angielsku (TO DO 6, \*\*\*).** Cały obecny interfejs jest po polsku. Dotyczy wszystkich trzech wariantów (astrololo, astroklient, astrodemo) — najlepiej zrobić to jednym mechanizmem i18n przy okazji porządkowania wariantów, a nie trzy razy. -- **Jasny motyw i kolorowanie (TO DO 7, \*\*\*).** Bez trybu ciemnego. Kolory komórek dla grup aspektów, żywiołów znaków i planet; tło komórki to bardzo jasna wersja koloru. -- **„Symbol + skrót" w tabelach (TO DO 8, \*\*).** `☍ opp`, `☉ Su`, `♐ Sag` — nigdy pełne nazwy. Rozstrzyga pytanie Q-05 i jest zgodne z DAN-18 (Unicode jako tekst, nie emoji). +Zasada: status opisuje to, co wiersz obiecuje **w swojej pierwotnej treści**. Lipcowy audyt czytał te wiersze łagodnie („rdzeń działa"). Obecny czyta je ściśle, z dowodem w kodzie dla każdej korekty. -## 5. Mapowanie TO DO na rejestr wymagań +- **LOG-15** → Do zrobienia: parsera nie ma (moduł sam nazywa się zalążkiem). +- **LOG-17** → Do zrobienia: brak obsługi „asp" / „asp+" / „asp-". +- **LOG-16, LOG-19** → W trakcie: sekcja 1. +- **LOG-20** → W trakcie: brak „as-is-in-chart" i liczby trafień. +- **LOG-02** → W trakcie: brak gwiazd stałych oraz węzła i Lilith w wersji true. +- **DAN-09** → W trakcie: efemerydy tylko głównych ciał, bez asteroid i gwiazd. +- **LOG-03** → W trakcie: brak prędkości w % ruchu i konfigurowalnej stacji umownej. +- **LOG-04, PRE-07** → W trakcie: brak zodiaku RA. +- **LOG-06, PRE-06** → W trakcie: z aspektów pobocznych tylko 30/45/150°, jedna orba dla wszystkich, brak harmonik, poziomów dokładności i aspektu przez znak. +- **LOG-07** → W trakcie: orb paraleli stały (1°), niekonfigurowalny. +- **LOG-10** → W trakcie: tylko profekcje roczne; brak miesięcznych, dziennych, ciągłych i Lord of the Orb. +- **LOG-12** → W trakcie: brak monthly revolutions. +- **PRE-01** → W trakcie: brak listy lokalizacji domyślnych i domyślnej daty/godziny. +- **PRE-04** → W trakcie: z technik relacyjnych tylko synastria; solariusz i lunariusz nie mają ekranu. -Statusy według rejestru **[rejestr]**, o ile nie zaznaczono inaczej. +**LOG-08 i LOG-14 zostają „Zrobione"** — ich pierwotna treść jest spełniona: By Degree / By Sign, odwracanie i 7 Lots hermetycznych w [lots.py](../services/logic/app/engine/lots.py#L29); tabela technique | significator | start | exact | end w [timeline.py](../services/logic/app/engine/timeline.py#L30). Nowy zakres klienta wydzielony do **LOG-50** (Lots z listy klienta) i **LOG-51** (docelowy format tabeli predykcji). -### Istnieje w rejestrze — klient podnosi priorytet albo doprecyzowuje +### Priorytety podniesione (13, nigdy nie obniżane) -| TO DO | Prio | Temat | ID | Status | Co się zmienia | -|---|---|---|---|---|---| -| 19–20 | \*\*\* | Baza HOROSCOPES: zapis, ulubione, ostatnie, kopiuj/wklej | DAN-04 | Do zrobienia | Realnie pierwsza kolejka. Kopiowanie i wklejanie w formacie czytelnym bez kodu (TSV albo „;"). | -| 23 | \*\* | Baza SUBHOROSCOPES (relacje: mąż, dziecko, ślub…) | DAN-05 | Do zrobienia | Klient podaje schemat: ID = ImięNazwiskoData (+ litera przy powtórce), pola TYPE i SUBJECT. | -| 24 | \*\*\* | Orby per obiekt × per aspekt | DAN-06, PRE-06 | Do zrobienia / Zrobione | Dziś jedna orba + bonus świateł. Potrzebna macierz; arkusz ORBS dokłada „metody" według autorów i szkół. | -| 25–26 | \*\*\* / \*\* | Obiekty do wyświetlania: trzy przełączniki na obiekt, bez odświeżania strony | PRE-08 | Do zrobienia | Pokaż na kole / rysuj aspekty / pokaż w aspektarianie. | -| 27, 56–65 | \*\*\* | Ascensional times + minor planetary years + kombinacje | LOG-13, DAN-07 | Do zrobienia | Z „Could" na \*\*\*. Pełny algorytm: reguła Valensa, „model A" Patricka Watsona, ułamki 1/3, 1/2 i 2/3, pomijanie znaków powyżej 66° i 78° szerokości. | -| 28–31 | \*\*\* | Synastria — przebudowa | PRE-04 | Zrobione | **[kod]** Dziś bez wyboru lokalizacji (strefa i współrzędne wpisywane ręcznie), jedna orba, aspekty poboczne włączane hurtem. Potrzebne: pełne dane obu osób, orby per aspekt, wynik „obiekt A — aspekt — obiekt B", bi-wheel (A w środku, B na zewnątrz) przełączany z widokiem obok siebie, pełny kwadrat aspektów zamiast trójkąta. | -| 35–36 | \*\*\* / \* | Wybór aspektów z grupami + okno aspektów pobocznych | PRE-06 | Zrobione | Przyciski major / hard / soft / minor medical; okno aspektów pobocznych z sortowaniem według stopni i harmonik. | -| 41 | \*\*\* | Stacje: poprzednia i następna — dni, data, stopień, link | LOG-03 | Zrobione | Dodatkowe pola, flaga „< 7 dni", hiperłącze do horoskopu na moment stacji. | -| 44 | \*\*\* | Lots z `lots astroseek.xlsx` | LOG-08, DAN-08 | Zrobione / W trakcie | Odwracanie formuły w nocy + warunki specjalne (klient uzupełni). | -| 52–54 | \*\*\* | Zunifikowana tabela predykcji, kopiowana do Excela jako jedna tabela | LOG-14 | Zrobione | Format kolumn według arkusza „transits, predictive"; typy event / period / mundane. | -| 85 | \*\*\* | Firdaria | LOG-11 | W trakcie | Klient odsyła do `fidaria calculator.xls`, którego nie ma w przekazanych plikach. | -| 87, 89, 91–93 | \*\*\* | Zodiacal Releasing, Annual Divisions, Days of the Moon, Solar Monthly Revolutions, Lord of the Orb | LOG-11, LOG-12 | W trakcie / Zrobione | Lord of the Orb w dwóch wariantach (mod 84 i mod 12). | -| 96 | \*\* | Primary Directions | LOG-09 | Do zrobienia | Pytanie Q-02 nadal otwarte. | +- **Dane:** DAN-06 (orby), DAN-07 (czasy wznoszenia), DAN-08 (Lots), DAN-10 (katalog aspektów), DAN-16 (`.xlsm`). +- **Logika:** LOG-07, LOG-10, LOG-11, LOG-12, LOG-13, LOG-17. +- **Prezentacja:** PRE-06, PRE-08. -### Już jest — klient może o tym nie wiedzieć +Wszystkie na Must, zgodnie z \*\*\* u klienta albo zależnością od naprawy z w.11. -| TO DO | Prio | Temat | ID | -|---|---|---|---| -| 37 | \*\*\* | Paralele i kontrparalele | LOG-07 (Zrobione) | -| 40 | — | Zodiak drakoniczny | LOG-04 (Zrobione; **[kod]** draconic w `chart.py`) | -| 45 | — | Solariusze, lunariusze | LOG-12 (Zrobione) | +### Nowe wymagania według tematów -### Nowe — nie ma ich w rejestrze +- **Wgrywanie i bazy:** DAN-29 (duże pliki), DAN-30 (walidacja od razu), PRE-34, PRE-35, PRE-37. +- **Horoskopy i dane wejściowe:** + - DAN-31 i PRE-40: kopiuj/wklej; + - DAN-32: format Zet; + - DAN-33 i PRE-41: lokalizacje domyślne; + - LOG-38 i PRE-38: strefa z DST, UT, czas gwiazdowy; + - PRE-39: zapisane horoskopy. +- **Aspekty i orby:** LOG-37 (daty dokładności, tabela ASPECT LIST), PRE-43, PRE-44, PRE-45 i macierz orbów w zmianach DAN-06, LOG-06, PRE-06. +- **Synastria:** LOG-42 (obliczenia z pełnymi ustawieniami), PRE-46–48 (dane obu osób, tabela A–aspekt–B, koło podwójne, pełny kwadrat aspektów). +- **Tabele:** + - LOG-36: godności i faza; + - LOG-39 i PRE-53: dane obiektów; + - LOG-40 i PRE-52: tabela stopni; + - LOG-41: midpointy; + - PRE-59: godziny planetarne, syzygia, żywioły, asteroidy. +- **Predykcja:** + - LOG-35: Firdaria — wariant i pełny cykl, sekcja 6; + - LOG-43: tranzyty; + - LOG-44: ingresy, okresy cienia, OOB, lunacje; + - LOG-45: progresje sekundarne; + - LOG-46: Days of the Moon; + - LOG-51 i PRE-54: zunifikowana tabela; + - PRE-55: tabele technik okresowych. +- **Poza astrologią zachodnią (niski priorytet):** numerologia (LOG-47, DAN-35, PRE-56), chiromancja i fizjonomika (LOG-48, PRE-57), Astro\*Carto\*Graphy (LOG-49), atlasy medyczny i historyczny (DAN-36, PRE-58). +- **Luka w rejestrze uzupełniona:** DAN-28 (lustro baz w SQL). Numer był już używany w kodzie (`services/data/requirements.txt`, commit 003deb9) i w repo deploy, ale w rejestrze go brakowało. -**Dane horoskopu i wejście:** -- nazwa strefy czasowej i informacja o DST, np. CEST (TO DO 14, \*\*\*); UT/GMT oraz lokalny czas gwiazdowy (15–16, \*); -- wklejanie danych w formacie Zet Astroprocessor (21, \*\*\*); -- kilka zapisanych lokalizacji domyślnych z edycją listy (22, \*\*\*). +## 6. Dosłane materiały -**Koło horoskopu (rozszerzenia PRE-12):** -- zakotwiczenie: Asc / whole sign / Baran / Rak / Słońce / Księżyc (32); -- granice terminów i dekanatów w kolorach, symbol planety po najechaniu kursorem (33); -- style linii aspektów: pogrubiona = applying ≤ 3°, bardzo gruba = applying ≤ 1°, przerywana = separating; kolory i grubości konfigurowalne (49, \*\*\*). +### Czasy wznoszenia znaków (`wznoszenie znaków ascensional times.xlsx`) -**Tabele:** -- tabela stopni 30 × 12 z podglądem „zoom" wybranego stopnia (50, \*\*\*); -- tabela aspektów przez cały znak, out-of-sign, dokładność (34, \*\*\*); -- midpointy (38, \*); -- długość ekliptyczna w kilku formatach (46, \*). +- Tabela © 2004 The Golden Hind Press: szerokości 0–66° N, wartości w stopniach i minutach (1° = 1 rok życia), pary znaków o równym czasie. +- **Sprawdzone wzorem [kod]** (wznoszenie skośne): przy nachyleniu ekliptyki ok. 23,4465° (wartość z ok. 1945 r.) zgadza się do 0,6′ w 305 z 306 komórek. +- **Jedna literówka:** 40°, Lew/Skorpion — w tabeli 38°20′, powinno być 38°02′ (tylko ten wiersz nie sumuje się do 180°). +- **Tabela nie wystarcza do algorytmu z TO DO w.57–65:** brak szerokości ułamkowych (dla Warszawy odczyt z wiersza 52° myli się o ok. 7 tygodni), półkuli południowej i pasa 66,6°–78,5°, gdzie część znaków ma czasy ujemne. +- **Rekomendacja:** liczyć wzorem, a tabelę trzymać jako wyrocznię testów (DAN-07, LOG-13). Decyzja i rozbieżności spec ↔ TO DO — pytania Q-37…Q-41. +- Gotowe elementy w kodzie: `_ascensional_difference` i `mean_obliquity` w `houses.py`. -**Techniki predykcyjne (\*):** progresje sekundarne, ingresy, okresy cienia retrogradacji, ekstrema szerokości ekliptycznej, OOB, fazy Księżyca i zaćmienia (73–83); profekcje ciągłe z wyborem klucza (94, \*\*). +### Kalkulator firdarii (`fidaria calculator.xls`) -**Poza astrologią zachodnią** (bez gwiazdek albo z jedną): numerologia (100, \*\*) z gotowym schematem tabeli wynikowej, chiromancja (101, \*), czytanie twarzy i sylwetki (102, \*), atlas medyczny i atlas historycznych krain (103–104), Astro\*Carto\*Graphy (98). +- Arkusz liczy okresy z samej daty urodzenia, w trzech wariantach obok siebie: dzienny, nocny Zollera (węzły zaraz po Marsie — poleca go autor arkusza) i nocny Abu Ma'shara (węzły na końcu). +- **Nasz `firdaria.py` zgadza się z arkuszem [kod]** w wariancie dziennym i nocnym Abu Ma'shara: 51/51 władców okresów na przykładzie z arkusza. Daty różnią się w 2 z 51 wierszy — inna długość roku: 365,2422 u nas, 365,2425 w arkuszu. +- **Braki:** + - wariant Zollera — dla przykładowego urodzenia nocnego z 1984 r. daje dziś inny okres (Węzeł Południowy zamiast Słońca); + - liczenie po 75. roku życia — arkusz zaczyna cykl od nowa, u nas wynik się kończy; + - ręczny wybór sekty. +- W rejestrze: LOG-35 (wariant do wyboru, pełny cykl, test referencyjny na danych arkusza), Q-42 (wariant domyślny). -**Tylko w specyfikacji, nie ma w TO DO:** cała astrologia wedyjska (wargi D-N, 13 systemów dash, karaki, argala, shadbala, ashtakavarga, yogi), chińska (BaZi, Zi Wei, Xiu), majańska (Tzolkin) i setki nazwanych asteroid. **Do potwierdzenia z klientem, czy to w ogóle zakres.** Uwaga techniczna: numerowane asteroidy wymagają plików efemeryd Swiss Ephemeris, czyli silnika `engine-swisseph` (izolacja AGPL według LOG-27) — nasz silnik Skyfield ich nie policzy. +## 7. Pliki poza repozytorium -## 6. Brakujące materiały +Do repo trafiła cała zawartość `docs/` poza pięcioma plikami, dopisanymi do `.gitignore`: -Klient się na nie powołuje, ale nie ma ich w przekazanych plikach: -- `wznoszenie znaków ascensional times.xlsx` (TO DO 56) i plik „wrzucony na dysk" (27); -- `fidaria calculator.xls` (85); -- dokończenie specyfikacji od części 21 (urwana) oraz przegląd części 3–21. +- **Kupione bazy interpretacji:** `astro19 version2026.xlsm` (ok. 50 tys. rekordów), `The Encyclopaedia of Medical Astrology…xlsx` (ok. 54 tys., na bazie książki Cornella), `astro-excel4_4parser2.xlsm`. +- **Eksport opisów z baz:** `interpretacje.xlsx` (444 opisy). +- **Dane osobowe:** `kosmogramy z astro2019.xlsx` — dane urodzeniowe ok. 49 prawdziwych osób. -## 7. Pytania do klienta +Powód: pułapki (DAN-26) działają tylko wtedy, gdy każda kopia baz ma inne markery, a kopia w gicie trafiłaby do każdego klona i runnera CI. Historii gita praktycznie nie da się wyczyścić. `lots astroseek.xlsx` i `lots astroseek 2.xlsx` są identyczne — oba w repo, bo leżały w `docs/`. -1. Czy część wedyjska, chińska i majańska ze specyfikacji to zakres, czy tylko efekt uboczny pracy z AI? W TO DO jej nie ma. -2. Interfejs po angielsku: we wszystkich trzech wariantach czy tylko w wersji dla klienta? Czy dotyczy to też raportów — prompt do LLM jest dziś po polsku (LOG-29)? -3. Na którym wariancie i koncie widać brak listy plików (TO DO 10)? -4. Tabela orbów: czy bonus +2° dla świateł dolicza się do wartości z tabeli, czy jest już w nich zawarty? -5. Kiedy będą przejrzane części 3–21 specyfikacji — i czy do tego czasu traktujemy je jako nieobowiązujące? +## 8. Pytania do klienta -## 8. Proponowana kolejność +Pełna lista w arkuszu „Pytania otwarte" (Q-15…Q-48). Najważniejsze: -1. **Naprawa dopasowania sygnifikatorów** (sekcja 1). Psuje Interpretacje, Kalendarz i prompt do LLM; dopóki działa źle, każda funkcja budowana na nim dziedziczy błąd. -2. **Błędy wgrywania plików** (TO DO 9–10) — klient nie może wgrać własnych baz. -3. **Baza HOROSCOPES, kopiuj/wklej, lokalizacje domyślne** (19–22) — codzienna wygoda, priorytet \*\*\*. -4. **Synastria** (28–31) i **orby per obiekt × aspekt** (24) — orby są wspólne dla obu. -5. **Zmiany przekrojowe UI** (angielski, jasny motyw, „symbol + skrót") razem z porządkowaniem wariantów astrololo / astroklient / astrodemo, żeby nie robić tego trzy razy. -6. Dalej techniki z \*\*\* według TO DO; specyfikację dopiero po jej przejrzeniu przez klienta. +- **Q-15** — czy astrologia wedyjska, chińska i majańska to zakres; +- **Q-16** — kiedy będą przejrzane części 3–21 specyfikacji; +- **Q-17, Q-18** — domyślny motyw i język, zasięg przełącznika języka; +- **Q-19** — na którym wariancie i koncie widać problemy z wgrywaniem; +- **Q-26** — reguły łączenia orbów i bonus świateł; +- **Q-35** — co pokazywać przy rekordach nie do oceny; +- **Q-37…Q-41** — czasy wznoszenia: tabela czy wzór, zamiana na datę, skrajne szerokości, małe lata Wenus; +- **Q-42** — wariant firdarii nocnej; +- **Q-43…Q-46** — techniki z opisem „do uzupełnienia": ZR, Annual Divisions, Days of the Moon, Solar Monthly Revolutions. -Rejestr `astrololo_wymagania.xlsx` celowo **nie** jest zmieniany w tym PR. Najpierw akceptacja tej analizy, potem naniesienie zmian — zgodnie z zasadą „przegląd → poprawki → akceptacja → kod". +## 9. Proponowana kolejność + +1. **Naprawa dopasowania sygnifikatorów** (LOG-15/16/19, PRE-36). Psuje Interpretacje, Kalendarz i prompt do LLM; dopóki działa źle, każda funkcja na nim dziedziczy błąd. +2. **Wgrywanie plików** (DAN-29/30, DAN-16, PRE-34/35) — klient nie może wgrać własnych baz. +3. **Horoskopy, kopiuj/wklej, lokalizacje domyślne** (DAN-31–33, PRE-39–41) — codzienna wygoda, \*\*\*. +4. **Orby i aspekty** (DAN-06, LOG-06, PRE-43/45), potem **synastria** (LOG-42, PRE-46–48) — synastria korzysta z tych samych orbów. +5. **Opcje wyglądu** (PRE-30–33, 49–51) razem z porządkowaniem wariantów astrololo / astroklient / astrodemo, żeby nie robić tego trzy razy. +6. Dalej techniki z \*\*\* według TO DO. Wiersze oznaczone u klienta kolorem „do uzupełnienia" — po uzupełnieniu opisu. diff --git a/docs/astrololo_wymagania.xlsx b/docs/astrololo_wymagania.xlsx index 63e679c..3ea496c 100644 Binary files a/docs/astrololo_wymagania.xlsx and b/docs/astrololo_wymagania.xlsx differ