FIRSTMATE / SYSTEM MAP
Kódem doložený pohled · 31. 7. 2026

Jak Firstmate řídí práci od požadavku až po bezpečný úklid

Firstmate je koordinátor nad terminálovým runtime, gitem a GitHubem. Jeho hlavní přidaná hodnota není „spustit další AI“, ale udržet vlastnictví, rozhodovací pravomoc a důkaz, že žádná práce nezmizí.

AKTIVNÍ V KÓDU NASTAVENO PROVOZNĚ PŘIPRAVENO, NEZAČLENĚNO ZNÁMÉ TŘENÍ
Jeden vstup
Kapitán → Firstmate
Jednotlivé pracovní relace kapitána nekontaktují.
Dva tvary práce
Změna / průzkum
Průzkum nikdy sám nepřechází v opravu.
Izolace
1 práce = 1 kopie
Každá relace má vlastní větev a vlastní záložku.
Nejsilnější pravidlo
Důkaz před smazáním
Signál z obrazovky nikdy nestačí.

1. Topologie a vlastnictví

Kapitán mluví jen s hlavním Firstmate. Ten zapisuje trvalý průběh, spouští pracovní relace v oddělených kopiích a používá externí nástroje pouze jako vykonavatele.

Kdo ovládá kterou část systému
Šipky ukazují předání pokynu nebo důkazu, ne automatickou rozhodovací pravomoc.
flowchart TD C["Kapitán
záměr + konečné schválení"] --> F["Hlavní Firstmate
koordinace + politika"] F --> R["Trvalá evidence
projekty · práce · rozhodnutí · reporty"] F --> T["Terminálový runtime
okna · záložky · procesy"] F --> G["Git
větev · izolovaná kopie · důkaz začlenění"] F --> H["GitHub
PR · CI · merge stav"] T --> A["Pracovní relace
mění jen svou izolovanou kopii"] A --> G A --> R G --> P["Projekt kapitána"] H --> P

Firstmate vlastní proces

Přijme požadavek, určí tvar práce, vytvoří oddělenou kopii, dohlíží, směruje rozhodnutí a ověřuje výsledek.

Pracovní relace vlastní realizaci

Čte a mění pouze přidělenou kopii. Nemá právo mluvit za kapitána ani rozšiřovat zadání.

Kapitán vlastní hranice

Začlenění, odeslání ven, destruktivní kroky, přístupové údaje a nové zásadní závazky.

2. Celý proces

Společný začátek je stejný. Až u výsledku se cesta rozdělí: změna čeká na začlenění, průzkum zanechá trvalou zprávu a bezpečně končí.

Načtení situaceNástroje, rozdíly od minula, co potřebuje kapitána a trvalé preference.
Registr projektuCesta, způsob začlenění a pravomoc pro rutinní doporučení.
Zadání práceVznikne větev, izolovaná kopie, záložka, záznam a přesné instrukce.
DohledBlokující čekání na událost; žádný permanentní polling proces.
OvěřeníAktuální report, změna větve a konkrétní důkaz dokončení.
Začlenění + úklidTeprve po důkazu se zavře záložka a odstraní izolovaná kopie.
Cesta změny projektu
flowchart TD A["Přijatý požadavek"] --> B["Oddělená implementace"] B --> C{"Potřebuje odpověď?"} C -- "Bezpečné doporučení" --> D["Firstmate odpoví"] C -- "Riziko / nejasnost" --> E["Rozhoduje kapitán"] D --> B E --> B B --> F{"Nový report + commit?"} F -- "Ne" --> G["Inspekce / obnova"] F -- "Ano" --> H["Čeká na slovo k začlenění"] H --> I["Fast-forward nebo PR"] I --> J["Nezávislý důkaz začlenění"] J --> K["Bezpečný úklid"]
Cesta průzkumu
flowchart TD A["Otázka k prozkoumání"] --> B["Oddělené čtení a analýza"] B --> C["Trvalý report"] C --> D{"Aktuální a řádně ukončený?"} D -- "Ne" --> E["Inspekce"] D -- "Ano" --> F{"Bez neuložené práce
a otevřených rozhodnutí?"} F -- "Ne" --> G["Ponechat viditelné"] F -- "Ano" --> H["Automatický úklid"] H --> I["Kapitán čte nález"] I --> J{"Chce změnu?"} J -- "Ano" --> K["Nové samostatně schválené zadání"] J -- "Ne" --> L["Konec bez změny projektu"]

3. Rozhodovací mapa

Nejdřív se kontroluje riziko. Teprve potom lze automaticky přijmout doporučenou odpověď. Vše, co mění rozsah nebo může způsobit nevratný dopad, jde kapitánovi do hlavního okna.

flowchart TD Q["Pracovní relace se ptá"] --> R{"Je v otázce riziko?"} R -- "Ano" --> C["Kapitán rozhodne
v hlavním Firstmate okně"] R -- "Ne" --> S{"Je odpověď už v zadání?"} S -- "Ano" --> F["Firstmate ji zopakuje"] S -- "Ne" --> D{"Je bezpečná doporučená volba?"} D -- "Ne / nejasné" --> C D -- "Ano" --> Y{"Projekt dovoluje
rutinní doporučení?"} Y -- "Ano" --> A["Firstmate vybere doporučení"] Y -- "Ne" --> C C --> P["Odpověď se předá zpět"] F --> P A --> P P --> W["Práce pokračuje"]
SituaceRozhodujeKdeVýsledek
Odpověď už výslovně obsahuje zadáníFirstmateAutomaticky předá pracovní relaciBez vyrušení kapitána
Bezpečná doporučená volba uvnitř schválené práceFirstmateAutomatická odpověďPro oba současné projekty povoleno
Nejasná volba bez bezpečného defaultuKapitánHlavní Firstmate oknoFirstmate uvede důkaz, možnosti a doporučení
Nový subsystém, závislost, garance nebo rozšíření rozsahuKapitánHlavní Firstmate oknoPráce čeká na explicitní volbu
Přístupové údaje, destruktivní nebo nevratná akceKapitánHlavní Firstmate oknoNikdy automaticky
Lokální začlenění, push nebo mergeKapitánVýslovné slovo v hlavním okněSamotné „yolo“ nestačí
Zakázaný push/PR z průzkumuFirstmate odmítneAutomatickyOdmítnutí nerozšiřuje pravomoc
Vynucené odstranění bez bezpečnostního důkazuKapitánExplicitní destruktivní příkazS jasným varováním

4. Stavový automat práce

Terminál může hlásit „hotovo“, ale Firstmate tomu nevěří bez reportu z aktuálního kola a u změn také bez nového commitu nebo důkazu, že už byly začleněny.

stateDiagram-v2 [*] --> Zaznamenano: zadání + kopie + relace Zaznamenano --> Bezi: práce začala Zaznamenano --> PotrebujeOdpoved: start nebyl prokázán Bezi --> DocasneCeka: omezené externí čekání Bezi --> PotrebujeOdpoved: otázka / nejasnost DocasneCeka --> Bezi: čekání skončilo PotrebujeOdpoved --> Bezi: odpověď předána Bezi --> Pripraveno: aktuální dokončení ověřeno Pripraveno --> Zacleneno: lokální důkaz Pripraveno --> Pripraveno: PR čeká na merge Zacleneno --> Uklizeno: retenční důkaz prošel Pripraveno --> Uklizeno: průzkum nebo dříve začleněná práce Bezi --> Selhalo: neopravitelný výsledek Selhalo --> Uklizeno: prokázaný nebo výslovně vynucený úklid Uklizeno --> [*]
Důležitý rozdíl: omezené čekání, které samo skončí (například CI), není totéž jako otázka, bez níž práce nemůže pokračovat. První se nechává být, druhé se řeší nebo eskaluje.

5. Kdy se smí zavřít záložka a odstranit kopie

Úklid je založený na nezávislých důkazech. Pokud je některá informace nečitelná, výsledek je „neprokázáno“, nikoliv tichý souhlas.

Úklid projde pouze když…
Gitová kopieJe čitelná a nemá žádné necommitnuté ani nové nesledované změny.
VýsledekVětev je zahrnuta v základu, má shodný výsledný strom po squash merge, nebo existuje důkaz sloučeného PR.
PrůzkumMá neprázdný a aktuální report se správným zakončením.
RozhodnutíNeexistuje žádná otevřená otázka, na níž práce závisí.
IdentitaSystém zná přesné okno a záložku; nic neodhaduje podle názvu.
Co se pak stane
flowchart TD A["Shromáždit všechny důkazy"] --> B{"Vše prokázáno?"} B -- "Ne" --> C["Ponechat práci i záložku
a vypsat všechny důvody"] B -- "Ano" --> D["Zavřít přesnou pracovní záložku"] D --> E["Odstranit izolovanou kopii přes git"] E --> F["Ponechat větev jako další pojistku"] F --> G["Zapsat uzavření"]
Celé crew okno se dnes samo nezavře. Poslední řídicí záložka se záměrně ponechává, takže okno přežije i po úklidu všech pracovních záložek.

6. Více domovů Firstmate

Každý domov má vlastní evidenci projektů, prací, rozhodnutí a svého crew okna. Terminálový runtime je ale sdílený, takže domovy vidí stejné běžící procesy, aniž by sdílely záznamy.

flowchart LR H1["Domov A
vlastní záznamy + crew okno"] --> RT["Sdílený terminálový runtime"] H2["Domov B
vlastní záznamy + crew okno"] --> RT RT --> X["Všechny viditelné pracovní procesy"] H1 -. "nečte záznamy B" .-> H2 H2 -. "nečte záznamy A" .-> H1
Praktický dopad: starší legitimní relace mohou z nového domova vypadat jako neevidované. Proto se nikdy automaticky nepřivlastní ani nezavřou; nejprve se zkoumá jejich skutečný původ.

7. Co platí právě teď

Je nutné oddělit aktivní kód, provozní nastavení a připravenou změnu. Jinak vzniká falešný dojem, že vše už funguje stejně jako zamýšlená politika.

AKTIVNÍ KÓD

Rutinní dialogy se automaticky potvrzují všem

Aktuální implementace při rozhodování ignoruje projektové nastavení. Současně umí ve výstupu naznačit automatické lokální začlenění, které ve skutečnosti neprovádí.

NASTAVENO PROVOZNĚ

Oba současné projekty dovolují doporučené rutinní volby

Tvoje preference je uložená i pro budoucí registrace. Začlenění a odeslání výsledků stále vyžaduje výslovné slovo.

PŘIPRAVENO

Oprava přesně zarovná kód s politikou

Automatické doporučení jen při povoleném nastavení, rizika vždy kapitánovi a žádné tvrzení, že „yolo“ dovoluje začlenění. Změna čeká na tvoje slovo.

Známé startovní tření
  • Nový kořen může zobrazit trust dialog jako zdánlivě nečinnou relaci.
  • Codex se bez vypnuté kontroly aktualizací může ukončit ještě před načtením zadání.
  • Claude může být nedostupný kvůli organizační autentizaci.
  • Některé editory mohou nechat celé zadání pouze připravené ve vstupním poli; bezpečná obnova smí stisknout Enter jen při přesném důkazu.
Co systém záměrně nedělá
  • Nemá permanentní monitor; dohled se spouští po jednotlivých událostech.
  • Neslučuje divergující historii a neřeší konflikty automaticky.
  • Nezakládá vzdálené repozitáře a neposílá ven nic bez pojmenovaného souhlasu.
  • Nezavírá automaticky celé crew okno po poslední práci.
Nejpevnější bezpečnostní invarianty
  • Koordinátor nepíše do projektů.
  • Nevzniká druhá izolovaná kopie, dokud první není účetně uzavřená.
  • Terminálový signál není důkaz dokončení.
  • Nečitelný stav nikdy neznamená souhlas s odstraněním.
  • Push nikdy nepřepisuje vzdálenou historii.
  • PR není považován za sloučený bez nezávislého důkazu.

8. Důkazní mapa

Hlavní tvrzení byla ověřena proti implementaci a testům. Úplný rejstřík s přesnými řádky je součástí zdrojové analytické zprávy.

OblastImplementaceTesty / kontrakt
Zadání a vznik izolované prácesrc/dispatch.ts, src/brief.tstest/dispatch.test.ts, output-contract testy
Dohled a rozhodovánísrc/supervise.tstest/supervise.test.ts, false-completion testy
Začlenění a CIsrc/ship.ts, src/landing.tsship, remote-ship, CI-gate a landing testy
Úklid oken a kopiísrc/completion.ts, src/workspace.tsclean-scout, ship a window-management testy
Trvalá evidence a rozhodnutísrc/state.ts, src/holds.ts, src/lock.tsstate, holds a lock testy
Startup a obnovasrc/cli.ts, reconcile část dohledubrief-me, home-paths a reconcile testy