# Orchestrator Implementation Plan — CyberBrain26 v4.1 F2

## Cíl
Dokončení fáze F2 (minimal complete agent flow) a příprava k přesunu k F3 s jasnými prioritami, gatey a otevřenými body. Plán řídí orchestrátor přes subagenty podle delegační matice `.kilo/agent/orchestrator.md`.

## Současný stav (2026-11-03)

### Gate 1 (pre-change) ✅
- `pytest -q`: **763 passed**, 0 failed
- `ruff check .`: **All checks passed**
- `mypy src/cyberbrain26`: **Success, 87 source files**
- Všechny bezpečnostní kontroly jsou zelené

### Gate 2 (post-change) 🔧
- Zelená po změně, ale **llama.cpp server není nasazen** (port 8080 — connection refused)
- Gate 2 podmínky splněny pro Ollama-only backsolve

### Gate 3 (independent) ⏳
- `gate3-auditor` existuje jako `.md`, ale **neexistuje jako typ agenta v Task tool** (Unknown agent type)
- Strukturálně nedokončitelné bez přidání typu a `bash: allow` delegace

### Klíčová rizika / otevřené body (R1–R9)

| Číslo | Název | Stav | Kam patří |
|---|---|---|---|
| **R1** | `plan --steps N` ignoruje `max_steps` | Vstupní bod: `agents/orchestrator.py:153` | Oprava výpočtu steps |
| **R2** | `plan` zapisuje durable řádek, jehož COMPLETED výsledek se nikdy neobnoví | `orchestration/ptah_bridge.py` | Oprava `retry_blocked()` logiky |
| **R3** | `--scopes` platí jen pro roli `coder` (bezpečnostní past) | Argument `--scopes` v `cli.py` | Oprava scope gate v codebase |
| **R4** | Knihovní loggery tisknou celý stack trace na stderr při odmítnutém kroku | `ptah_bridge.py:477`, `task_queue` | Přidání `if __name__ == "__main__"` do `cli.py` |
| **R5** | Legacy durable job řádky jsou trvale neretryovatelné | `task_queue/__init__.py` | Archivace nebo reset IP |
| **R6** | `python3 -m cyberbrain26.cli` tichý exit 0 (chybí `__main__` guard) | `cli.py` | Přidání guardu |
| **R7** | **Zákaznická discovery nezačala (0 rozhovorů)** — blokuje VŠECHNY produktová rozhodnutí | `PROJECT_STATUS.md:168-174` | Zahájit 6–8 rozhovorů |
| **R8** | `llama.cpp` server (port 8080) neběží — proxy proxy.py | `src/cyberbrain26/model_layer/llama_cpp_client.py`, `cb26-lab-start.sh` | Pomocí Ollama-only pro F2 |
| **R9** | Subagent orchestrace: `gate3-auditor` má `bash: allow` ve frontmatteru, ale Task tool ho nezná | `orchestrator.md:151-152`, `.kilo/agent/gate3-auditor.md` | Přidat typ agenta do Task tool |

## Prioritní pořadí (dle AGENTS.md a SESSION_HANDOFF_2026-11-03.md)

### 1. Blokující riziko — zákaznická discovery (R7)
- **Cíl:** Spustit 6–8 cílených rozhovorů s identifikovanými segmenty
- **Dopad:** Bez tohoto kroku nemůže být žádné produktové rozhodnutí
- **Akce:** Přidělit `deep-research` / `pricing-researcher` pro obsah rozhovorů

### 2. Systémové opravy — fáze 1
- **R3** `--scopes` past — oprava scope gate v `cli.py` a `agents/orchestrator.py`
- **R4** `__main__` guard v `cli.py` — transparentní exit kódy
- **R1** `plan --steps N` výpočet — oprava v `agents/orchestrator.py:153`

### 3. Subagent orchestrace — fáze 2
- **R9** `gate3-auditor` do Task tool — přidání typu agenta s `bash: allow`
- **R2** Durable plan rows — implementace `retry_blocked()` ve `ptah_bridge.py`

### 4. Model backend — fáze 3
- **R8** Llama.cpp server — **odložit na Phase 4–5**, provozovat pouze Ollama (port 11434)
- **Důvod:** Gate 1/2 nevyžadují konkrétní inference backend; Ollama splňuje všechny testovací requirementy

### 5. Balení a CI — fáze 4
- Docker, Debian/Ubuntu 24.04 LTS balíčky
- GitHub Actions CI pipeline s Gate 1/2/3 kroky

### 6. Dokončení Gate 3 — fáze 5
- Přidání `gate3-auditor` jako platného agenta
- Příprava artefaktů pro nezávislou verifikaci

## Rozhodnutí (receipt-style)

> **Rozhodnutí č. 1:** Použít **Ollama-only** pro fázi F2.  
> Důkaz: Ollama běží na `127.0.0.1:11434`, 5 modelů k dispozici, embedding pipeline vrací 1024-dim vektor, integrace s `ModelGateway` bez změny kódu.  
> Risiko: Llama.cpp ponecháme jako rezervu pro Phase 4–5.

> **Rozhodnutí č. 2:** Začít s **zákaznickou discovery (R7)** jako s první aktivitou nové relace.  
> Důkaz: 0 rozhovorů blokuje všechna produktová rozhodnutí podle SESSION_HANDOFF_2026-11-03.md:140–141.  
> Akce: Spustit 6–8 rozhovorů, dokumentovat WTP, segmenty.

> **Rozhodnutí č. 3:** Opravit **R1–R4** v první vlně implementace (týden).  
> Důkaz: R1,R3,R4 ovlivňují ordinalitu a transparentnost orchestrace; R2 ovlivňuje trvanlivost plánů.

> **Rozhodnutí č. 4:** Přidat **`gate3-auditor`** do Task tool jako typ agenta s `bash: allow`.  
> Důkaz: Gate 3 je aktuálně "strukturálně nedokončitelný" podle orchestrator.md:151–152. Přidání typu umožní nezávislou verifikaci.

## Plán fáze (ordered task list)

### Fáze A — Okamžitá opatření (tento běh)

1. **A1:** Spustit zákaznické discovery — 6–8 rozhovorů s segmenty (deep-research / pricing-researcher)
2. **A2:** Opravit `cli.py` — přidat `if __name__ == "__main__":` guard
3. **A3:** Opravit `agents/orchestrator.py:153` — `plan --steps N` respektovat `max_steps`
4. **A4:** Opravit scope gate `--scopes` — rozšířit platnost na všechny role nebo přesunout past

### Fáze B — Subagent orchestrace (následující běh)

5. **B1:** Přidat `gate3-auditor` do Task tool — definice typu s `bash: allow`, `edit: deny`, `task: deny`
6. **B2:** Implementovat `retry_blocked()` ve `ptah_bridge.py` pro durable plan rows
7. **B3:** Ověřit Gate 1 po opravách — `pytest -q`, `ruff check`, `mypy src/cyberbrain26`

### Fáze C — Model backend (po schválení vlastníka)

8. **C1:** Udržet pouze Ollama pro F2 (ověřeno common gateway)
9. **C2:** Příprava `llama.cpp` serveru pro Phase 4–5 — dokumentace konfigurace, závislostní řetězec

### Fáze D — Balení a CI (po schválení vlastníka)

10. **D1:** Dockerfile pro monolit (port 8080 pro volitelné llm.cpp, port 11434 pro Ollama)
11. **D2:** GitHub Actions CI pipeline — Gate 1/2/3 kroky, coverage report
12. **D3:** Debian/Ubuntu 24.04 LTS balíčky a repo nastavení

### Fáze E — Dokončení Gate 3

13. **E1:** Spustit Gate 3 s `gate3-auditorem` — diff, tvrzení, evidence
14. **E2:** Zapsat verdikt do `CHANGELOG.md` a reportu vlastníkovi

## Validace po každé fázi

Po každé fázi se musí provést:

1. `pytest -q` — minimálně 763 passed
2. `ruff check .` — All checks passed
3. `mypy src/cyberbrain26` — Success, 87 source files
4. Pokud je fáze kritická pro bezpečnost: `security-auditor` audit claimů

## Open otázky pro vlastníka

1. **Zákaznické rozhovory:** Kdo bude hlavní interviewer? Které segmenty jsou priorita (individual vs enterprise)?
2. **Llama.cpp timeline:** Kdo a kdy rozhodne o migrazi nebo nasazení llm.cpp serveru pro Phase 4–5?
3. **Gate 3 auditor:** Má být `gate3-auditor` integrován do hlavní orchestrace hned, nebo počkat na kompletní Phase 3 dokončení?
4. **Balení:** Priorita Docker vs Debian/Ubuntu balíčky pro první MVP?

## Volání na vlastníka

```
Fáze A: R7 (zákaznická discovery) + R1,R3,R4 oprava — TÝDEN 1
Fáze B: R2,R9 subagent orchestrace — TÝDEN 2
Fáze C: model backend Ollama-only — hotovo pro F2
Fáze D: balení CI — po schválení vlastníka
Fáze E: Gate 3 — po schválení vlastníka a opravenému gate3-auditorovi
```

> **Rozhodnutí:** První krok této relace je **A1 — zahájit zákaznické discovery**. Všechny ostatní opravy jsou sekundární oproti tomu, že produktová rozhodnutí nemůže být přijata bez reálných dat o willingness to pay.

> **Rozhodnutí:** Po A1 provést A2–A4 a ohlásit návrh vlastníka k schválení před přechodem k Fázi B.