CYBER-MISSION-CONTROL-V1.md

# CYBER COMMAND — Mission Control V1 Status: **projekt doświadczenia** (nie kod, nie React, nie silnik) Data: **2026-09-11** Karta: **W-03** Organizacja: **COMPANY-01** · klient: **CLIENT-ALPHA** Świat: `CYBER-WORLD-V1.md` · Incydent: `CYBER-INCIDENT-V1.md` Handoff: `docs/games/cyber/CYBER-HANDOFF.md` C-04 i implementacja UI pozostają **zablokowane**. Najpierw idealny produkt. TARGETED UI REUSE REVIEW — osobna karta. Desktop first: **1440p / ~1920×1080**. Laptop musi się zmieścić. Mobile nie jest V1. --- ## 1. Wizja Gracz jest **Incident Commanderem** w żywym kryzysie, nie uczniem w LMS. Emocja: Mission Control + kokpit + SOC/NOC + crisis room. Estetyka: ciemna, precyzyjna, gęsta, kontrastowa, profesjonalna. **Nie:** Moodle, BI, admin panel, quiz ABCD, 20 kafelków, czysty SOC-only, neonowy cyberpunk, puste SaaS-karty, science-fiction dla ozdoby. --- ## 2. Siedem pytań (2–3 sekundy) Główny ekran **COMMAND** musi odpowiadać bez przełączania zakładek: | # | Pytanie | Gdzie na COMMAND | |---|---|---| | 1 | Co właśnie się stało? | ostatni wpis LIVE FEED + pasek MISSION | | 2 | Co jest teraz najważniejsze? | NEEDS ATTENTION (góra COMMAND STACK) | | 3 | Co wiem? | SITUATION BOARD (statusy z wiedzy) + EVIDENCE w drawerze | | 4 | Czego nie wiem? | UNKNOWN / UNCONFIRMED / SUSPECTED na węzłach i w feedzie | | 5 | Co robi mój zespół? | IN PROGRESS | | 6 | Jak długo to potrwa? | ETA przy działaniach + SIM TIME | | 7 | Co muszę zdecydować? | NEEDS ATTENTION + otwarty Action Console | Jeśli któregoś pytania nie da się zdjąć wzrokiem z COMMAND — za dużo UI. --- ## 3. Ground truth zabroniony w UI Mission Control czyta **wyłącznie player knowledge**. Zakaz bezpośredni: etap atakującego, prawdziwy exfil, ukryte persistence, rzeczywista liczba kont, następny cel, flagi scenariusza, „attacker 67%”. Język pewności (nie fałszywy procent): | Stan wiedzy | Znaczenie | |---|---| | UNKNOWN | brak wiarygodnej obserwacji | | UNCONFIRMED | jest sygnał, nie złożony | | SUSPECTED | hipoteza robocza | | PARTIALLY VERIFIED | dwa niezależne źródła częściowo się zgadzają | | CONFIRMED | organizacja uznała fakt | --- ## 4–9. Architektura COMMAND Jeden ekran. Większość czasu tu. Dock otwiera **drawer/overlay** — COMMAND zostaje w tle. ### Wireframe (1920×1080, proporcje) ``` ~56px MISSION BAR (pełna szerokość, nigdy się nie chowa) ┌──────────────────────────────────────────────────────────────────────────┐ │ CYBER COMMAND · COMPANY-01 SIM 17:42 INCIDENT ELEVATED │ │ OPS DEGRADED ACTIONS 2 CRITICAL 1 DEADLINE — │ ├────────────┬────────────────────────────────────┬────────────────────────┤ │ LIVE FEED │ SITUATION BOARD │ COMMAND STACK │ │ ~22% │ ~50% │ ~28% │ │ │ [ BUSINESS | SYSTEMS | │ NEEDS ATTENTION │ │ 17:41 SOC │ IDENTITY | SECURITY ] │ • Identity contain │ │ HIGH │ │ • CEO sitrep │ │ Sign-in │ CLIENT-ALPHA │ │ │ linked… │ │ │ IN PROGRESS │ │ │ EDI/API │ Revoke Identity 8m │ │ 17:17 │ │ │ │ │ USER │ WMS ──┼── TMS (SaaS) │ RESOURCE PRESSURE │ │ MEDIUM │ │ │ │ SOC ● Identity ● │ │ „to nie │ DC DISPATCH │ Infra ○ Net ○ Legal ○ │ │ ja” │ │ │ │ │ węzeł: NORMAL|UNKNOWN|SUSPECTED| │ │ │ pin: │ DEGRADED|ISOLATED|UNAVAIL|RECOV │ │ │ CRITICAL │ │ │ ├────────────┴────────────────────────────────────┴────────────────────────┤ │ DOCK COMMS │ EVIDENCE │ ACTIONS │ PLAYBOOK │ DEADLINES ~48px │ └──────────────────────────────────────────────────────────────────────────┘ ``` **5 trwałych stref + dock** (dock nie zabiera świata): 1. Mission Bar 2. Live Incident Feed 3. Situation Board 4. Command Stack (Needs / In Progress / Pressure) 5. Command Dock → drawery ### Mission Bar Tylko to, bez czego nie ma dowodzenia: - CYBER COMMAND · COMPANY-01 - **SIM TIME** (zegar ścienny nieeksponowany) - INCIDENT STATUS: MONITORING / ELEVATED / MAJOR / CRITICAL — **z wiedzy**, nie z hidden stage - BUSINESS OPERATIONS: NORMAL / DEGRADED / SEVERE — z obserwacji magazynu/transportu/klienta - ACTIVE ACTIONS (liczba IN PROGRESS) - OPEN CRITICAL ITEMS (liczba pinów CRITICAL w feedzie / Needs) - REGULATORY / RESPONSE — tylko jeśli organizacja **wie**, że zegar istnieje Skok silnika (np. 17:10 → 17:42): krótki, czytelny mostek „SIM +32 min” — bez tickania UI. ### Live Incident Feed (lewy puls) Wpisy: TIME · SOURCE · TYPE · SHORT MESSAGE · CONFIDENCE/STATUS. Źródła m.in.: SIEM, SOC, admin, user, WMS, TMS, CLIENT-ALPHA, helpdesk, vendor, CEO, DPO, media. Stany wpisu: NEW → ACKNOWLEDGED → INVESTIGATING → RESOLVED / SUPERSEDED. **Dyscyplina:** CRITICAL nie tonie. Pin + osobna półka „pinned” na górze feedu. Starsze ADVISORY zwijają się. Zakaz: „attacker reached lateral movement”. ### Situation Board (centrum) 20–35 węzłów z WORLD V1, **nie** 100 hostów. Jedna tablica, cztery **projekcje** (nie cztery aplikacje): | Warstwa | Co łączy | |---|---| | BUSINESS | zlecenia CLIENT-ALPHA → hub → WMS → magazyn → TMS → dispatch | | SYSTEMS | Entra, AD, M365, WMS, TMS, ERP, hub, backup, DC, regional-ops… | | IDENTITY | users / privileged / service / vendor | | SECURITY | EDR, SIEM, SOC, vault, edge | Status węzła **tylko z wiedzy:** NORMAL · UNKNOWN · SUSPECTED · DEGRADED · ISOLATED · UNAVAILABLE · RECOVERING. Jeśli WMS jest w zasięgu ataku, a firma nie wie — węzeł jest NORMAL albo UNKNOWN, nie „compromised”. Kliknięcie węzła → **NodeInspector** (drawer), nie nowa strona. `regional-ops`: jeden węzeł logiczny; w inspectorze można pokazać trzy lokalizacje jako etykiety, nie trzy kopie grafu. ### Command Stack (prawo) **Needs Attention** — problemy, nie ABCD. Pola: WHY NOW · KNOWN IMPACT · TIME PRESSURE. Bez „poprawnej odpowiedzi”. **In Progress** — rozkaz · kto · ETA (z silnika, później). **Resource Pressure** — SOC, Identity, Infra, Network, Legal, Comms, Vendor: AVAILABLE / BUSY / OVERLOADED / UNAVAILABLE. ### Command Dock COMMS · EVIDENCE · ACTIONS · PLAYBOOK · DEADLINES Drawer od dołu lub od prawej, **COMMAND widoczny**. Escape zamyka drawer. --- ## 10. COMMS Centrum komunikacji, nie chat społecznościowy. Kanały: SOC · IT · MANAGEMENT · OPERATIONS · LEGAL/DPO · VENDORS · CUSTOMERS · MEDIA. Formaty: wiadomość, e-mail, telefon, pilny request, raport. **Miejsce na voice (później):** RING → ACCEPT → krótki inject audio → transcript. W-03 tylko rezerwuje **IncomingCall**. Audio nie w V1 kodu. --- ## 11. EVIDENCE Artefakt decyzyjny, nie range: alert, historia logowań, mail, raport SOC, lista systemów, relacja usera, status backupu. Pola: SOURCE · TIME · CONFIDENCE · RELATED SYSTEMS · VERIFICATION STATUS. Nowy artefakt **może zmienić** interpretację starego (np. kalendarz podróży → FP #3). Inspector pokazuje „updates earlier signal”. --- ## 12. Action Console Rozkazy, nie A/B/C/D. Klasy: INVESTIGATE · CONTAIN · PROTECT · RECOVER · COMMUNICATE · ESCALATE. Przed potwierdzeniem: TARGET · TEAM · EST. TIME · KNOWN OPERATIONAL IMPACT · KNOWN RISK · REVERSIBLE / HARD TO REVERSE. Zakaz: „+20 cybersecurity”, ukryta skuteczność, pasek atakującego. SOC może sam potwierdzić isolate **jednego** workstation przy HIGH (W-02). Reszta — autoryzacja IC. --- ## 13. Decision flow ``` SIGNAL → TRIAGE → EVIDENCE → SITUATION ASSESSMENT → COMMAND → RESOURCE ASSIGNMENT → ACTION IN PROGRESS → OBSERVED CONSEQUENCE ``` Brak rozkazu jest legalny. Nie każde NEW wymaga natychmiastowego kliknięcia. Ocena jakości decyzji **nie** wyskakuje po 2 sekundach. Skutek obserwowalny przychodzi z czasem (C-02). --- ## 14. Alarm discipline (3 poziomy) | Poziom | Prezentacja | Dźwięk | Ack | |---|---|---|---| | **ADVISORY** | spokojny wpis w feedzie, bez pinu | brak lub bardzo krótki tick (opcjonalnie off) | nie wymaga | | **WARNING** | podkreślenie, badge na Needs | jeden krótki ton incoming | zalecane, nie blokuje | | **CRITICAL** | pin + Mission Bar + jeden pulse (nie pętla) | jeden distinct chime, **nie** syrena | wymaga acknowledgement | CRITICAL jest **rzadkie** (izolacja DC, WMS UNAVAILABLE, notatka okupu jako artefakt, deadline znany i bliski). Zakaz: wszystko czerwone, ciągłe miganie, agresywne animacje. --- ## 15. Dźwięk (rezerwa, nie implementacja) | Cue | Rola | |---|---| | incoming signal | WARNING w feedzie | | telefon | IncomingCall | | action completed | IN PROGRESS → skutek obserwowalny | | deadline warning | znany obowiązek zbliża się | | critical operational | WMS/TMS/ops SEVERE | Jak kokpit/OS: informuje. Nie arcade, nie minutowy alarm, nie „hacker beep”. --- ## 16. Pięć WOW (z kryzysu, nie z FX) 1. **Link:** dwa niezależne alerty (logowanie + „to nie ja”) **łączą się wizualnie** w jedną sprawę IDENTITY. 2. **Twin:** węzeł WMS NORMAL → DEGRADED na oczach gracza, bez cutscenki. 3. **Presja:** telefon CEO / IncomingCall, gdy IN PROGRESS już zajmuje Identity. 4. **Propagacja BUSINESS:** WMS → picking → loading → dispatch / CLIENT-ALPHA. 5. **Recovery mode:** po destrukcji pasek i dock zmieniają akcent na RECOVERY (kolejność P1, vault), nie GAME OVER. Brak wybuchów i cyberpunku. --- ## 17. Język wizualny DARK · PRECISE · HIGH-CONTRAST · DENSE BUT ORDERED · PROFESSIONAL. Typografia: czytelna, tabular figures na czas. Kolor: semantyka (advisory/warning/critical + status węzła), nie ozdoba. Siatka: ostre krawędzie, cienkie separatory, mało pustki. Nie: neon, grube gradienty SaaS, duże puste karty. --- ## 18. Progressive disclosure COMMAND = operacja. WMS → NodeInspector. Alert → Evidence. Osoba/zasób → Resource + dostępne rozkazy. Deadline → DeadlineDrawer. --- ## 19. Zakaz fałszywych gauge’y Na COMMAND nie ma: CYBERSECURITY 74%, ATTACKER 53%, DATA LOSS 37%. Dozwolone: `WMS: DEGRADED` · `DATA EXPOSURE: UNCONFIRMED` · `IDENTITY: HIGH CONFIDENCE` · `BACKUP: LAST VERIFIED COPY 02:00` · vault: `OFF-DOMAIN COPY: CONFIRMED AVAILABLE` (jeśli Infra to potwierdziła). --- ## 20. Czas Eksponujemy **SIM TIME**. ETA działania w minutach sim. Skok: „SIM advanced +32 min — 2 new items”. Nie real-time clock jako prawda. --- ## 21. CLEAN CONTAINMENT Nie sztuczny kryzys. Przejście: ACTIVE INCIDENT → CONTAINMENT VERIFICATION → STABILIZATION → DEBRIEF. Mission Bar: INCIDENT → CONTAINED. Needs puste. Feed: SUPERSEDED. Satysfakcja, nie „gra skończona za wcześnie, dokładamy bossa”. --- ## 22. Ścieżka destrukcyjna Notatka okupu = **jeden artefakt / wpis COMMS**, nie pełnoekranowe GAME OVER. Gra trwa: BCP + RECOVERY + COMMUNICATION + LEGAL. RecoveryPanel: kolejność P1, niepewność punktu restore, vault vs backup-prod. --- ## 23–25. Persona i świat na HUD - Pierwsze konto: **Coordinator / Customer Operations** — M365, TMS, kontakty, dane operacyjne. Bez DA / global admin. - Privilege V1: możliwe delegated / server-management on-prem; **nie wymagamy Domain Admin**. - Klient: **CLIENT-ALPHA** — strategiczny, wymagający, zależny od terminów. Marka później. --- ## 26. Desktop V1: stanowisko 1920 / 1440p. Laptop: te same 5 stref, węższa tablica (scroll poziomy tablicy **zakazany** — gęstsze węzły / collapse regional). Nie projektujemy apki telefonicznej. --- ## 28. Pięć stanów tego samego COMMAND Stałe zawsze: 5 stref, dock, SIM TIME, zakaz ground truth. ### STATE A — normal / pierwszy słaby sygnał (~T+20) - Bar: MONITORING · OPS NORMAL · ACTIONS 0 · CRITICAL 0 - Feed: jeden ADVISORY/WARNING — nietypowe logowanie Coordinator - Board: wszystko NORMAL; Entra/M365 lekko UNKNOWN jeśli SOC nie skorelował - Stack: puste Needs albo jedno słabe - **Nie wie:** czy to atak, czy podróż analogiczna do FP ### STATE B — identity suspected (~T+50–70) - Bar: ELEVATED - Feed: logowanie + relacja usera; WOW #1 (link dwóch sygnałów) - Board: IDENTITY — konto Coordinator SUSPECTED; M365 UNCONFIRMED - Needs: Account containment - **Nie wie:** persist skrzynki, TMS reach, exfil ### STATE C — confirmed, działania trwają (~T+110–130) - Bar: ELEVATED/MAJOR · ACTIONS ≥1 - In Progress: revoke / forensic ETA - Pressure: Identity BUSY, SOC BUSY - Board: M365 SUSPECTED/CONFIRMED incident; TMS może SUSPECTED jeśli był login - **Nie wie:** drugie konto, privilege Entra, jump ### STATE D — ops degraded (~T+370+, jeśli ścieżka doszła) - Bar: MAJOR/CRITICAL · OPS DEGRADED/SEVERE - Board BUSINESS: WMS DEGRADED, strzałki do picking/loading; TMS osobno (Entra) - Needs: izolacja WMS vs tryb ręczny; presja COO - Feed: Warehouse Ops, nie „ransomware planted” - **Nie wie:** disruption_capability ukryte, czy vault wejdzie, pełny exfil ### STATE E — recovery - Bar: akcent RECOVERY · OPS SEVERE lub wraca DEGRADED - Dock: DEADLINES + PLAYBOOK na wierzchu - Board: WMS RECOVERING / ISOLATED; vault CONFIRMED jeśli Infra potwierdziła - In Progress: restore validation ETA - **Nie wie:** czy punkt kopii jest czysty, aż verification wróci --- ## 29. Pełny moment — DW9 (WMS vs operacje) Źródło: `CYBER-INCIDENT-V1.md` DW9. Warunek: magazyn zgłasza dziwny WMS; IC nie dostaje napisu „REACH WMS = true”. 1. **Ekran:** Feed WARNING→CRITICAL od Warehouse Ops + WMS owner; węzeł `wms` → DEGRADED (WOW #2). BUSINESS pokazuje pęknięcie picking → loading. Needs: „WMS isolation recommendation — authorization required”. 2. **Dźwięk:** jeden CRITICAL chime + opcjonalnie IncomingCall COO (WOW #3), jeśli Identity już BUSY. 3. **Gracz widzi:** OPS DEGRADED, WMS DEGRADED, TMS może być NORMAL (inna domena). DATA EXPOSURE zostaje UNCONFIRMED, jeśli nie było egress. 4. **Otwiera:** NodeInspector WMS, Evidence (log app user, ticket vendor), COMMS Operations. 5. **Zbiera:** „nietypowy user serwisowy” PARTIALLY VERIFIED; brak potwierdzenia DA; vendor jump UNCONFIRMED/SUSPECTED. 6. **Rozkaz:** Action Console → CONTAIN → Isolate / restrict WMS **albo** PROTECT → hold isolate + manual mode. Nie ABCD. 7. **Koszt operacyjny:** przed commitem: „szacunek 25–35% pojemności zmiany, horyzont 8–16 h, ryzyko etykiet” — z WORLD V1, jako **known impact**, nie hidden score. 8. **Zasób:** Infra lub WMS owner → BUSY; jeśli Vendor UNAVAILABLE po wcześniejszym cut — widać to na Pressure. 9. **IN PROGRESS:** „WMS restriction · WMS owner · ETA ~18 min”. 10. **Skutek później:** obserwowalny — WMS ISOLATED/UNAVAILABLE albo nadal DEGRADED; outbound spada; **brak natychmiastowego werdyktu** „dobra decyzja +20”. Atak może być ucięty albo nie — UI pokaże tylko to, co firma zobaczy. --- ## 30. Component inventory (bez kodu) | Komponent | Odpowiedzialność | |---|---| | **MissionBar** | SIM, status incydentu i ops, liczniki, znane deadline’y | | **IncidentFeed** | Puls wpisów, pin CRITICAL, stany NEW…SUPERSEDED | | **FeedItem** | Czas, źródło, pewność, skrót, wejście w evidence | | **SituationBoard** | Graf 20–35 węzłów, 4 projekcje | | **BoardLayerToggle** | BUSINESS / SYSTEMS / IDENTITY / SECURITY | | **TwinNode** | Status z wiedzy, wejście w inspector | | **DependencyLink** | Widoczna zależność / propagacja skutku | | **NodeInspector** | Szczegóły węzła, related evidence, dostępne rozkazy | | **CommandStack** | Kolumna Needs + Progress + Pressure | | **AttentionCard** | Problem decyzyjny: why now, impact, pressure | | **ActionCard** | Trwające działanie i ETA | | **ResourceStrip** | Stan zespołów AVAILABLE…UNAVAILABLE | | **CommandDock** | Pięć wejść do drawerów | | **CommsDrawer** | Kanały i wątki, bez opuszczania COMMAND | | **EvidenceDrawer** | Artefakty, pewność, powiązania, rewizja starych sygnałów | | **ActionConsole** | Rozkaz z kosztem i odwracalnością | | **PlaybookDrawer** | IRP/BCP jako pomoc, nie quiz | | **DeadlineDrawer** | Tylko znane obowiązki | | **IncomingCall** | RING / ACCEPT / placeholder audio / transcript | | **AlertToast** | Jeden pulse CRITICAL/WARNING, nie stos 20 toastów | | **TimeJumpBanner** | Czytelny skok SIM | | **RecoveryPanel** | Kolejność restore, vault vs prod, niepewność punktu | | **ContainmentBanner** | Wejście w verification / debrief po CLEAN | | **ConfidenceChip** | UNKNOWN…CONFIRMED | | **ClientChip** | CLIENT-ALPHA na warstwie BUSINESS | TARGETED UI REUSE REVIEW — później, nie dopasowywać tej listy do Hotel/Gmina teraz. --- ## 31. Reuse W-03 nie analizuje UI GRAMY. Idealny COMMAND najpierw. Potem osobna karta: co wspólne (shell, drawer, typografia), czego nie wpychać (quiz, weekly cockpit, inbox gminy 1:1). --- ## OPEN DECISIONS LGD 1. Czy V1 ma **dźwięk** (choćby 3 cue), czy cisza do pilotażu. 2. Czy IncomingCall w V1 jest tylko tekst+RING, czy od razu rezerwujemy audio. 3. Czy warstwa BUSINESS jest **domyślna** przy starcie (logistyka), czy SYSTEMS. 4. Czy IC widzi **trzy lokalizacje** w inspectorze `regional-ops` od V1. 5. Czy PLAYBOOK w docku jest dostępny w trybie egzaminacyjnym, czy tylko edukacyjnym.