Raport sytuacyjny sprawy: syntetyzuje fakty, ryzyka, dowody, terminy, warianty i priorytety; może generować interaktywny widok sytuacji i eksport danych.
Scanned 9/11/2026
Install to Claude Code
npx -y skills add tittlepl-baj-jk/Lex-Machina-for-OpenAI-Codex --skill raport-sytuacyjny-v2 --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Raport Sytuacyjny V2?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/tittlepl-baj-jk-raport-sytuacyjny-v2)More formats (shields.io, HTML) on the badges page.
---
name: "raport-sytuacyjny-v2"
description: "Raport sytuacyjny sprawy: syntetyzuje fakty, ryzyka, dowody, terminy, warianty i priorytety; może generować interaktywny widok sytuacji i eksport danych."
metadata:
port: "lex-machina-codex"
source-tree: "development-2026-09-01"
source-directory: "raport-sytuacyjny-v2"
---
> [!IMPORTANT]
> Port Codex: przed wykonaniem wczytaj `../shared/CODEX-ADAPTER.md`. Oryginalne metadane są w `references/CODEX-SOURCE-FRONTMATTER.yaml`.
> **Universal runtime:** przed wykonaniem zastosuj kanoniczny `shared/UNIVERSAL-RUNTIME-ADAPTER.md` z osobnego skilla `shared`. Lokalna sekcja adaptera poniżej jedynie go doprecyzowuje.
## ADAPTER RUNTIME — PORTABILITY (ChatGPT / Claude / inne hosty)
Ta sekcja zmienia wyłącznie sposób wykonania operacji technicznych. Metodologia merytoryczna, routing, hard gate’y, checklisty, schematy danych i kryteria finalizacji tego skilla pozostają bez zmian.
1. `view raport-sytuacyjny-v2/<plik>` oraz względne `view modules/...`, `view references/...`, `view assets/...` oznaczają świeży odczyt lokalnego zasobu tego skilla. Literalny katalog `..` nie jest wymagany.
2. `view shared/<plik>` oznacza odczyt z osobnego, kanonicznego skilla `shared`. NIE kopiuj `shared` do tej paczki. Brak obowiązkowego zasobu = fail-closed.
3. `view <inny-skill>/<plik>` oznacza aktywację/odczyt osobnego skilla. Nie vendoryzuj innych skilli.
4. `web_search` / `web_fetch` oznaczają świeże wyszukanie i odczyt źródła przez równoważną funkcję hosta; zachowaj istniejące wymogi źródeł oficjalnych i statusów weryfikacji.
5. `present_files`, `create_file` i odwołania do `HOST_CAPABILITY[document_generation]` / generatorów PDF oznaczają użycie natywnej funkcji dokumentowej bieżącego hosta. Brak literalnej nazwy narzędzia nie zwalnia z HYBRID-VALIDATION, POST-VALIDATION, STEP-TRACKER ani innych bramek.
6. `show_widget`, `visualize:read_me`, `.jsx` i HTML są legacy/natywnymi wariantami UI. Jeśli host ma własny renderer interaktywny, użyj równoważnego widoku zachowującego ten sam model danych i funkcje; jeśli nie, zastosuj pełny fallback tekstowy/plikowy.
7. `/mnt/user-data/...` oznacza rzeczywiste pliki użytkownika dostępne w hoście; wymagany ponowny odczyt musi być faktycznym odczytem pliku.
8. Shell/Python/Cowork i podobne operacje traktuj jako techniki pomocnicze. Jeżeli host ich nie udostępnia, użyj natywnej funkcji równoważnej, bez fikcyjnego raportowania wykonania.
**Zasada nadrzędna:** jeśli instrukcja jest już zrozumiała i wykonalna w bieżącym hoście, wykonaj ją bez konwersji. Adapter działa tylko na granicy runtime.
# Raport Sytuacyjny Sprawy v2
# Kompatybilny z: prawny-router-v3
*(Nagłówek nosi sam MAJOR — decyzja generalna F-102(C): numer pełny mieszka
wyłącznie w polu `version:`. Do 2026-08-23g stało tu „v2.5" przy `version: 2.6`
w YAML — rozjazd o jedną wersję, klasa T12/F-102.)*
---
> ⛔ **HARD GATE — TWIERDZENIA O PRAWIE W WIDGECIE (dodane 2026-08-23g, flaga F-123)**
>
> Ten skill **renderuje treść bezpośrednio użytkownikowi końcowemu** — chronologia,
> mapa ryzyk, rekomendacje procesowe i pole `podstawa` zawierają twierdzenia o
> obowiązującym prawie (przepisy, terminy, skutki procesowe). Widget jest ostatnim
> ogniwem przed odbiorcą: co przejdzie tutaj, nie ma już żadnej kolejnej kontroli.
>
> Przed wpisaniem do blueprintu JAKIEGOKOLWIEK przepisu, terminu ustawowego,
> sygnatury orzeczenia lub skutku procesowego:
>
> ```
> view shared/PRAWO-HARDGATE.md
> ```
> ⛔ **SELF-CHECK ANTY-FASADA — obowiązkowy przed wysłaniem odpowiedzi/pisma**
> (podłączone 2026-08-23i, flaga F-115 — ten skill cytuje prawo, a bramki nie miał):
>
> ```
> view shared/SELF-CHECK-ANTY-FASADA.md
> ```
>
> Sprawdza dwie rzeczy: (1) czy w tekście stoi „zweryfikowano", data weryfikacji
> albo URL przy przepisie, dla którego NIE wywołano narzędzia W TEJ ODPOWIEDZI;
> (2) czy znacznik statusu nie został nadany treści WYGENEROWANEJ w tej odpowiedzi
> (AF-6). Treść listy jest w module, nie tutaj — celowo, żeby nie powstało kolejne
> miejsce dryfu (7 wcześniejszych kopii rozjechało się ze źródłem przy pierwszej
> zmianie brzmienia).
>
> Obowiązuje w całości, w szczególności: zakaz cytowania z pamięci, hierarchia
> statusów źródła (`✅ [VER]` / `🟨 [KOTWICA-URZĘDOWA]` / `⚠️ [NIEWERYFIKOWANE]`),
> self-check ANTY-FASADA (deklaracja „zweryfikowano" bez faktycznego otwarcia
> źródła jest naruszeniem, nie skrótem).
>
> ⛔ **Nie myl tego z klasyfikacją A–E niżej.** Statusy A–E oceniają źródło FAKTU
> w aktach sprawy (dokument / relacja / twierdzenie strony). Statusy z
> PRAWO-HARDGATE oceniają źródło TWIERDZENIA O PRAWIE. Ustalenie faktyczne ze
> statusem `A` może stać obok przepisu, którego nikt nie zweryfikował — to dwie
> niezależne osie, obie obowiązkowe.
>
> Twierdzenie o prawie bez statusu → raport nie może opuścić statusu
> `WERSJA ROBOCZA` (patrz HARD GATES — ZAKAZY).
---
## ARCHITEKTURA
```
raport-sytuacyjny-v2/ ← 2 pliki (stan 2026-08-23g)
├── SKILL.md ← ten plik — jedyne źródło prawdy dla treści
└── references/
└── CHANGELOG.md ← historia wersji (ZASADA 15; założony 2026-08-23g)
```
> ⚠️ **KOREKTA 2026-08-23g:** drzewo wymieniało `assets/RaportSytuacyjnyWidget.html`,
> którego **nie ma na dysku** (`find` na katalogu skilla: 1 plik przed tą sesją).
> Odesłanie było martwe — ta sama klasa rozjazdu rejestru ze stanem faktycznym co
> F-80/F-124 w `audyt-systemu-v4`, tylko w drugą stronę (rejestr obiecywał plik,
> którego nie było). Widget budowany jest w całości z sekcji SEKWENCJA WYWOŁANIA
> i BLUEPRINT JSON w tym pliku — żadnego zewnętrznego szablonu HTML nie brakuje.
---
## POZYCJA W PIPELINE ROUTERA v3
```
prawny-router-v3 SEKWENCJA GŁÓWNA:
KROK 0–4 → [analiza, skille, zbieranie danych]
KROK 5 → TYP WYJŚCIA (pismo / analiza / orzecznictwo)
KROK 6 → generowanie .docx / .pdf (jeśli pismo)
↓
★ RAPORT SYTUACYJNY [A] ★ ← PO KROK 6 (lub po ostatnim kroku)
↓
[Użytkownik kontynuuje / pyta]
↓
★ RAPORT [C] NA ŻĄDANIE ★
```
---
## TRYB [A] — OBOWIĄZKOWY
Wywołaj po **każdym** z poniższych zakończeń pipeline'u:
| Skill / moment | Konkretny punkt wywołania |
|---|---|
| **pisma-procesowe-v3** | Po `present_files` z gotowym `.docx` (KROK 6 routera) |
| **pisma-proste-v2** | Po checkliście finalnej i `present_files` |
| **analiza-sadowa-v6** | Po §10 Rekomendacje procesowe (Filtr #10/#11) |
| **przesluchanie-swiadkow-v2-min90** | Po sekcji „Mowa końcowa" — ostatnim elemencie strategii |
| **analizator-dowodow-v3** | Po sekcji REKOMENDACJE (ostatni blok analizy) |
| **analizator-umow-v1** | Po §8 Rekomendacje zmian |
| **analizator-przepisow-v2** | Po §8 Rekomendacje — tylko przy konkretnej sprawie |
| **prawo-polskie-v2** | Po bloku REKOMENDACJA modułu dziedzinowego |
| **przewodnik-prawny-v2** | Po opcjach działania z konsekwencjami (ostatni krok LAIK) |
| **orzeczenia-sadowe-v2** | Po liście orzeczeń z linkami — tylko gdy sprawa konkretna |
---
## TRYB [B] — PROPOZYCJA po wgraniu dokumentów
```
WYZWALACZ:
Użytkownik wgrywa plik (PDF, DOCX, skan) — akta, wyrok, umowa, pismo
→ po zakończeniu analizy treści dokumentu (nie przerywaj analizy)
ZACHOWANIE — tylko propozycja słowna, NIE widget automatycznie:
"Przeanalizowałem dokumenty. Czy chcesz zobaczyć raport sytuacyjny sprawy
z automatycznie wyciągniętymi danymi? Możesz go edytować na bieżąco."
Gdy użytkownik potwierdzi → wywołaj widget (sekwencja jak [A]).
Gdy odmówi lub milczy → kontynuuj bez widgetu.
```
---
## TRYB [C] — NA ŻĄDANIE (natychmiastowy)
```
FRAZY WYZWALAJĄCE — reaguj natychmiast, bez potwierdzenia:
"aktualny stan sprawy" / "podsumuj sprawę" / "podsumowanie sprawy"
"raport sprawy" / "raport sytuacyjny" / "pokaż raport"
"co wiemy do tej pory" / "co ustaliliśmy" / "status sprawy" / "odśwież raport"
```
---
## KIEDY NIE GENEROWAĆ
```
✗ Pytanie abstrakcyjne o przepis — brak konkretnej sprawy
✗ Ogólna rozmowa prawna bez stanu faktycznego
✗ Tryb [B]: po dokumentach → TYLKO sugestia słowna
✗ W środku analizy — tylko po ostatnim kroku skilla
✗ analizator-przepisow-v2 przy pytaniach abstrakcyjnych (bez sprawy)
✗ orzeczenia-sadowe-v2 przy wyszukiwaniu bez konkretnej sprawy
```
---
## SEKWENCJA WYWOŁANIA — JEDYNA POPRAWNA METODA
```
KROK 1 — Przeanalizuj rozmowę → zbuduj blueprint JSON (schemat poniżej)
KROK 2 — Wykonaj walidację kompletności blueprintu (sekcja WALIDACJA)
KROK 3 — Wywołaj visualize:read_me z modules=["interactive","mockup"]
(tylko jeśli nie załadowano w tej sesji)
KROK 3a — ⛔ MOD-WIDGET-IO (OBOWIĄZKOWE przed show_widget):
view shared/MOD-WIDGET-IO.md
→ wbuduj pasek IO w nagłówek widgetu (powyżej zakładek)
→ IO_SKILL_ID='raport-sytuacyjny-v2', IO_CASE_ID=sygnatura
→ matryca: Export JSON ✅ PDF ✅ | Import JSON ✅
→ ioGetState(): pełny blueprint JSON (§ BLUEPRINT JSON)
→ ioSetState(s): odtwórz wszystkie zakładki z wczytanego blueprintu
KROK 4 — Wywołaj show_widget z widget_code zawierającym kompletny HTML widgetu:
• dane sprawy jako literały JS wbudowane bezpośrednio w HTML
• vanilla JS + CSS variables (var(--color-*))
• BEZ React, BEZ importów, BEZ window.__INJECTED__
• zakładki: Sprawa | Chronologia | Źródła | Ryzyka |
Luki i sprzeczności | Rekomendacje | Historia strategii
• przyciski sendPrompt dla następnych kroków w zakładce Rekomendacje
KROK 5 — Poprzedź widget komunikatem:
"Poniżej aktualny raport sytuacyjny sprawy —
możesz uzupełnić brakujące dane lub skorygować automatycznie
rozpoznane informacje."
NIE WOLNO:
✗ kopiować pliku .jsx i udostępniać przez present_files
✗ używać bash cp + str_replace + present_files dla tego widgetu
✗ używać window.__INJECTED__
✗ używać Anthropic API do zasilania widgetu (dane z rozmowy, nie z API)
```
---
## BLUEPRINT JSON — SCHEMAT DANYCH
```json
{
"tryb": "A|B|C",
"przepis": "art. X KP/KK/...",
"czyn": "opis roszczenia / czynu",
"etap": "przedsądowy|I instancja|apelacja|kasacja|egzekucja",
"dziedzina": "karne|cywilne|pracownicze|admin|rodzinne|spadkowe|gospodarcze",
"sygnatura": null,
"termin": null,
"pilnosc": "natychmiastowa|wysoka|normalna|niska",
"confidence": 0,
"uwagi_pewnosci": "tekst",
"s1rola": "powód|oskarżony|wnioskodawca|...",
"s1opis": "opis strony 1",
"s2rola": "pozwany|oskarżyciel|...",
"s2opis": "opis strony 2",
"zdarzenie": "1–3 zdania stanu faktycznego",
"skutki": null,
"p1lbl": "wygranie|skazanie|...",
"p1pct": 0,
"p1opis": null,
"p2lbl": null,
"p2pct": 0,
"p2war": null,
"sources": [
{"status": "A|B|C|D|E", "type": "dokument|...", "name": "opis",
"impact": "wysoki|średni|niski", "ryzyko": null}
],
"dowody": [
{"opis": "...", "poziom": "A|B|C|D", "typ": "...",
"zrodlo": "...", "ryzyko": null}
],
"risk_map": [
{"level": "P1|P2|P3", "name": "...", "probability": "...",
"wplyw": "...", "mitigation": "..."}
],
"conflicts": [
{"type": "...", "opis": "...", "znaczenie": "...", "rekomendacja": "..."}
],
"chronologia": [
{"data": "YYYY-MM-DD|null", "zdarzenie": "...", "zrodlo": "...",
"status_zrodla": "zweryfikowane|częściowe|twierdzenie strony|brak źródła",
"znaczenie_procesowe": "wysokie|średnie|niskie", "ryzyko": null}
],
"procedural_recommendations": [
{"text": "...", "deadline": "..."}
],
"nastepnyKrok": null
}
```
**Reguła antyhalucynacyjna:** Pola bez podstawy w materiale → `null`. Nie wymyślaj dat, kwot, sygnatur ani stron. Jeśli data nie wynika z materiału → `null`.
**Pole `chronologia[]`:** Jeśli w historii rozmowy istnieje blok "DANE CHRONOLOGICZNE DLA RAPORTU SYTUACYJNEGO" wygenerowany przez chronologia-sprawy-v1 — wyciągnij go i użyj jako wartości tego pola.
```javascript
// Logika auto-zasilania chronologii w widgecie HTML:
const chronSource = window._chronologiaData || null;
if (chronSource && blueprint.chronologia.length === 0) {
blueprint.chronologia = chronSource;
}
```
**Pola rozszerzone blueprintu** (wbuduj obok schematu głównego w widgecie):
```json
{
"ustaleniaZeStatusemZrodla": [],
"mapaRyzyk": [],
"sprzecznosciILuki": [],
"rekomendacjeProcesowe": [],
"poziomPewnosciRaportu": 0,
"ograniczeniaRaportu": [],
"priorytetyAspektow": {
"aspekty_glowne": [],
"aspekty_poboczne": [],
"metody_wybrane": {}
},
"historiaStrategii": {
"tryb": "A|B|null",
"wersje": []
}
}
```
**Pole `priorytetyAspektow`:** jeśli w historii rozmowy wystąpił wynik
`shared/MOD-PRIORYTETY-ASPEKTOW.md` (checklist klasyfikacji), wyciągnij go i
użyj jako wartości tego pola. Aspekty główne i poboczne renderowane są jako
dwie listy w zakładce Ryzyka (patrz §"ZAKŁADKA RYZYKA — ROZSZERZENIE").
**Pole `historiaStrategii`:** jeśli `shared/MOD-HISTORIA-STRATEGII.md` zwróciło
wpisy (TRYB A — window.storage, lub TRYB B — eksport z portalu), wyciągnij
listę wersji jako `wersje[]` (wg schematu §2 tego modułu) i ustaw `tryb`.
Jeśli brak wpisów → `wersje: []`, `tryb: null` — zakładka "Historia strategii"
renderowana jest, ale z komunikatem "Brak zapisanej historii dla tej sprawy".
`poziomPewnosciRaportu` 0–10: zakaz 9–10 przy braku źródeł dla kluczowych faktów.
---
## STATUS ŹRÓDEŁ — KLASYFIKACJA
Każde ustalenie faktyczne musi otrzymać jeden z pięciu statusów:
| Status | Znaczenie | Zasada |
|---|---|---|
| `A — źródło bezpośrednie` | dokument, nagranie, e-mail, decyzja, pismo, akt | mocne ustalenie |
| `B — źródło pośrednie` | relacja, opis, streszczenie, odpowiedź strony | wymaga ostrożności |
| `C — twierdzenie strony` | informacja wyłącznie od użytkownika lub przeciwnika | nie traktować jako udowodnione |
| `D — luka dowodowa` | brak dokumentu lub brak potwierdzenia | oznaczyć jako ryzyko |
| `E — sprzeczność` | dwa źródła mówią co innego | skierować do bloku sprzeczności |
Zakaz mieszania ustaleń kategorii A z twierdzeniami kategorii C bez oznaczenia statusu.
---
## MAPA RYZYK — FORMAT
```json
{
"ryzyko": "opis",
"kategoria": "dowodowe|prawne|terminowe|formalne|strategiczne|kosztowe|reputacyjne",
"prawdopodobieństwo": "niskie|średnie|wysokie",
"wpływ": "niski|średni|wysoki|krytyczny",
"podstawa": "z czego wynika ryzyko",
"działanie_mitygujące": "konkretna czynność",
"priorytet": "P1|P2|P3"
}
```
Priorytety:
- `P1` — może przesądzić o wyniku lub terminie; działanie natychmiastowe.
- `P2` — istotne, nie blokuje biegu sprawy.
- `P3` — porządkowe lub strategiczne.
Kolorowanie w widgecie:
- P1: `border-left: 3px solid var(--color-border-danger)` + `background: var(--color-background-danger)`
- P2: `border-left: 3px solid var(--color-border-warning)` + `background: var(--color-background-warning)`
- P3: `border-left: 3px solid var(--color-border-tertiary)` + `background: var(--color-background-secondary)`
---
## SPRZECZNOŚCI I LUKI — FORMAT
```json
{
"punkt": "czego dotyczy sprzeczność",
"wersja_1": "opis + źródło",
"wersja_2": "opis + źródło",
"znaczenie": "wysokie|średnie|niskie",
"rekomendacja": "jak usunąć sprzeczność"
}
```
Wykrywaj obligatoryjnie: sprzeczne daty, sprzeczne kwoty, sprzeczne wersje zdarzeń, brak dokumentu potwierdzającego kluczową tezę, brak dowodu doręczenia, nieustaloną właściwość sądu, nieustalony termin.
Jeśli nie wykryto sprzeczności i materiał był wystarczający → `"Nie wykryto sprzeczności w dostarczonym materiale"`.
Jeśli materiał niewystarczający → `"Brak wystarczających danych do oceny sprzeczności"`.
---
## ZAKŁADKA RYZYKA — ROZSZERZENIE (priorytety aspektów)
Jeśli `priorytetyAspektow.aspekty_glowne` lub `aspekty_poboczne` niepuste —
dodaj w zakładce Ryzyka osobny blok PONAD mapą ryzyk P1/P2/P3:
```
SEKCJA "PRIORYTETY SPRAWY":
ROSZCZENIA GŁÓWNE:
[lista aspektów_glowne — każdy z odnośnikiem do powiązanego ryzyka
w risk_map, jeśli istnieje]
KWESTIE POBOCZNE:
[lista aspektów_poboczne]
METODY BADAWCZE ZASTOSOWANE:
[metody_wybrane — per aspekt, format "ASP-X: MET-XXX (opis funkcjonalny
z shared/MOD-METODY-BADAWCZE.md §5 — wersja LAIK/PRAWNIK wg detekcji
persony)"]
```
Wizualnie: dwie kolumny (główne/poboczne) analogicznie do checklisty z
`shared/MOD-PRIORYTETY-ASPEKTOW.md` — ale tu w trybie tylko-odczyt
(edycja odbywa się w checklist, nie w raporcie).
Jeśli `priorytetyAspektow.aspekty_glowne` i `aspekty_poboczne` oba puste —
pomiń tę sekcję bez komunikatu (sprawa jednowątkowa, checklist nie była
wywoływana — zgodnie z `MOD-PRIORYTETY-ASPEKTOW.md` §3.4).
---
## ZAKŁADKA HISTORIA STRATEGII
Renderuj jako oś czasu wersji (najnowsza na górze), na podstawie
`historiaStrategii.wersje[]` (schema: `shared/MOD-HISTORIA-STRATEGII.md` §2).
```
DLA KAŻDEJ WERSJI:
Nagłówek: "Wersja [n] — [timestamp]"
Lista wariantów (warianty_pozwu[]):
[nazwa] — Ryzyko: [P1/P2/P3] | Styl: [styl_sugerowany]
[oznacz wybrany wariant (pole "wybor") wizualnie — np. ramka/badge "WYBRANY"]
[jeśli powod_odrzucenia zawiera wpis dla tego wariantu — pokaż jako
"Odrzucony: [powód]"]
Przyciski:
"Porównaj z aktualną wersją" — pokazuje diff wariantów między wersją
historyczną i najnowszą (tylko jeśli ≥2 wersje)
"Wróć do tego wariantu" → sendPrompt('Wróć do wariantu [nazwa] z wersji [n]')
GDY historiaStrategii.wersje jest puste:
Komunikat: "Brak zapisanej historii strategii dla tej sprawy. Historia
zapisywana jest automatycznie po wyborze wariantu pozwu w W1
(pisma-procesowe-v3)."
GDY historiaStrategii.tryb === "A":
Dodaj baner informacyjny (np. var(--color-background-warning)):
"⚠️ Historia zapisana w trybie sesyjnym (Artifacts) — może nie przetrwać
zamknięcia tej konwersacji. Dla trwałej historii skonfiguruj integrację
z portalem (TRYB B w MOD-HISTORIA-STRATEGII)."
```
---
## REKOMENDACJE PROCESOWE — FORMAT
```json
{
"działanie": "konkretna czynność",
"cel": "co ma osiągnąć",
"podstawa": "fakt/ryzyko/luka, z którego wynika",
"termin": "data albo tryb: natychmiast / przed kolejnym pismem / przed rozprawą",
"priorytet": "P1|P2|P3",
"eskalacja_do_skilla": "nazwa skilla albo null"
}
```
Eskalacje (przyciski sendPrompt w zakładce Rekomendacje):
| Sytuacja | Eskalacja |
|---|---|
| Brak osi czasu | `chronologia-sprawy-v1` |
| Brak oceny dowodów | `analizator-dowodow-v3` |
| Potrzeba pisma | `pisma-procesowe-v3` |
| Pytania do świadka | `przesluchanie-swiadkow-v2-min90` |
| Problem z podstawą prawną | `analizator-przepisow-v2` |
| Potrzeba orzecznictwa | `orzeczenia-sadowe-v2` |
---
## WALIDACJA KOMPLETNOŚCI BLUEPRINTU
Wykonaj przed renderowaniem widgetu:
```
POLA OBOWIĄZKOWE:
□ dziedzina → null? → ⬛ [UZUPEŁNIJ: cywilne/karne/pracownicze/admin/inne]
□ etap → null? → ⬛ [UZUPEŁNIJ: przedsądowy/I instancja/apelacja/...]
□ s1rola + s1opis → null? → ⬛ [UZUPEŁNIJ: kim jest strona 1]
□ s2rola + s2opis → null? → ⬛ [UZUPEŁNIJ: kim jest strona 2]
□ zdarzenie → null? → ⬛ [UZUPEŁNIJ: stan faktyczny 1–3 zdania]
□ p1lbl + p1pct → null? → ⬛ [UZUPEŁNIJ: scenariusz główny i prawdopodobieństwo]
POLA OSTRZEGAWCZE:
□ sources[] → pusta? → ⚠️ brak rejestru źródeł
□ risk_map[] → pusta? → ⚠️ brak mapy ryzyk
□ chronologia[] → pusta? → ⚠️ brak osi czasu — rozważ chronologia-sprawy-v1
WYNIK:
0 pól ⬛ → GOTOWY → renderuj widget
1–2 ⬛ → CZĘŚCIOWY → renderuj widget z banerem "⚠️ Raport częściowy — uzupełnij pola [lista]"
≥3 ⬛ → ROBOCZY → renderuj widget z banerem "⛔ Wersja robocza — brak kluczowych danych"
+ wyświetl listę brakujących pól przed widgetem
```
Baner statusu w widgecie (sekcja Sprawa):
| Status | Kolor | Tekst |
|---|---|---|
| GOTOWY | `var(--color-background-success)` | `✅ Raport kompletny` |
| CZĘŚCIOWY | `var(--color-background-warning)` | `⚠️ Raport częściowy — uzupełnij pola [lista]` |
| ROBOCZY | `var(--color-background-danger)` | `⛔ Wersja robocza — brak kluczowych danych` |
---
## HARD GATES — ZAKAZY
Raport nie może być oznaczony jako gotowy gdy:
- nie oznaczono statusu źródeł kluczowych ustaleń,
- nie wskazano ryzyk procesowych,
- pominięto sprzeczności lub luki mimo widocznych rozbieżności,
- podano termin bez źródła,
- podano podstawę prawną bez weryfikacji albo zastrzeżenia,
- ⛔ jakiekolwiek twierdzenie o prawie (przepis, termin ustawowy, sygnatura,
skutek procesowy) trafiło do blueprintu bez statusu wg
`shared/PRAWO-HARDGATE.md` — `✅ [VER: źródło, data]`, `🟨 [KOTWICA-URZĘDOWA]`
albo `⚠️ [NIEWERYFIKOWANE]` (F-123, 2026-08-23g); dotyczy też pola `podstawa`
w mapie ryzyk i treści rekomendacji, nie tylko chronologii,
- przedstawiono twierdzenie strony (status C) jako fakt udowodniony.
- `confidence` wynosi 9–10 przy braku źródeł dla kluczowych faktów.
W takim przypadku raport otrzymuje status `WERSJA ROBOCZA`.
---
## POZIOM PEWNOŚCI RAPORTU 0–10
| Poziom | Kryterium |
|---|---|
| 0–3 | Raport orientacyjny, materiał niewystarczający |
| 4–6 | Częściowa podstawa, istotne luki |
| 7–8 | Dobra podstawa, ograniczone ryzyka |
| 9–10 | Mocna podstawa źródłowa, brak istotnych luk |
Zakaz dawania 9–10 przy braku źródeł dla kluczowych faktów.
---
## FUNKCJE WIDGETU
- **7 zakładek:** Sprawa | Chronologia | Źródła | Ryzyka | Luki i sprzeczności | Rekomendacje | Historia strategii
- **Baner statusu** (GOTOWY / CZĘŚCIOWY / ROBOCZY) w zakładce Sprawa
- **Auto-fill** — dane z rozmowy wyciągane automatycznie przy każdym otwarciu; brak Anthropic API
- **Detekcja trybu** — widget wykrywa [A]/[B]/[C] i pokazuje go w badge
- **Edycja inline** — metadane, strony, stan faktyczny, dowody, predykcja
- **Oznaczanie zmian** — niebieski kontur + badge "zmienione" na każdym edytowanym elemencie
- **Oznaczanie dowodów** — każdy dowód zmieniony względem auto-fill jest oznaczony
- **Historia zmian** — pełny log z godziną, cofanie Ctrl+Z, ponawianie Ctrl+Y
- **Resetuj** — powrót do stanu auto-fill jednym kliknięciem
- **Graceful fallback** — przy błędzie renderowania widget otwiera się w trybie ręcznym
z amber-barem i komunikatem błędu; użytkownik uzupełnia pola ręcznie
- **Historia snapshota** — tryb ręczny zapisuje się jako "Tryb ręczny — brak auto-fill" w historii
- **Retry ×2 z backoffem** — przy błędzie: próba 1 natychmiast, próba 2 po 500 ms, próba 3 po 1000 ms
- **Timeout 15s** — AbortController przerywa fetch po 15 sekundach; nie blokuje widgetu
- **📄 Eksportuj PDF** — pełny raport: metadane, strony, stan faktyczny, rejestr dowodów,
predykcja, chronologia, ryzyka, rekomendacje, historia zmian; otwiera dialog drukowania
- **Kontynuuj ↗** — sendPrompt do dalszej pracy z Claude
- **Przyciski sendPrompt** w zakładce Rekomendacje dla kolejnych kroków akcji
### Integracja z analizatorem umów v1.8
Gdy raport generowany po analizie umowy — dodaj sekcję RYZYKA KONTRAKTOWE w zakładce Ryzyka:
```
TRIGGER: sprawa zawiera umowę / kontrakt / OWU / regulamin
SEKCJA KONTRAKTOWA (lazy — tylko gdy analiza umowy była wcześniej):
□ Ekspozycja finansowa klauzul → wynik z mod-shared-economic.md
□ Brakujące klauzule TOP 3 → wynik z mod-shared-missing-clause.md
□ Aktywne regulacje UE → wynik z mod-shared-regulatory-horizon.md
□ Kluczowe orzecznictwo → wynik z mod-shared-orzecznictwo-umow.md
Format w zakładce Ryzyka (dodaj jako osobny blok):
| Klauzula | Ryzyko finansowe | Poziom A/B/C/D | Regulacja |
Rekomendacja: [playbook FL z mod-shared-fallback-library.md]
```
---
## INTEGRACJA Z PRAWNY-ROUTER-V3
Router v3 wywołuje ten skill jako **ostatni krok SEKWENCJI END-TO-END**
(po KROK 6 lub po ostatnim kroku skilla bez dokumentu).
Punkty self-check routera v3:
```
□ Czy po wygenerowaniu pisma/raportu wywołałem raport-sytuacyjny-v2? [A]
□ Czy po wgraniu dokumentów zaproponowałem raport-sytuacyjny-v2? [B]
□ Czy na żądanie użytkownika generuję raport-sytuacyjny-v2 natychmiast? [C]
```
---
## WALIDACJA KOŃCOWA — HYBRID-VALIDATION
Po wygenerowaniu widgetu:
```
view shared/HYBRID-VALIDATION.md
```
FAZA 1 — auto-raport braków 🔴/🟡/🔵 (bez pytania o zgodę)
FAZA 2 — użytkownik uzupełnia wybrane punkty → wstawiaj precyzyjnie
FAZA 3 — licznik ⬛ + zamknięcie
---
## INTEGRACJA Z KANCELARYJNYM JĄDREM SHARED
Gdy wynik ma służyć strategii procesowej, ocenie ryzyka lub decyzji terminowej:
```
view shared/PRAWO-HARDGATE.md ← ⛔ ZAWSZE, gdy w raporcie
pada jakikolwiek przepis,
termin lub sygnatura (F-123)
view shared/TRYBY-PROCESOWE.md
view shared/RISK-ASSESSMENT.md
view shared/TERM-CALC.md
view shared/DOWODY-METODOLOGIA.md
view shared/PREKLUZJA-DOWODOWA.md
view shared/STRATEGIA-PROCESOWA.md
view shared/QUALITY-CHECK.md
```
Nie dubluj logiki shared w lokalnych plikach.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!