# Nastavení stroje a repozitáře (https://docs.vitrinka.ai/cs/dev/cli/setup)



## Přihlašovací údaje [#auth]

Jedny na nasazení, získané schválením v prohlížeči, ne vlepeným tajemstvím.

```bash
vitrinka auth login
vitrinka auth status    # nasazení, ke kterým má stroj údaje
vitrinka auth token     # vypíše uložený token pro dosazení v shellu
vitrinka auth logout
```

## Navázání repozitáře [#bind]

Naváže tento repozitář na workspace v nasazení, aby příkazy spuštěné z něj věděly, kam patří.

```bash
vitrinka config bind acme --project myapp
```

## Operátorská persona [#operator]

Výchozí jméno, pod kterým se z tohoto stroje připisují zápisy na nástěnku. Napište ho jednou a každý další zápis je připsaný vám.

```bash
vitrinka config operator            # zobrazí
vitrinka config operator "Olivia"   # nastaví
```

<Callout type="warn">
  Připisování agentů to neovlivní — odpovědi přes MCP zůstávají autorsky agentovy.
</Callout>

## Zapojení repozitáře [#project]

`setup` zapojí repozitář: zapíše checkout do evidence tohoto stroje, vyznačí projekt a origin v commitovaném `vitrinka.config.json`, navrhne ke kontrole politiku indexu pro `@` a zapojí agentní hooky. Pošle také ikonu repozitáře — první ze známých souborů v jeho kořeni (`public/apple-touch-icon.png` … `favicon.ico`, nebo Expo `expo.icon`) — jako ikonu projektu; ikona, kterou někdo vybral ve vitrince, zůstane, pokud nepoužijete `--force-icon`. `project index` index cest pro doplňování později obnoví; `project index configure` upraví politiku, `project index status` ji ukáže.

```bash
vitrinka setup
vitrinka project index
```

`setup` sám zjistí, kam repozitář patří — do projektu, pod kterým ho tento stroj už eviduje, jinak do projektu workspace, který jeho origin deklaruje, jinak do nového projektu pojmenovaného podle repozitáře — a ukáže to při kontrole; `--project` to přebije. Projekt, který se táhne přes víc repozitářů — API, aplikace, infra — je jeden projekt s několika repozitáři, nikdy několik projektů. `link` zařadí repozitář pod existující projekt (bez argumentu na terminálu vybíráte z projektů workspace), `unlink` ho zase vyjme:

```bash
vitrinka project link acme        # přidá origin tohoto repa do projektu acme
vitrinka project link             # výběr z projektů workspace
vitrinka project unlink
```

Každý zapojený checkout se zapíše do evidence tohoto počítače (`~/.config/vitrinka/config.json`). `vitrinka doctor` evidenci porovná s diskem a workspacem a pojmenuje, co se rozjelo — zmizelá cesta, origin, který projekt nedeklaruje, zastaralý setup. `vitrinka doctor --fix` nejdřív vypíše celý plán, změny na počítači a na serveru provede po jednom potvrzení a u každého repozitáře se zeptá, jak mají commitované soubory přistát: jako worktree větev s PR (chráněný main), commit na aktuální větvi, nebo jen zápis souborů.

## Soubory repozitáře [#files]

Navázaný repozitář nese JEDEN commitovaný soubor, `vitrinka.config.json` v kořeni: `project`, `origins` (origin → workspace), `run` (stacky, které spouští párování a pipeline session), `runners` (kam testovací runnery zapisují výsledky — `vitrinka setup --runners`), `capture` (`hidpi`: webové snímky ve 2×, zapnuté, pokud není nastaveno jinak — [`vitrinka config hidpi`](/cs/dev/cli/sets#hidpi)) a politiku `index`. Commitněte ho; žádné tajemství v něm není. Všechno lokální pro stroj — záznamy, artefakty, logy, stav párování a usertestu — žije v `.vitrinka/`, který se ignoruje sám, takže do `.gitignore` nikdy nepřidávejte řádek pro vitrinku. Starší `.vitrinka/project.json` další zápis složí do kořenového souboru; `vitrinka doctor` ho pojmenuje.

## Hooky a trailery commitů [#hooks]

Práce je záznam, takže setup zapojí obě místa, kde se už děje. V agentním harnessu hooky SessionStart, SessionEnd, Stop a PreToolUse navážou session na její úkol, připomenou todo, která se spustila, hlídají předání práce a ohlásí todo vázané na cestu, když se jeho soubor upravuje — [hooky session](/cs/pm/work-loop#hooks). V gitu spouští hook `prepare-commit-msg` v každém repozitáři `vitrinka commit-msg`: na větvi (nebo ve worktree) `vt-<id>` připojí trailer `Vitrinka-Task: vt-<id>`, podle kterého GitHub App připojí commit i pull request k úkolu. Merge, squash ani fixup zprávy nikdy nemění a vždy skončí kódem 0 — commit kvůli vitrince nikdy neselže. Cizí shellový hook se zřetězí, nikdy nepřepíše; `setup uninstall` odstraní přesně svůj blok.

```bash
vitrinka project commits                 # ukáže konvenci tohoto projektu
vitrinka project commits --subject on    # i prefix předmětu s id úkolu
vitrinka workspace commit-prefix colon   # styl prefixu pro celý workspace
```

Trailer se zapisuje vždy. Prefix předmětu se zapíná pro každý projekt zvlášť a má styl workspace: `bracket` (`[vt-401]`, výchozí), `bare` (`vt-401`) nebo `colon` (`vt-401:`); styl nastavuje admin workspace.

## Úklid repozitáře [#tidy]

`project tidy` naplánuje přesuny starých kořenů záznamu a zatoulaných snímků do `.vitrinka/`. Dokud nedáte `--yes`, jen plánuje.

```bash
vitrinka project tidy          # plán
vitrinka project tidy --yes    # provede
```

| Přepínač | Co dělá                                                        |
| -------- | -------------------------------------------------------------- |
| `--yes`  | Provede naplánované přesuny.                                   |
| `--all`  | Přesune i volné obrázky a auditní soubory, nejen `shot-*.png`. |

<Callout type="warn">
  Cest sledovaných gitem se nikdy nedotkne.
</Callout>
