nordabiz/docs/CLAUDE-REFERENCE.md
Maciej Pienczyn 110d971dca
Some checks are pending
NordaBiz Tests / Unit & Integration Tests (push) Waiting to run
NordaBiz Tests / E2E Tests (Playwright) (push) Blocked by required conditions
NordaBiz Tests / Smoke Tests (Production) (push) Blocked by required conditions
NordaBiz Tests / Send Failure Notification (push) Blocked by required conditions
feat: migrate prod docs to OVH VPS + UTC→Warsaw timezone in all templates
Production moved from on-prem VM 249 (10.22.68.249) to OVH VPS
(57.128.200.27, inpi-vps-waw01). Updated ALL documentation, slash
commands, memory files, architecture docs, and deploy procedures.

Added |local_time Jinja filter (UTC→Europe/Warsaw) and converted
155 .strftime() calls across 71 templates so timestamps display
in Polish timezone regardless of server timezone.

Also includes: created_by_id tracking, abort import fix, ICS
calendar fix for missing end times, Pros Poland data cleanup.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 13:41:53 +02:00

7.5 KiB

CLAUDE-REFERENCE.md — Szczegóły operacyjne (czytane na żądanie)

Przeniesione z CLAUDE.md w celu optymalizacji kontekstu. Claude Code czyta ten plik gdy potrzebuje szczegółów.

Auto Claude - Rozwiązywanie problemów

Pliki stanu (NIE COMMITOWAĆ!)

  • .auto-claude-security.json, .auto-claude-status, .auto-claude/
  • Są w .gitignore + pre-commit hook automatycznie je usuwa ze staging

Konflikty merge z Auto Claude

# 1. Sprawdź konflikt
git status

# 2. Usuń pliki Auto Claude z merge
git rm .auto-claude-security.json .auto-claude-status

# 3. Dokończ merge
git commit -m "Merge branch 'feature' - resolve Auto Claude file conflicts"

Worktrees

git worktree list                                              # Lista aktywnych
git worktree remove .auto-claude/worktrees/tasks/<task-id>     # Usuń nieaktualny
git branch -d auto-claude/<task-id>                            # Usuń branch

Disaster Recovery — Szczegóły

Pełna dokumentacja: docs/DR-PLAYBOOK.md

Metryki SLA

Metryka Wartość
RTO 30-60 min
RPO 1 godzina

Lokalizacje backupów

Lokalizacja Ścieżka Retencja
Hourly (lokalnie) /var/backups/nordabiz/hourly/ 24h
Daily (lokalnie) /var/backups/nordabiz/daily/ 30 dni
Offsite (PBS) 10.22.68.127:/backup/nordabiz/ 30 dni

Szybkie przywracanie

# Lista dostępnych backupów
ssh maciejpi@57.128.200.27 "ls -lt /var/backups/nordabiz/hourly/ | head -5"

# Restore z backupu
ssh maciejpi@57.128.200.27 "sudo /var/www/nordabiznes/scripts/dr-restore.sh /var/backups/nordabiz/hourly/nordabiz_YYYYMMDD_HH.dump"

# Weryfikacja
curl -I https://nordabiznes.pl/health

Cron backupy (automatyczne)

# Backup co godzinę
0 * * * * postgres pg_dump -Fc nordabiz > /var/backups/nordabiz/hourly/nordabiz_$(date +\%Y\%m\%d_\%H).dump

# Backup dzienny
0 2 * * * postgres pg_dump -Fc nordabiz > /var/backups/nordabiz/daily/nordabiz_$(date +\%Y\%m\%d).dump

# Sync do PBS
0 4 * * * root rsync -avz /var/backups/nordabiz/daily/ maciejpi@10.22.68.127:/backup/nordabiz/daily/

Szablon profilu firmy

Docelowa struktura (po optymalizacji)

1. Header (nazwa, kategoria, badge, krótki opis)
2. Pasek kontaktowy (www, email, telefon, lokalizacja)
3. O firmie (połączone opisy)
4. Usługi i kompetencje (połączone tagi)
5. Wyróżniki (połączone z wartościami)
6. Dane kontaktowe (pełne karty)
7. Informacje prawne i biznesowe
8. Social Media (wszystkie 6 platform)
9. Strona WWW (analiza techniczna)

Szablon: templates/company_detail.html

ZOP Kaszubia News (ZOPK) — Szczegóły

System monitoringu newsów projektu Zielony Okręg Przemysłowy Kaszubia. Panel: /admin/zopk/news

Tematy istotne

  • Zielony Okręg Przemysłowy Kaszubia
  • Elektrownia jądrowa (Lubiatowo-Kopalino)
  • Offshore wind Bałtyk (Baltic Power, Baltica)
  • Via Pomerania, Droga Czerwona
  • Kongsberg (inwestycje w Rumi)
  • Izba Przedsiębiorców NORDA

Tematy do odrzucenia

  • Turystyka na Kaszubach
  • Polityka ogólnopolska
  • Inne regiony Polski
  • Wypadki, clickbait

Reguły auto-approve (WAŻNE!)

Próg: score >= 3

Score Status
1-2 pending
3-5 auto_approved

Plik: zopk_news_service.py (linie 890, 1124, 1145)

Cykliczna aktualizacja danych ze stron www firm

Mechanizm

Skrypt scripts/website_content_updater.py automatycznie:

  1. Pobiera treść strony www każdej firmy członkowskiej
  2. Używa Gemini 3 Flash (darmowy plan) do ekstrakcji:
    • services_extracted - lista usług oferowanych przez firmę
    • main_keywords - główne słowa kluczowe
    • content_summary - krótkie podsumowanie działalności
  3. Zapisuje do tabeli company_website_analysis

Uruchamianie ręczne

# Wszystkie firmy
cd /var/www/nordabiznes
/var/www/nordabiznes/venv/bin/python3 scripts/website_content_updater.py

# Konkretna firma
/var/www/nordabiznes/venv/bin/python3 scripts/website_content_updater.py --company-id 26

# Tylko firmy nieaktualizowane 30+ dni
/var/www/nordabiznes/venv/bin/python3 scripts/website_content_updater.py --stale-days 30

# Podgląd bez zapisywania (dry-run)
/var/www/nordabiznes/venv/bin/python3 scripts/website_content_updater.py --dry-run

Cron (automatyczne uruchamianie)

Uruchamiany 1-ego każdego miesiąca o 3:00 dla firm nieaktualizowanych 30+ dni:

0 3 1 * * cd /var/www/nordabiznes && /var/www/nordabiznes/venv/bin/python3 scripts/website_content_updater.py --stale-days 30 >> /var/log/nordabiznes/website_updater.log 2>&1

Logi: /var/log/nordabiznes/website_updater.log Rate limiting: 2s między firmami, ~150 firm = ~5 min

NordaGPT — Dostępne modele w gemini_service.py

Alias Model ID Opis
flash gemini-2.5-flash Ogólnego przeznaczenia
flash-lite gemini-2.5-flash-lite Ultra tani ($0.10/$0.40 per 1M)
pro gemini-2.5-pro Najlepszy reasoning
flash-2.0 gemini-2.0-flash Poprzednia generacja (wycofywany 31.03.2026)
3-flash gemini-3-flash-preview AKTUALNY - 7x lepszy reasoning, thinking mode
3-pro gemini-3-pro-preview Premium - 2M context

Thinking Mode

Użytkownicy mogą wybierać poziom rozumowania AI w UI chatu (dropdown obok badge "Gemini 3").

Poziom Opis Zastosowanie
Błyskawiczny (minimal) Najszybsze odpowiedzi Proste pytania: "kto?", "gdzie?"
Szybki (low) Zrównoważony Większość pytań o firmy i usługi
Głęboki (high) Maksymalna analiza Złożone pytania, rekomendacje, strategia

Zmiana poziomu:

  • UI: Dropdown w headerze chatu
  • API: POST /api/chat/settings z {"thinking_level": "high"}
  • Zapisywane w sesji użytkownika

UI Badge

W templates/chat.html badge w headerze: <span class="chat-header-badge">Gemini 3</span>

Prezentacja dla członków Izby

Cel projektu

Stworzenie materiałów wideo prezentujących portal NordaBiz dla członków Izby NORDA.

Produkty końcowe

  1. Podcast NotebookLM (2-3 min) - rozmowa AI o portalu
  2. Zajawka Remotion (30s) - scenariusz "Problem → Rozwiązanie"
  3. Tutorial wideo (2-3 min) - nagrania portalu + dialogi Zofia/Marek
  4. Integracja z portalem - Akademia + widget na dashboardzie

Dokument źródłowy dla NotebookLM

docs/notebooklm-source.md - markdown do wgrania do notebooklm.google.com

Scenariusz zajawki 30s (Remotion)

[0-8s]  "Szukasz partnera do projektu?"
[8-16s] "Nie wiesz, kto w Izbie ma potrzebne kompetencje?"
[16-24s] "NordaGPT zna 150 firm i pomoże Ci znaleźć"
[24-30s] "nordabiznes.pl - Twoja sieć kontaktów"

Głosy edge-tts

  • Marek: pl-PL-MarekNeural (męski)
  • Zofia: pl-PL-ZofiaNeural (żeński)

GIFy do nagrania (Chrome MCP)

  1. Strona główna zalogowanego
  2. Katalog firm + filtrowanie
  3. Profil firmy
  4. Chat NordaGPT - pytanie
  5. Chat NordaGPT - odpowiedź
  6. Forum
  7. Kalendarz
  8. Tablica B2B

Pliki Remotion

  • Lokalizacja: /Users/maciejpi/claude/projects/active/remotion/my-video/
  • Komponenty: NordaBizZajawka.tsx, NordaBizTutorial.tsx
  • Audio: public/audio/, public/voice/tutorial/
  • Nagrania: public/recordings/*.gif

Dodatkowe rejestry (TODO — przyszłe integracje)

Rejestr Opis API
CRBR Centralny Rejestr Beneficjentów Rzeczywistych https://crbr.podatki.gov.pl
SUDOP System Udostępniania Danych o Pomocy Publicznej https://sudop.uokik.gov.pl