Demo katalogu AGD z lodówkami, pralkami i zmywarkami. Katalog jest
odczytywany z PostgreSQL, a asystent w sesji anonimowej może zaproponować
co najwyżej jeden następny krok na podstawie lokalnej historii przeglądania.
Fakty sesji klasyfikuje DecisionEngine. Pipeline src/behavior/ zapisuje
osobne obserwacje UI i nie zasila asystenta. Granica domeny:
context/foundation/domain.md.
Reguły produktu: context/foundation/prd.md. Kolejność slice’ów: context/foundation/roadmap.md.
npm install
npm run devAplikacja nasłuchuje na http://localhost:3000.
/— strona główna/katalog— kategorie i globalne wyniki wyszukiwania/katalog/[categorySlug]— listing z filtrami i paginacją/produkt/[productSlug]— szczegóły i rekomendacje produktu
npm run lint
npm run typecheck
npm test
npm run buildKatalog w środowisku runtime czyta wyłącznie PostgreSQL. Pliki
data/categories.json i data/products.json są wejściem do powtarzalnego
seedowania i nie służą jako fallback, gdy baza jest niedostępna.
Skonfiguruj dwa connection stringi w .env.local:
DATABASE_URL— PostgreSQL transaction pooler dla runtime aplikacji (na Supabase URL z sekcji Connect, zwykle port6543).MIGRATION_DATABASE_URL— URL PostgreSQL dla migracji i seedowania; wymagany przeznpm run db:migrateinpm run db:seed.
Utwórz lub zaktualizuj schemat i załaduj katalog:
npm run db:generate
npm run db:migrate
npm run db:seedSeed najpierw waliduje oba pliki JSON, a następnie zapisuje kategorie, marki i produkty w jednej transakcji. Można uruchamiać go ponownie; istniejące rekordy są aktualizowane.
Klient zbiera surowe eventy wyłącznie w przeglądarce (pamięć + sessionStorage),
analizuje je lokalnie i POST-uje do /api/meta-events tylko meta eventy
(zobacz src/behavior/ i src/server/meta-events/).
Skopiuj .env.example do .env.local. DATABASE_URL jest używany przez
katalog runtime i endpoint /api/meta-events; NEXT_PUBLIC_BEHAVIOR_TRACKING
ustaw na true, aby włączyć tracker.
Rozszerzanie systemu: docs/adding-detector.md oraz docs/adding-page-type.md.
Edycja diagramu w https://app.diagrams.net/ → skill /board po update.