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

242 lines
7.5 KiB
Markdown

# 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
```bash
# 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
```bash
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
```bash
# 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)
```bash
# 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
```bash
# 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:
```bash
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 |