KAOS/TASKS/review/T07.md
djuka b2ece9883b T07: Integracija — Supervisor struct sa end-to-end tokom
- Supervisor struct: NewSupervisor, Run, RunNext, execute
- E2E tok: scan → find → active → run → verify → report → review
- cmdRun u CLI koristi Supervisor
- 8 e2e testova sa mock agentom, 67 ukupno — svi prolaze
- T06 premešten u done/

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 11:59:06 +00:00

105 lines
2.4 KiB
Markdown

# T07: Integracija — sve zajedno
**Kreirao:** planer
**Datum:** 2026-02-20
**Agent:** coder
**Model:** Sonnet
**Zavisi od:** T06
---
## Opis
End-to-end tok: CLI pozove run → učita task → pokrene agenta →
verifikuje → napiše izveštaj → premesti task. Sve komponente
povezane u jedan flow.
## Fajlovi za izmenu
```
code/internal/supervisor/
├── supervisor.go ← Supervisor struct, Run() metoda
└── supervisor_test.go ← end-to-end testovi
```
## Supervisor struct
```go
type Supervisor struct {
Config *config.Config
TasksDir string
CodeDir string
ReportsDir string
}
func NewSupervisor(cfg *config.Config) *Supervisor
func (s *Supervisor) Run(taskID string) error
func (s *Supervisor) RunNext() error
```
## Run() tok
```go
func (s *Supervisor) Run(taskID string) error {
// 1. ScanTasks(s.TasksDir)
// 2. FindTask(taskID) — proveri da je u ready/
// 3. MoveTask → active/
// 4. RunTask(task, s.CodeDir, s.Config.Timeout)
// 5. Verify(s.CodeDir)
// 6. WriteReport(task, runResult, verifyResult, s.ReportsDir)
// 7. Ako AllPassed → MoveTask → review/
// 8. Ako !AllPassed → MoveTask → review/ (sa statusom failed u izveštaju)
// 9. Prikaži rezime
}
```
## RunNext() tok
```go
func (s *Supervisor) RunNext() error {
// 1. ScanTasks
// 2. NextTask — prvi iz ready/ sa ispunjenim zavisnostima
// 3. Ako nema → vrati poruku "nema taskova"
// 4. Run(task.ID)
}
```
## Integracija sa CLI
main.go poziva:
- `run T01` → supervisor.Run("T01")
- `run` (bez ID) → supervisor.RunNext()
- `status` → ScanTasks + ispis
- `next` → NextTask + ispis
- `verify` → Verify + ispis
- `history` → čitaj reports/ + ispis
## Testovi
- End-to-end: napravi temp TASKS/ strukturu, stavi task u ready/,
pokreni Run() sa mock komandom → proveri da je task u review/,
izveštaj napisan, output tačan
- RunNext: dva taska u ready/, jedan sa neispunjenom zavisnošću →
pokrene pravi
- Nema taskova u ready/ → graceful poruka
- Task koji je već active/ → greška
- Failed verifikacija → task u review/ sa failed statusom u izveštaju
- Config greška → graceful poruka
## Očekivani izlaz
`kaos-supervisor run T01` prolazi ceo tok od učitavanja do izveštaja
(sa mock agentom). `go test ./... -v` — svi testovi zeleni.
---
## Pitanja
*(agent piše pitanja ovde, planer odgovara)*
---
## Odgovori
*(planer piše odgovore ovde)*