Decyzja: warstwa logiczna ma dwie wymienne implementacje silnika obliczeń —
własną/permisywną (ścieżka A) i AGPL (Swiss Ephemeris) — dla wbudowanego
frameworku porównań i walidacji. Prezentacja i dane pozostają wspólne.
- docs/architektura-dwoch-silnikow.md: schemat, izolacja licencyjna silnika
AGPL jako osobnej usługi (engine-swisseph), mechanizm dual-run, mapowanie
na wymagania, profile wdrożeniowe.
- astrololo_wymagania.xlsx (Warstwa logiczna): rewizja LOG-24 (EngineProvider
z dwoma backendami) i LOG-25 (framework porównawczy); nowe LOG-26 (dual-run
+ raport różnic), LOG-27 (izolacja licencyjna silnika AGPL), LOG-28
(kontrakt parzystości silników). Licznik w Przeglądzie: 28.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- docs/przeglad-bibliotek-i-licencji.md: przegląd istniejących bibliotek/
programów z komentarzem licencyjnym i oceną ryzyka praw autorskich;
rekomendacja ścieżki A (Skyfield/Moshier permisywne) + nota o prawach do
treści baz.
- docs/warstwa-logiczna-analiza.md: rozwinięcie 24 wymagań LOG, przypisanie
permisywnych gotowców, ocena złożoności implementacji od zera, rola B/C
jako wyroczni walidacyjnej; kolejność budowy.
- astrololo_wymagania.xlsx: w arkuszu "Warstwa logiczna" 4 nowe kolumny
(gotowe rozwiązanie / licencja / złożoność od zera / rola B/C) oraz nowy
wiersz LOG-25 (harness walidacyjny). Licznik w Przeglądzie zaktualizowany.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Trzy niezależne usługi FastAPI komunikujące się przez HTTP/JSON, każda
zna tylko adres warstwy bezpośrednio pod nią:
- presentation (:8000) — strona WWW + formularz
- logic (:8001) — reguły biznesowe, pośrednik
- data (:8002) — wyszukiwanie danych za interfejsem DataProvider
Warstwa danych: czytanie setek plików .xlsx z wykrywaniem nagłówka i
mapowaniem układu kolumn na schemat kanoniczny, z 4-poziomowym cache
(schemat L1, Parquet L2, wyniki zapytań L3, odwrócony indeks L4) i
unieważnianiem po odcisku pliku. Gotowa ścieżka migracji do SQL
(ingest/to_sql.py + SqlDataProvider, przełączane przez DATA_PROVIDER).
Zawiera docker-compose, Makefile, generator danych przykładowych.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>