Agenti: multiagentní provoz s orchestrátorem a pravidla pro git

Hlavní session běží jako orchestrator (bez souborových nástrojů) a deleguje
na scout, implementer, render-dxf, wpf-ui, reviewer a verifikator. Doplněn
skill upresni pro nejednoznačná zadání. Commit až po revizi, push jen na
vyžádání.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-08 06:04:27 +02:00
co-authored by Claude Opus 5
parent 1e5a552c13
commit d41b3bbf6c
11 changed files with 382 additions and 13 deletions
+57 -5
View File
@@ -12,7 +12,8 @@ dotnet run --project "Rozpisky\Rozpisky.csproj"
```
Baseline: build bez chyb a varování, **119 testů zelených**. Před hlášením hotovo obojí spustit
(nebo použít `/overit`).
(nebo použít `/overit`). Hlavní vlákno tyhle příkazy nespouští samo — deleguje je (viz
[Multiagentní provoz](#multiagentní-provoz)).
## Architektura — jediné pravidlo, které se nesmí porušit
@@ -72,11 +73,62 @@ zůstane plochý. Nový zapisovaný soubor = přes `UzivatelskaData.Cesta(...)`,
- `docs/SZ_SM011_P10_Manual_v6.md`, `Rozpisky/Podklady/SZ_SM011_P10_Manual_v6.pdf`
— normativní podklad SŽ, jen ke čtení.
## Delegování
## Multiagentní provoz
Specializovaní subagenti v `.claude/agents/`: `render-dxf` (Rendering/, Dxf/), `wpf-ui`
(ViewModels/, Views/, Themes/), `verifikator` (read-only build + testy). Pro úkol spadající
celý do jedné z těchto domén je použít; drobnosti napříč vrstvami řešit v hlavním vlákně.
Repo běží jako tým agentů. `.claude/settings.json` nastavuje `"agent": "orchestrator"`, takže
**hlavní session *je* orchestrátor** — má jen `Agent`, `TodoWrite`, `AskUserQuestion` a `Skill`,
žádné nástroje na soubory ani na spouštění příkazů.
| Role | Model | Nástroje | Práce |
|---|---|---|---|
| `orchestrator` (hlavní session) | Opus, high | Agent, TodoWrite, AskUserQuestion, Skill, SendUserFile | Plánuje a deleguje. **Nemá žádné souborové nástroje** (`SendUserFile` jen na cesty nahlášené subagentem). |
| `scout` | Haiku | Read, Grep, Glob | Zjišťuje fakta o kódu. Read-only. |
| `implementer` | Sonnet | Read, Write, Edit, Bash, PowerShell, Grep, Glob | Píše kód mimo obě specializované domény. |
| `render-dxf` | Sonnet | tytéž | Implementer pro `Rendering/` a `Dxf/`. |
| `wpf-ui` | Sonnet | tytéž | Implementer pro `ViewModels/`, `Views/`, `Themes/` a spol. |
| `reviewer` | Sonnet, high | Read, Grep, Glob, Bash, PowerShell | PROŠLO / POTŘEBUJE ZMĚNY. Read-only. |
| `verifikator` | Haiku | Read, Grep, Glob, Bash, PowerShell | Nezávislý build + testy, strukturovaný verdikt. Read-only. |
### Pravidla
- Hlavní vlákno nečte, nepíše, nehledá ani nespouští. Chceš-li se podívat do souboru, pošli
`scout`.
- **Nejdřív fakta, pak plán:** nech si od `scout` potvrdit, že soubor, metoda nebo konvence
existuje, dřív než kolem toho plánuješ.
- Implementera vybírá **složka, do které se sahá**, ne téma úkolu: `Rendering/`, `Dxf/`
`render-dxf`; `ViewModels/`, `Views/`, `Themes/`, `Behaviors/`, `Converters/`, `Theming/`
`wpf-ui`; zbytek (`Cad/`, `Xlsx/`, `Data/`, `Models/`, testy, docs) → `implementer`. Změnu
přes dvě domény rozděl na dva kroky; specialista cizí doménu needituje.
- Každý prompt pro subagenta musí stát sám o sobě — absolutní cesty, úplná specifikace,
znovu vypsaná zjištění. Subagent z konverzace nevidí nic.
- Nic není hotové bez PROŠLO od `reviewer`.
- Když je požadavek nejednoznačný natolik, že dvě čtení dají jinou práci, spusť skill `upresni`.
### Ověřování
- Žádný hook build nespouští. **Ověřené je jen to, co agent skutečně spustil.**
- `implementer`, `render-dxf` i `wpf-ui` končí každý úkol vlastním během buildu a testů
a výsledek doslova citují. Dokud je build červený, úkol není hotový.
- `reviewer` a `verifikator` si build a testy pouští **nezávisle**, hlášení implementera
neberou jako důkaz.
- Orchestrátor musí požadavek na ověření napsat explicitně do každého promptu pro implementera
i revizora — subagent tahle pravidla automaticky nedědí.
## Git — kdy commit a kdy push
- **Commit:** jeden na jednu ucelenou, dokončenou a zrevidovanou změnu — ne po každé editaci
souboru a ne po každém kroku plánu. Commituje se až po zeleném buildu a testech a po `PROŠLO`
od `reviewer`. Rozdělaná práce, červený build ani „průběžný stav" se necommitují.
- Zpráva commitu je **česky**, v duchu historie repa: `Oblast: co se změnilo a proč`
(`Šrafy: rozvinout vzor na čáry místo plné výplně`). Popisuje účinek, ne seznam souborů.
- **Push jen na vyžádání.** `git push` se nespouští sám od sebe — ani po commitu, ani na konci
session. Čeká se, až o něj uživatel výslovně požádá. `git push` proto **není** a nemá být
v `permissions.allow`; každý push projde promptem.
- Když je v pracovním stromu hotová práce a session končí, orchestrátor v závěru jednou větou
řekne, co je scommitované a kolik commitů čeká na push. Nenabízí push jako akci, kterou už
provedl.
- Commit spouští subagent, který má `Bash` (typicky ten, který změnu udělal); orchestrátor
git nespouští, jen ho zadá jako samostatný krok po revizi.
## Další dokumentace