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.