# Dokumentacja Techniczna — k0nsult.cloud

**Wersja:** 1.0
**Data wydania:** 2026-05-16
**Status:** Pilotaż (do 31.12.2026), usługa bezpłatna
**Zakres prawny:** Rozporządzenie Parlamentu Europejskiego i Rady (UE) 2024/1689 z dnia 13 czerwca 2024 r. ustanawiające zharmonizowane przepisy dotyczące sztucznej inteligencji (Akt w sprawie sztucznej inteligencji / AI Act), Załącznik IV — zakres dostosowany adekwatnie do klasyfikacji *limited risk* oraz charakteru usługi audytowej.
**Operator:** 0n40i4 (Tomasz Obara), jednoosobowa działalność gospodarcza (JDG), Polska. Lobbysta wpisany do rejestru pod nr 00168 (MSWiA).
**Kontakt:** kontakt@k0nsult.cloud

---

## Executive Summary (EN)

This document is the technical documentation for **k0nsult.cloud**, a platform operated by 0n40i4 (Tomasz Obara, sole proprietorship, Poland) that delivers **exclusively independent third-party audit services for clients' AI systems** plus supporting governance tooling. During the pilot phase (until 31 December 2026) the service is provided **free of charge**.

The platform itself embeds two AI components — **Lyra (Anthropic Claude Haiku 4.5)** for inbound message triage on Discord, and an **Audit Assistant (Anthropic Claude Opus 4.7)** that supports human auditors. **Neither component takes autonomous decisions producing legal effects or similarly significantly affecting natural persons.** Every AI output is human-reviewed (human-in-the-loop).

Under Regulation (EU) 2024/1689 the platform is classified as a **LIMITED-RISK system subject to the transparency obligations of Article 50** (interaction with an AI system / disclosure of AI-generated content). It is **not a high-risk system within the meaning of Annex III**, because it does not perform any of the use cases listed therein (biometrics, critical infrastructure, education, employment, essential services, law enforcement, migration, administration of justice). It is **not a prohibited practice under Article 5**.

Key compliance controls in production (smoke-tested 16/16): a tamper-evident **SHA-256 hash chain** over the audit log (`/api/audit/verify-chain`, 1055 entries verified, 0 mismatches), an **AI inventory register** (`/api/ai-inventory/stats/summary`), a **request risk-distribution endpoint** (`/api/risk/stats`), **AI disclosure pages** (Art. 13/50), a **kill-switch**, **RBAC**, an **approvals workflow** (human oversight, Art. 14), strict security headers, rate limiting, self-hosted fonts and a three-option cookie consent.

---

## 1. Ogólny opis systemu i przeznaczenie

### 1.1 Tożsamość systemu

- **Nazwa:** k0nsult.cloud
- **Domena produkcyjna:** https://k0nsult.cloud (alias techniczny: k0nsult.fly.dev)
- **Hosting:** Fly.io, aplikacja `k0nsult`, region `fra` (Frankfurt, UE), dodatkowa instancja Amsterdam (UE)
- **Baza danych:** PostgreSQL — `k0nsult-db.flycast` (sieć prywatna Fly.io, UE)
- **Operator / dostawca w rozumieniu art. 3 pkt 3 AI Act:** 0n40i4 (Tomasz Obara), JDG, Polska, lobbysta nr 00168 (MSWiA)

### 1.2 Przeznaczenie (intended purpose, art. 3 pkt 12 AI Act)

k0nsult.cloud świadczy **wyłącznie niezależne usługi audytowe systemów AI klientów** wraz z towarzyszącym toolingiem governance. Pivot biznesowy: platforma nie sprzedaje produktów AI ani nie podejmuje decyzji w imieniu klientów — ocenia zgodność, ryzyko i jakość systemów AI należących do podmiotów trzecich.

Główne funkcje:

1. **Świadczenie audytów** — przyjęcie zgłoszenia, zebranie artefaktów systemu klienta, ocena audytora wspierana przez AI, raport końcowy zatwierdzany przez człowieka.
2. **Tooling governance** — rejestr inwentaryzacji AI, hash chain dziennika audytowego, dystrybucja ryzyka żądań, strony ujawnienia AI, trust center.
3. **Triage komunikacji** — bot Lyra (Discord) klasyfikuje wiadomości przychodzące do 5 tagów + podpowiedzi dostępności.

W okresie pilotażu (do 31.12.2026) usługa jest **bezpłatna**. Stripe jest zintegrowany, lecz **nieaktywny** w pilotażu.

### 1.3 Użytkownicy docelowi

Organizacje wdrażające lub planujące systemy AI, które potrzebują niezależnej oceny zgodności (m.in. z AI Act, RODO, ISO/IEC 42001). Audyty wykonuje człowiek (audytor); AI pełni wyłącznie rolę wspomagającą.

---

## 2. Komponenty AI

System zawiera **dwa** komponenty AI. Oba są zarejestrowane w wewnętrznym rejestrze `ai_inventory` (endpoint `/api/ai-inventory/stats/summary`, 2 systemy).

### 2.1 Lyra — triage Haiku

- **Model:** Anthropic Claude Haiku 4.5 (`claude-haiku-4-5-20251001`)
- **Rola:** klasyfikacja wiadomości przychodzących (Discord) do 5 tagów + podpowiedzi dostępności (accessibility hints)
- **Deployment:** bot Discord, aplikacja Fly.io `k0nsult-discord-haiku.fly.dev`, region `fra`
- **Granice:** Lyra **nie** podejmuje decyzji wywołujących skutki prawne ani istotnie wpływających na osoby; nie wykonuje transakcji; nie udziela porad prawnych/medycznych. Wynik klasyfikacji to wyłącznie sugestia kierowana do przeglądu człowieka.
- Szczegółowa karta modelu: `MODEL_CARD_LYRA_HAIKU_v1.md` / `/docs/lyra-model-card.html`

### 2.2 Audit Assistant — wsparcie audytora

- **Model:** Anthropic Claude Opus 4.7
- **Rola:** wsparcie pracy audytora — streszczenia artefaktów, propozycje ustaleń, szkice fragmentów raportu
- **Granice:** **ZAWSZE human-reviewed.** Żaden fragment raportu audytowego nie jest publikowany bez weryfikacji i akceptacji audytora-człowieka. Audit Assistant nie wydaje wiążących ocen — odpowiedzialność za każdy produkt audytu spoczywa na człowieku.

### 2.3 Zasada nadrzędna

Zgodnie z motywem 27 i art. 14 AI Act oraz art. 22 RODO: **żaden komponent AI nie podejmuje autonomicznych decyzji wpływających na prawa osób**. AI jest narzędziem wspomagającym (assistive tool); pełna odpowiedzialność za każdą decyzję i każdy produkt audytu pozostaje po stronie człowieka. Każda treść wygenerowana przez AI jest oznaczana etykietą „🤖 AI-generated".

---

## 3. Architektura

Architektura warstwowa:

```
[ Przeglądarka / Discord ]
            │  HTTPS (TLS, HSTS preload)
            ▼
┌─────────────────────────────────────────┐
│  WARSTWA WEB                              │
│  - Strony statyczne (public/)            │
│  - CSP nonce + strict-dynamic            │
│  - X-Frame-Options: DENY                 │
│  - Cookie consent (3-opcyjny, Planet49)  │
└─────────────────────────────────────────┘
            │
            ▼
┌─────────────────────────────────────────┐
│  WARSTWA API (Node.js / Express)         │
│  - Rate limiting                         │
│  - RBAC (services/rbac.js)               │
│  - Approvals (routes/approvals.js)       │
│  - Kill-switch (services/kill-switch.js) │
│  - /api/audit/verify-chain               │
│  - /api/ai-inventory/stats/summary       │
│  - /api/risk/stats (classifyRisk)        │
└─────────────────────────────────────────┘
       │                         │
       ▼                         ▼
┌──────────────────┐   ┌────────────────────────┐
│  WARSTWA DANYCH  │   │  AI GATEWAY            │
│  PostgreSQL      │   │  Anthropic API         │
│  k0nsult-db      │   │  - Haiku 4.5 (Lyra)    │
│  .flycast (UE)   │   │  - Opus 4.7 (Audit)    │
│  trigger hash    │   │  human-in-the-loop     │
│  chain           │   │  brak treningu na      │
│                  │   │  danych klienta        │
└──────────────────┘   └────────────────────────┘
```

- **Warstwa web:** treści statyczne, nagłówki bezpieczeństwa, mechanizm zgody na cookies.
- **Warstwa API:** Node.js/Express; egzekwowanie RBAC, rate limit, approvals, kill-switch; endpointy compliance.
- **Warstwa danych:** PostgreSQL w prywatnej sieci Fly.io (UE); trigger hash chain na tabeli `konsult_audit`.
- **AI gateway:** wywołania Anthropic API (Haiku 4.5 / Opus 4.7), zawsze z nadzorem człowieka; Anthropic nie trenuje na danych klienta.

---

## 4. Data governance

### 4.1 Kategorie danych

| Kategoria | Przykład | Podstawa (RODO) |
|---|---|---|
| Dane kontaktowe | imię, e-mail, organizacja | Art. 6(1)(f) / 6(1)(a) |
| Dane techniczne audytowanego systemu | konfiguracja, model, logi, artefakty | Art. 6(1)(b) |
| Notatki audytora | ustalenia, oceny | Art. 6(1)(b) |
| Logi serwerowe | URL, znacznik czasu, referrer, IP zanonimizowane (ostatni oktet usunięty) | Art. 6(1)(f) |
| Wiadomości triage (Lyra) | treść wiadomości Discord + ID użytkownika | Art. 6(1)(f) |

Brak zbierania danych dzieci poniżej 16 r.ż. Brak third-party trackingu.

### 4.2 Retencja

- Dane formularza kontaktowego: 24 miesiące od ostatniego kontaktu.
- Logi analityczne (zanonimizowane): 12 miesięcy.
- Rekordy audytu pilotażowego: 7 lat (wymóg dokumentacji audytowej, ISO/IEC 42001); po pilotażu anonimizacja.
- Wiadomości triage Lyra: 30 dni.
- Raport incydentu bezpieczeństwa: 36 miesięcy.

Prawo do usunięcia: kontakt@k0nsult.cloud (art. 17 RODO), odpowiedź w 30 dni.

### 4.3 Sub-procesorzy

| Sub-procesor | Cel | Lokalizacja | Dane / certyfikacje |
|---|---|---|---|
| Fly.io Inc. | Hosting aplikacji i bazy | Frankfurt, UE | Wszystkie dane; SOC 2 Type II |
| Anthropic | Inferencja AI (Claude) | USA | Prompty + odpowiedzi; SOC 2 Type II; brak treningu na danych klienta |
| Stripe Inc. | Płatności (nieaktywny w pilotażu) | USA/UE | Dane płatnicze; PCI DSS Level 1, SOC 2 |
| LH.pl | SMTP/IMAP e-mail | Polska, UE | Nagłówki + treść e-mail |
| Let's Encrypt | Certyfikaty TLS | USA | Brak danych osobowych |
| Plausible.io | Analityka (opcjonalna / obecnie nieaktywna) | Niemcy, UE | Dane zanonimizowane; bez cookies |

Transfery poza UE (Anthropic, Stripe, Let's Encrypt) zabezpieczone Standardowymi Klauzulami Umownymi (SCC). Powiadomienie o zmianie sub-procesora: 30 dni przed; sprzeciw klienta: 14 dni.

---

## 5. Record-keeping — hash chain (rejestrowanie zdarzeń, art. 12 AI Act)

System utrzymuje **odporny na manipulację (tamper-evident) łańcuch SHA-256** nad dziennikiem audytowym `konsult_audit`. Realizuje on cel art. 12 AI Act (automatyczne rejestrowanie zdarzeń przez cały cykl życia) w zakresie adekwatnym do usługi audytowej.

### 5.1 Komponenty techniczne

- **Trigger PostgreSQL:** `trg_konsult_audit_chain` — uruchamiany przy każdym wpisie do tabeli `konsult_audit`.
- **Funkcja entry-hash:** `konsult_audit_entryhash` — oblicza SHA-256 wpisu.
- **Canonical input:** pola wpisu konkatenowane w kanonicznej kolejności z separatorem bajtowym `0x1F` (US — Unit Separator), co eliminuje ryzyko kolizji granic pól (ambiguous concatenation). Hash wpisu obejmuje hash poprzedniego wpisu (`prev_hash`), tworząc łańcuch.
- **Advisory lock:** trigger pobiera blokadę doradczą (advisory lock) PostgreSQL, aby zapewnić serializację i spójność łańcucha przy współbieżnych zapisach.
- **Backfill:** historyczne 1055 wpisów zostało wstecznie obliczonych (backfill) w ramach migracji.
- **Migracja:** `migrations/2026-05-16_audit_hash_chain_trigger.sql`.

### 5.2 Weryfikacja

- **Endpoint:** `GET /api/audit/verify-chain`
- **Tryb:** weryfikacja okienkowa (window-based) — przelicza i porównuje hashe w oknach, co pozwala zweryfikować duży dziennik bez ładowania całości do pamięci.
- **Wynik smoke testu (16/16):** `entries_checked: 1055`, `valid: true`, `mismatches: 0`.

Każda modyfikacja lub usunięcie wpisu historycznego unieważnia hash kolejnych wpisów, co jest wykrywalne przez `/api/audit/verify-chain` — zapewnia to integralność i niezaprzeczalność dziennika audytowego.

---

## 6. Human oversight (nadzór człowieka, art. 14 AI Act)

Zgodnie z art. 14 AI Act oraz art. 22 RODO:

- **Human-in-the-loop (HITL):** każdy wynik AI (Lyra, Audit Assistant) jest przeglądany przez człowieka przed wywołaniem jakiegokolwiek skutku. Żadna decyzja wpływająca na prawa osoby nie jest w pełni zautomatyzowana.
- **Approvals workflow:** `routes/approvals.js` — działania wrażliwe wymagają zatwierdzenia przez uprawnionego człowieka.
- **RBAC:** `services/rbac.js` — kontrola dostępu oparta na rolach ogranicza, kto może zatwierdzać/wykonywać działania.
- **Kill-switch:** `services/kill-switch.js` — mechanizm natychmiastowego wyłączenia komponentów AI / funkcji w razie nieprawidłowego działania (możliwość interwencji i zatrzymania, art. 14 ust. 4 lit. e).
- **Prawo do człowieka:** użytkownik może w każdej chwili zażądać obsługi przez człowieka.
- **Etykietowanie:** treści AI oznaczane „🤖 AI-generated"; strony `/ai-disclosure.html` i `/pl/ai-disclosure.html` realizują obowiązek transparentności (art. 13/50).

---

## 7. Accuracy, robustness & cybersecurity (art. 15 AI Act)

- **Nagłówki bezpieczeństwa:** HSTS z `preload`, CSP z `nonce` + `strict-dynamic`, `X-Frame-Options: DENY`.
- **Rate limiting:** ograniczenie częstotliwości żądań (ochrona przed nadużyciem/DoS).
- **Self-hosted fonts:** Google Fonts hostowane lokalnie (zgodność RODO art. 6/44 — brak transferu IP do Google).
- **Cookie consent:** mechanizm 3-opcyjny zgodny z orzeczeniem Planet49 (C-673/17).
- **security.txt:** zgodnie z RFC 9116; strona `/trust-center.html`.
- **Klasyfikacja ryzyka żądań:** `classifyRisk` + endpoint `/api/risk/stats` (dystrybucja ryzyka żądań z ostatnich 24 h).
- **Integralność danych:** hash chain SHA-256 (sekcja 5) zapewnia tamper-evidence dziennika audytowego.
- **Testy:** smoke test compliance — 16/16 zaliczonych (m.in. `/api/audit/verify-chain` z `valid:true, mismatches:0`).
- **Dokładność AI:** modele Anthropic Claude; znane ograniczenie (halucynacje) zaadresowane wymogiem HITL — patrz karta modelu Lyra.

---

## 8. Klasyfikacja ryzyka + uzasadnienie

**Klasyfikacja: LIMITED RISK — obowiązki transparentności (art. 50 AI Act).**

Uzasadnienie:

1. **Nie jest praktyką zakazaną (art. 5 AI Act):** system nie stosuje technik podprogowych, nie wykorzystuje słabości, nie prowadzi social scoringu, nie identyfikuje biometrycznie w czasie rzeczywistym w przestrzeni publicznej.
2. **Nie jest systemem wysokiego ryzyka (art. 6 + Załącznik III):** system nie realizuje żadnego z przypadków z Załącznika III — brak biometrii, infrastruktury krytycznej, edukacji, zatrudnienia, usług podstawowych (publicznych/prywatnych determinujących dostęp), egzekwowania prawa, migracji/azylu, wymiaru sprawiedliwości i procesów demokratycznych. Nie jest też komponentem bezpieczeństwa produktu objętego Załącznikiem I. **Audyt systemów AI klientów nie jest przypadkiem high-risk** — jest usługą ekspercką z nadzorem człowieka.
3. **Obowiązki transparentności (art. 50 AI Act) — spełnione:**
   - Art. 50 ust. 1: użytkownicy są informowani, że wchodzą w interakcję z systemem AID (Lyra) — strony ujawnienia AI.
   - Art. 50 ust. 9 / art. 13: treści generowane przez AI są oznaczane („🤖 AI-generated").
4. **Spójność z RODO:** brak w pełni zautomatyzowanego podejmowania decyzji o skutkach prawnych (art. 22 RODO) — zawsze HITL.

Klasyfikacja jest okresowo przeglądana; przy zmianie zakresu usługi (np. wyjście z pilotażu, nowe funkcje) dokumentacja zostanie zaktualizowana.

---

## 9. Zarządzanie zmianą

- **Migracje bazy:** wersjonowane pliki w `migrations/` (np. `2026-05-16_audit_hash_chain_trigger.sql`).
- **CHANGELOG:** zmiany funkcjonalne i compliance rejestrowane; strona `changelog` w portfolio.
- **Deploy:** Fly.io (`fly deploy`), aplikacja `k0nsult`, region `fra`; deploy wyłącznie po akceptacji operatora (deployment discipline).
- **Wersjonowanie AI:** stałe identyfikatory modeli (`claude-haiku-4-5-20251001`); zmiana modelu = aktualizacja rejestru `ai_inventory` i karty modelu.
- **Weryfikacja po zmianie:** smoke test compliance (cel 16/16) + `/api/audit/verify-chain`.

---

## 10. Kontakt i wersja

- **Operator / dostawca:** 0n40i4 (Tomasz Obara), JDG, Polska — lobbysta nr 00168 (MSWiA)
- **Kontakt ogólny:** kontakt@k0nsult.cloud
- **Incydenty bezpieczeństwa:** security@k0nsult.cloud
- **Wersja dokumentu:** 1.0
- **Data wydania:** 2026-05-16
- **Podstawa prawna:** Rozporządzenie (UE) 2024/1689 (AI Act); RODO (Rozporządzenie (UE) 2016/679)
- **Powiązane dokumenty:** `MODEL_CARD_LYRA_HAIKU_v1.md`, `AI_GOVERNANCE_POLICY_K0NSULT_v1.md`, `DPIA_K0NSULT_UNIONAI_v1.md`, `RISK_REGISTRY_K0NSULT_v1.md`, `POST_MARKET_MONITORING_v1.md`, `INCIDENT_RESPONSE_PLAN_K0NSULT_v1.md`

---

*Dokument informacyjny dla celów zgodności. Nie stanowi porady prawnej. Klasyfikacja AI Act może podlegać aktualizacji wraz z rozwojem usługi i wytycznymi Komisji Europejskiej / AI Office.*
