T01: Inicijalizacija Go projekta

- go mod init github.com/dal/kaos
- Config paket sa .env učitavanjem i validacijom
- Supervisor skeleton paket
- Entry point (cmd/kaos-supervisor/main.go)
- Makefile (build, test, vet, clean, all)
- .env.example, .gitignore
- 6 config testova — svi prolaze

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
djuka 2026-02-20 11:21:06 +00:00
commit f001c53ca1
36 changed files with 2017 additions and 0 deletions

162
CLAUDE.md Normal file
View File

@ -0,0 +1,162 @@
# KAOS — Mastermind
**Verzija:** 0.3.0
**Poslednje ažuriranje:** 2026-02-20
---
## Kad te pokrenu
Ti razgovaraš sa operaterom. Operater je tvoj šef — on odlučuje šta se radi.
### Tok rada
1. Operater kaže "radi" ili "T01" ili "nastavi"
2. Pogledaj `TASKS/ready/` — ima li task spreman za rad
3. Pogledaj `TASKS/review/` — ima li task sa dopunjenim odgovorima
4. Pokaži operateru šta ćeš da radiš — **čekaj odobrenje**
5. Kad dobiješ ok — izvršavaj
### Kad izvršavaš task
1. Premesti fajl iz `ready/` u `active/`
2. Pročitaj `agents/coder/CLAUDE.md` — pravila kodiranja
3. Kod piši u `code/` folderu
4. Ako imaš pitanje:
- Zapiši pitanje u task fajl pod `## Pitanja`
- Premesti fajl iz `active/` u `review/`
- Reci operateru "imam pitanje, čekam odgovor u fajlu"
- **STANI — ne radi dalje dok operater ne kaže "nastavi"**
5. Kad nastaviš:
- Pročitaj odgovor u task fajlu
- Premesti fajl iz `review/` u `active/`
- Nastavi rad
6. Kad završiš:
- Svi testovi moraju proći
- Build mora proći
- Commituj: `T{XX}: Opis na srpskom`
- Napiši izveštaj u `TASKS/reports/T{XX}-report.md`
- Premesti task fajl iz `active/` u `review/`
- Reci operateru "gotovo, čeka pregled"
### NIKAD
- Ne radi bez odobrenja operatera
- Ne pretpostavljaj šta operater želi
- Ne preskoči "čekaj odobrenje"
- Ne radi na tasku koji nije u `ready/` ili `review/`
---
## Task folderi
```
TASKS/
├── backlog/ ← novi taskovi (piše planer, čeka odobrenje operatera)
├── ready/ ← odobreni za rad (operater premesti iz backlog/)
├── active/ ← u izradi (agent premesti iz ready/)
├── review/ ← čeka pregled (agent ima pitanje ili završio)
├── done/ ← završeno i odobreno (operater premesti iz review/)
└── reports/ ← izveštaji izvršenih taskova
```
### Ko šta radi
| Folder | Ko piše | Ko čita | Ko premešta |
|--------|---------|---------|-------------|
| backlog/ | planer | operater | operater → ready/ |
| ready/ | — | agent | agent → active/ |
| active/ | agent | agent | agent → review/ |
| review/ | planer (odgovori) | operater, agent | operater → done/ ili agent → active/ |
| done/ | — | svi | nikad |
| reports/ | agent | svi | nikad |
---
## Struktura projekta
```
/root/projects/KAOS/
├── CLAUDE.md ← OVO — mastermind (v0.3.0)
├── README.md
├── agents/ ← specijalizovani agenti
│ ├── triage/CLAUDE.md
│ ├── task-manager/CLAUDE.md
│ ├── coder/CLAUDE.md
│ ├── frontend/CLAUDE.md
│ ├── checker/CLAUDE.md
│ ├── reporter/CLAUDE.md
│ ├── docs/CLAUDE.md
│ └── deployer/CLAUDE.md
├── documentation/ ← eksterna dokumentacija (tuđe)
├── TASKS/ ← taskovi po stanju
│ ├── backlog/
│ ├── ready/
│ ├── active/
│ ├── review/
│ ├── done/
│ ├── reports/
│ ├── MASTER-STATUS.md
│ └── Implementation-Tasks.md
└── code/ ← Go kod
```
---
## Agent registar
| Agent | Folder | Model | Verzija |
|-------|--------|-------|---------|
| Triage | agents/triage/ | Haiku | 0.1.0 |
| Task Manager | agents/task-manager/ | Sonnet/Haiku | 0.1.0 |
| Coder | agents/coder/ | Sonnet/Opus | 0.1.0 |
| Frontend | agents/frontend/ | Sonnet | 0.1.0 |
| Checker | agents/checker/ | Haiku/Opus | 0.1.0 |
| Reporter | agents/reporter/ | Haiku | 0.1.0 |
| Docs | agents/docs/ | Haiku | 0.1.0 |
| Deployer | agents/deployer/ | Haiku | 0.1.0 |
---
## Model selekcija
Pravilo: uvek najjeftiniji model koji može da uradi posao.
| Zadatak | Agent | Model | Cena/M tokena |
|---------|-------|-------|---------------|
| Klasifikacija prijave | triage | Haiku | $0.25/$1.25 |
| Generisanje taska | task-manager | Sonnet | $3/$15 |
| Kodiranje | coder | Sonnet | $3/$15 |
| Kompleksno kodiranje | coder | Opus | $15/$75 |
| Frontend | frontend | Sonnet | $3/$15 |
| Build + Test | checker | Haiku | $0.25/$1.25 |
| Code review | checker | Opus | $15/$75 |
| Izveštaj | reporter | Haiku | $0.25/$1.25 |
| Dokumentacija | docs | Haiku | $0.25/$1.25 |
| Deploy | deployer | Haiku | $0.25/$1.25 |
---
## Pristup
| Folder | Čita | Piše |
|--------|------|------|
| agents/ | ✅ | ❌ |
| TASKS/ | ✅ | ✅ (status, premesti fajlove) |
| documentation/ | ✅ | ❌ |
| code/ | ✅ | ✅ (kad izvršava task) |
---
## Verzionisanje CLAUDE.md fajlova
Format: `Major.Minor.Patch`
- Patch (0.1.1) — sitne ispravke
- Minor (0.2.0) — nova pravila, novi korak
- Major (1.0.0) — fundamentalna promena
Kad se promeni CLAUDE.md → podigne verzija → ažurira Agent registar.

176
README.md Normal file
View File

@ -0,0 +1,176 @@
# KAOS — AI-Supervised Development System
**Verzija:** 0.1.0
**Status:** Pokretanje
**Autor:** DAL d.o.o.
**Poslednje ažuriranje:** 2026-02-20
---
## Šta je KAOS
Sistem gde AI agenti razvijaju softver pod ljudskim nadzorom.
Jedan mastermind orkestrira, specijalizovani agenti izvršavaju,
čovek odobrava. Svaki agent zna samo svoj deo posla.
---
## Kako radi
```
Klijent prijavi (šta hoće ili šta ne radi)
Operater proveri (da li ima smisla, doradiš opis)
Mastermind se uključi (čita kontekst, razume problem)
Task se zapiše (markdown, u listu taskova)
Operater odobri (ok, kreni)
Mastermind pokrene agenta (pravi model, minimalan kontekst)
Agent izvrši (kodira, testira, commituje)
Checker verifikuje (build, test, vet — nezavisno)
Reporter napiše izveštaj (šta, koliko, koliko koštalo)
Operater pregleda (kod, testovi, izveštaj)
Deploy ili dorada
```
---
## Arhitektura — Multi-Agent
```
┌─────────────────┐
│ MASTERMIND │
│ (root CLAUDE) │
│ ne kodira, │
│ orkestrira │
└───────┬─────────┘
┌───────┬───────┬───┴───┬───────┬───────┬───────┬───────┐
▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼
┌───────┐┌──────┐┌──────┐┌──────┐┌───────┐┌────────┐┌────┐┌───────┐
│Triage ││Task ││Coder ││Front ││Checker││Reporter││Docs││Deploy │
│ ││Mgr ││ ││end ││ ││ ││ ││er │
│Haiku ││Sonnet││Sonnet││Sonnet││Haiku/ ││Haiku ││Haiku││Haiku │
│ ││ ││/Opus ││ ││Opus ││ ││ ││ │
└───────┘└──────┘└──────┘└──────┘└───────┘└────────┘└────┘└───────┘
```
**Princip:** Agenti ne komuniciraju međusobno. Samo sa mastermindom.
**Cena:** Uvek najjeftiniji model koji može da uradi posao.
---
## Struktura projekta
```
/root/projects/KAOS/
├── CLAUDE.md ← mastermind (v0.1.0)
├── README.md ← ovo
├── agents/ ← specijalizovani agenti
│ ├── triage/CLAUDE.md ← klasifikacija prijava
│ ├── task-manager/CLAUDE.md ← kreiranje taskova, status
│ ├── coder/CLAUDE.md ← backend kodiranje
│ ├── frontend/CLAUDE.md ← React kodiranje
│ ├── checker/CLAUDE.md ← verifikacija
│ ├── reporter/CLAUDE.md ← izveštaji
│ ├── docs/CLAUDE.md ← eksterna dokumentacija
│ └── deployer/CLAUDE.md ← git merge, verzije, deploy
├── documentation/ ← eksterna dokumentacija (tuđe)
│ ├── api-specs/
│ ├── regulations/
│ └── third-party/
└── TASKS/ ← taskovi, specifikacije, izveštaji
├── MASTER-STATUS.md
├── Architecture.md
├── Workflow-Spec.md
├── Supervisor-Spec.md
├── Multi-Agent-Spec.md
├── Implementation-Tasks.md
└── reports/
```
---
## Verzije
### v0.1 — Osnova (TRENUTNO)
- Mastermind + agenti definisani u CLAUDE.md fajlovima
- Supervisor: ručno pokretanje (`kaos-supervisor run T01`)
- Checker: build + test + vet (deterministički)
- Izveštaji: markdown u TASKS/reports/
- Git: direktno na main
- Nema baze, nema frontend-a, nema AI trijaže
### v0.2 — Automatizacija (planirano)
- Supervisor daemon ili watch folder
- AI trijaža prijava
- AI compliance provere (modul, pravila, konvencije)
- Staging → main branch strategija
- Auto-retry za flaky testove
- Notifikacije (konfigurabilan kanal)
### v0.3 — Kompletni ekosistem (planirano)
- Frontend dashboard
- WebSocket real-time praćenje
- Help sistem
- Embed SDK
- Cost tracking dashboard
- Metrike i analitika
- Distribucija prema licencama
---
## Donesene odluke
| Odluka | Izbor | Datum |
|--------|-------|-------|
| Arhitektura | Multi-agent (mastermind + specijalizovani) | Feb 2026 |
| Komunikacija | Agenti → samo sa mastermindom, nikad međusobno | Feb 2026 |
| Model selekcija | Po zadatku: Haiku/Sonnet/Opus | Feb 2026 |
| Format taskova | Markdown (nema JSON-a, jedno mesto istine) | Feb 2026 |
| Triger | Ručno v0.1, automatizacija v0.2 | Feb 2026 |
| Verifikacija | Dupla (agent + supervisor nezavisno) | Feb 2026 |
| Retry | Čekaj operatera (v0.1), auto-retry (v0.2) | Feb 2026 |
| Verzionisanje | Semver (Major.Minor.Patch) | Feb 2026 |
| Izveštaji | Markdown u TASKS/reports/, idu u git | Feb 2026 |
| Dorada | Novi task sa MD referencom na stari | Feb 2026 |
| Rollback | Git revert (v0.1) | Feb 2026 |
| Branch | Direktno main (v0.1), staging (v0.2) | Feb 2026 |
| Timeout | Ručno podešavanje, operater odlučuje | Feb 2026 |
| Troškovi | Praćenje po tasku (tokeni, cena, vreme) | Feb 2026 |
| Backend | Go | Feb 2026 |
| Frontend | React + TypeScript + Vite + Tailwind + shadcn/ui | Feb 2026 |
| Baza | PostgreSQL (v0.2+) | Feb 2026 |
| HTTP framework | Gin (v0.2+) | Feb 2026 |
| Engine | `pkg/engine/` javni paket, nula HTTP (v0.2+) | Feb 2026 |
---
## Poreklo
KAOS je nastao iz ARV (Advanced Resource & Venue Management) projekta
gde smo dokazali da AI agent može da razvija softver pod nadzorom.
ARV ima 43+48 završenih taskova ovim pristupom.
KAOS formalizuje taj proces u alat koji može da se koristi za bilo koji projekat.

View File

@ -0,0 +1,371 @@
# KAOS v0.1 — Implementacioni taskovi
**Verzija:** 0.1.0
**Poslednje ažuriranje:** 2026-02-20
---
## Pregled
V0.1 cilj: supervisor koji pokreće Claude Code agente, prati izvršavanje,
verifikuje rezultat, piše izveštaj. Ručno pokretanje, markdown taskovi.
---
## T01: Inicijalizacija Go projekta
**Status:** pending
**Agent:** coder
**Model:** Sonnet
**Zavisi od:** —
**Opis:**
Kreirati Go projekat u `code/` folderu sa osnovnom strukturom.
**Fajlovi za kreiranje:**
```
code/
├── go.mod ← module github.com/dal/kaos
├── .env.example ← KAOS_TIMEOUT=30m
├── .gitignore ← Go defaults + .env
├── Makefile ← build, test, vet, clean
├── cmd/
│ └── kaos-supervisor/
│ └── main.go ← entry point (prazan skeleton)
├── internal/
│ ├── config/
│ │ └── config.go ← čita .env, drži config struct
│ └── supervisor/
│ └── supervisor.go ← prazan skeleton
└── CLAUDE.md ← pravila kodiranja (kopija agents/coder/CLAUDE.md)
```
**Pravila:**
- `go mod init github.com/dal/kaos`
- Go 1.22+
- Makefile targeti: `build`, `test`, `vet`, `clean`, `all`
- Config čita iz .env: KAOS_TIMEOUT, KAOS_PROJECT_PATH
- Svaki fajl mora imati package doc komentar
**Test:**
- `go build ./...` prolazi
- `go vet ./...` prolazi
- Config test: učitaj .env.example, proveri da su vrednosti popunjene
**Očekivani izlaz:**
Projekat se kompajlira. `make build` kreira binary. `make test` prolazi.
---
## T02: Task loader — parsiranje markdown taskova
**Status:** pending
**Agent:** coder
**Model:** Sonnet
**Zavisi od:** T01
**Opis:**
Supervisor mora da čita taskove iz markdown fajla (ovog fajla).
Parsira sekcije, izvlači ID, status, zavisnosti.
**Fajlovi za kreiranje:**
```
code/internal/supervisor/
├── task.go ← Task struct, LoadTasks(), FindTask(), NextTask()
└── task_test.go ← testovi sa primer markdown-om
```
**Task struct:**
```go
type Task struct {
ID string // T01, T02...
Title string // naslov
Status string // pending, running, done, failed
Agent string // coder, checker, frontend...
Model string // Haiku, Sonnet, Opus
DependsOn []string // lista task ID-eva
Description string // ceo opis
}
```
**Funkcije:**
- `LoadTasks(mdPath string) ([]Task, error)` — parsira markdown
- `FindTask(tasks []Task, id string) *Task` — nađi po ID-u
- `NextTask(tasks []Task) *Task` — prvi pending čije su zavisnosti done
- `UpdateStatus(mdPath, taskID, newStatus string) error` — promeni status u fajlu
**Test:**
- LoadTasks sa primer markdown-om → parsira tačno
- NextTask vraća pravi task po zavisnostima
- UpdateStatus menja fajl korektno
- Edge case: nema pending taskova, cirkularna zavisnost
**Očekivani izlaz:**
`go test ./internal/supervisor/ -v` — svi testovi zeleni.
---
## T03: Runner — pokretanje Claude Code
**Status:** pending
**Agent:** coder
**Model:** Sonnet
**Zavisi od:** T02
**Opis:**
Pokreće Claude Code sa task promptom, prati stdout/stderr u realnom vremenu,
meri vreme, čuva exit code.
**Fajlovi za kreiranje:**
```
code/internal/supervisor/
├── runner.go ← RunTask(), priprema prompt, pokreće claude CLI
└── runner_test.go ← test sa mock komandom (ne pravi claude)
```
**Funkcije:**
```go
type RunResult struct {
TaskID string
StartedAt time.Time
FinishedAt time.Time
Duration time.Duration
ExitCode int
Output string
Error string
}
func RunTask(task Task, projectPath string, timeout time.Duration) RunResult
```
**Prompt koji šalje Claude Code-u:**
```
Radi na KAOS projektu.
Tvoj task: {ID} — {Title}
Pročitaj CLAUDE.md u root-u projekta za pravila rada.
{Description}
Kad završiš: go build, go test, commituj, pushuj.
```
**Test:**
- Mock: umesto `claude` pokreni `echo "done"` — proveri da RunResult ima tačne podatke
- Timeout: pokreni `sleep 999` sa timeout 1s — proveri da se prekine
- Output capture: proveri da stdout/stderr su uhvaćeni
**Očekivani izlaz:**
RunTask pokrene proces, uhvati output, meri vreme, poštuje timeout.
---
## T04: Checker — verifikacija posle agenta
**Status:** pending
**Agent:** coder
**Model:** Sonnet
**Zavisi od:** T01
**Opis:**
Posle svake Claude Code sesije, nezavisno pokrene build + test + vet.
**Fajlovi za kreiranje:**
```
code/internal/supervisor/
├── checker.go ← Verify(), CheckResult struct
└── checker_test.go ← test sa privremenim Go projektom
```
**Funkcije:**
```go
type CheckResult struct {
Name string // "build", "test", "vet"
Status string // "pass", "fail"
Output string
Duration time.Duration
TestCount int // samo za test check
}
type VerifyResult struct {
Build CheckResult
Vet CheckResult
Test CheckResult
AllPassed bool
}
func Verify(projectPath string) VerifyResult
```
**Test:**
- Napravi temp Go projekat koji prolazi — Verify vraća AllPassed=true
- Napravi temp Go projekat sa syntax error — Build fail
- Napravi temp Go projekat sa failing test — Test fail
- Proveri da TestCount parsira tačno
**Očekivani izlaz:**
Verify pokrene tri komande, parsira rezultat, vrati struct.
---
## T05: Reporter — pisanje izveštaja
**Status:** pending
**Agent:** coder
**Model:** Sonnet
**Zavisi od:** T03, T04
**Opis:**
Generiše markdown izveštaj posle izvršenog taska.
**Fajlovi za kreiranje:**
```
code/internal/supervisor/
├── reporter.go ← WriteReport()
└── reporter_test.go
```
**Funkcije:**
```go
func WriteReport(
task Task,
run RunResult,
verify VerifyResult,
reportsDir string,
) (string, error) // vraća putanju do izveštaja
```
**Format izveštaja:**
```markdown
# T{XX}: Naslov
**Datum:** 2026-02-20 10:15
**Trajanje:** 8m 45s
**Status:** ✅ Završen / ❌ Neuspešan
## Verifikacija
- ✅/❌ go build (0.3s)
- ✅/❌ go vet (0.2s)
- ✅/❌ go test (12/12 testova, 2.1s)
## Agent output
(skraćen output Claude Code sesije)
## Commit
- Hash: a1b2c3d
- Branch: main
```
**Test:**
- WriteReport sa mock podacima → fajl postoji, sadržaj tačan
- Proveri format datuma, trajanja
- Proveri da folder kreira ako ne postoji
**Očekivani izlaz:**
`TASKS/reports/T01-report.md` se generiše sa tačnim sadržajem.
---
## T06: CLI — komandni interfejs
**Status:** pending
**Agent:** coder
**Model:** Sonnet
**Zavisi od:** T02, T03, T04, T05
**Opis:**
Entry point — parsira komande, poziva supervisor funkcije.
**Fajlovi za izmenu:**
```
code/cmd/kaos-supervisor/main.go ← komande
```
**Komande:**
```bash
kaos-supervisor run [TASK_ID] # pokreni task (ili sledeći ako bez ID)
kaos-supervisor status # prikaži status svih taskova
kaos-supervisor next # prikaži šta je sledeće
kaos-supervisor verify # ponovo pokreni verifikaciju
kaos-supervisor history # prikaži izvršene taskove iz reports/
```
**Pravila:**
- Bez eksternih CLI biblioteka (flag package dovoljno)
- Svaka komanda ima --help
- Formatiran terminal output (emoji za status)
- Poruke na srpskom
**Test:**
- `kaos-supervisor status` sa primer taskovima → ispravan output
- `kaos-supervisor next` → vraća pravi task
- Nepoznata komanda → help poruka
**Očekivani izlaz:**
`make build``bin/kaos-supervisor` radi sve komande.
---
## T07: Integracija — sve zajedno
**Status:** pending
**Agent:** coder
**Model:** Sonnet
**Zavisi od:** T06
**Opis:**
End-to-end tok: učitaj taskove → pokreni → verifikuj → izveštaj → ažuriraj status.
**Fajlovi za izmenu:**
```
code/internal/supervisor/
├── supervisor.go ← Run() koji povezuje sve korake
└── supervisor_test.go
```
**Funkcija:**
```go
func (s *Supervisor) Run(taskID string) error {
// 1. Učitaj taskove
// 2. Nađi task (po ID-u ili NextTask)
// 3. Proveri zavisnosti
// 4. Postavi status: running
// 5. Pokreni Claude Code (RunTask)
// 6. Verifikuj (Verify)
// 7. Napiši izveštaj (WriteReport)
// 8. Postavi status: done ili failed
// 9. Prikaži rezultat
}
```
**Test:**
- End-to-end sa mock Claude Code komandom
- Task sa neispunjenom zavisnošću → greška
- Task koji je već done → skip ili greška
- Failed verifikacija → status=failed, izveštaj navede šta palo
**Očekivani izlaz:**
`kaos-supervisor run T01` prolazi ceo tok od učitavanja do izveštaja.
---
## Redosled izvršavanja
```
T01 (Go init)
├── T02 (Task loader)
│ │
│ └── T03 (Runner)
│ │
│ └── T05 (Reporter) ──┐
│ │
└── T04 (Checker) ─────────────┘
T06 (CLI)
T07 (Integracija)
```
**Quality gates:**
- Posle T01: `make build` i `make test` prolaze
- Posle T04: Verify radi na test projektu
- Posle T06: Sve komande rade iz terminala
- Posle T07: End-to-end tok radi sa mock agentom

46
TASKS/MASTER-STATUS.md Normal file
View File

@ -0,0 +1,46 @@
# KAOS — Master Status
**Verzija:** 0.3.0
**Poslednje ažuriranje:** 2026-02-20
---
## Fajl indeks
| Fajl | Opis |
|------|------|
| `CLAUDE.md` | Mastermind (v0.3.0) |
| `README.md` | Pregled projekta, arhitektura, odluke |
| `agents/*/CLAUDE.md` | 8 agenata (v0.1.0) |
| `TASKS/MASTER-STATUS.md` | Ovo — navigacija, status |
| `TASKS/Implementation-Tasks.md` | Svi taskovi detaljno |
| `TASKS/Workflow-Spec.md` | 10 koraka, odluke |
| `TASKS/Multi-Agent-Spec.md` | Arhitektura agenata |
---
## Task folderi
| Folder | Sadržaj | Taskovi |
|--------|---------|---------|
| backlog/ | Čeka odobrenje | T01 |
| ready/ | Odobren za rad | — |
| active/ | U izradi | — |
| review/ | Čeka pregled/odgovor | — |
| done/ | Završeno | — |
---
## v0.1 Taskovi
| Task | Naslov | Folder | Zavisi od |
|------|--------|--------|-----------|
| T01 | Inicijalizacija Go projekta | backlog | — |
| T02 | Task loader (parsiranje MD) | — | T01 |
| T03 | Runner (pokretanje Claude Code) | — | T02 |
| T04 | Checker (build + test + vet) | — | T01 |
| T05 | Reporter (pisanje izveštaja) | — | T03, T04 |
| T06 | CLI (komandni interfejs) | — | T02-T05 |
| T07 | Integracija (end-to-end) | — | T06 |
T02-T07 će biti napisani u backlog/ kad T01 bude done.

79
TASKS/Multi-Agent-Spec.md Normal file
View File

@ -0,0 +1,79 @@
# KAOS Multi-Agent Arhitektura
**Verzija:** 0.1.0
**Poslednje ažuriranje:** 2026-02-20
---
## Princip
Jedan mastermind orkestrira, specijalizovani agenti izvršavaju.
Mastermind NIKADA ne kodira. Agenti znaju SAMO svoj deo.
Agenti NE komuniciraju međusobno — samo sa mastermindom.
---
## Agenti
| Agent | Uloga | Model | Cena/M tokena |
|-------|-------|-------|---------------|
| **Mastermind** | Orkestrira, odlučuje, ne kodira | Sonnet | $3/$15 |
| **Triage** | Klasifikuje prijave (tip, prioritet, modul) | Haiku | $0.25/$1.25 |
| **Task Manager** | Kreira taskove, prati status | Sonnet/Haiku | $3/$15 |
| **Coder** | Piše Go kod + testove | Sonnet/Opus | $3-$15/$15-$75 |
| **Frontend** | Piše React kod + Playwright testove | Sonnet | $3/$15 |
| **Checker** | Build, test, vet, code review | Haiku/Opus | $0.25-$15 |
| **Reporter** | Piše izveštaje u markdown | Haiku | $0.25/$1.25 |
| **Docs** | Čita eksternu dokumentaciju | Haiku | $0.25/$1.25 |
| **Deployer** | Git merge, tag, verzija, deploy | Haiku | $0.25/$1.25 |
Pravilo: uvek najjeftiniji model koji može da uradi posao.
---
## Izolacija
Svaki agent dobija SAMO:
1. Svoj CLAUDE.md (pravila za njegov deo)
2. Fajlove koje treba da čita (eksplicitno)
3. Zadatak (šta tačno da uradi)
Agent NE dobija: celu codebase, druge module, poslovne odluke koje ga se ne tiču.
---
## Tok — primer
```
1. Operater: "Dodaj export faktura u PDF"
2. Mastermind: razbije na backend (T28a) + frontend (T28b)
3. Coder (Sonnet): implementira PDF endpoint + test
4. Checker (Haiku): go build, go test, go vet
5. Frontend (Sonnet): dugme Export PDF + Playwright test
6. Checker (Haiku): npm build, playwright test
7. Reporter (Haiku): napiše izveštaj
8. Mastermind: "Završeno, čeka odobrenje"
9. Operater: pregleda, odobri
10. Deployer (Haiku): git tag, deploy
```
---
## Verzionisanje
Svaki CLAUDE.md ima verziju (Semver).
Mastermind drži Agent registar sa verzijama.
Promena pravila = nova verzija + ažuriran registar.
---
## Prednosti
| Prednost | Objašnjenje |
|----------|-------------|
| Jeftinije | Haiku za jednostavne stvari, Opus samo kad mora |
| Brže | Manji kontekst = brži odgovor |
| Preciznije | Agent fokusiran na jedan zadatak = manje grešaka |
| Bezbednije | Agent za frontend ne može pokvariti engine |
| Skalabilno | Lako dodaš novog agenta |
| Zamenjivo | Novi model — promeniš samo u mastermind config |

65
TASKS/Workflow-Spec.md Normal file
View File

@ -0,0 +1,65 @@
# KAOS Workflow — Korak po korak
**Verzija:** 0.1.0
**Poslednje ažuriranje:** 2026-02-20
---
## Koraci
### 0. Klijent prijavi
Šta hoće ili šta ne radi. Sad: ti u chatu. Gotov sistem: forma u aplikaciji.
### 1. Operater proveri
Da li ima smisla? Duplikat? Doradi opis.
### 2. Planer (Claude) se uključi
Kad operater kaže "krećemo". Čita kontekst, razume problem.
### 3. Task se zapiše u markdown
Jedno mesto istine. Supervisor parsira direktno. Nema JSON-a.
### 4. Operater odobri
Pregleda task, kaže ok.
### 5. Claude Code izvrši (triger: ručno)
V0.1: `kaos-supervisor run T01`. V0.2: automatizacija.
### 6. Verifikacija (dupla)
Claude Code proveri sam pre commita. Supervisor verifikuje nezavisno posle.
V0.1: build + test + vet. V0.2: + AI compliance.
### 7. Commit + Push + Verzija
Semver. Izveštaj uključuje cenu (tokeni).
### 8. Izveštaj
Markdown u TASKS/reports/, ide u git. Sadrži vreme, status, cenu, promene.
### 9. Operater pregleda
Kod, testovi, izveštaj. Ako ne valja: novi task sa MD referencom na stari.
Rollback: git revert.
### 10. Deploy
V0.1: git push = deploy. V0.2: distribucija prema licencama.
---
## Odluke
| Tema | Odluka |
|------|--------|
| Format taskova | Samo markdown |
| Triger | Ručno (v0.1) |
| Supervisor | Po potrebi, nije daemon (v0.1) |
| Verifikacija | Dupla (agent + supervisor) |
| Retry | Čekaj operatera (v0.1) |
| Verzionisanje | Semver |
| Izveštaji | Markdown u reports/, git |
| Dorada | Novi task sa MD referencom |
| Rollback | Git revert |
| Branch | Main direktno (v0.1), staging (v0.2) |
| Timeout | Ručno podešavanje |
| Logovanje | Real-time + sumarno |
| Paralelnost | Jedan (v0.1), konfigurabilan (v0.2) |
| Troškovi | Po tasku (tokeni, cena, vreme) |
| Notifikacije | Bez (v0.1), konfigurabilan (v0.2) |

66
TASKS/active/T01.md Normal file
View File

@ -0,0 +1,66 @@
# T01: Inicijalizacija Go projekta
**Kreirao:** planer
**Datum:** 2026-02-20
**Agent:** coder
**Model:** Sonnet
**Zavisi od:** —
---
## Opis
Kreirati Go projekat u `code/` folderu sa osnovnom strukturom
za KAOS supervisor.
## Fajlovi za kreiranje
```
code/
├── go.mod ← module github.com/dal/kaos
├── .env.example ← KAOS_TIMEOUT=30m, KAOS_PROJECT_PATH=.
├── .gitignore ← Go defaults + .env
├── Makefile ← build, test, vet, clean, all
├── cmd/
│ └── kaos-supervisor/
│ └── main.go ← entry point (prazan skeleton)
├── internal/
│ ├── config/
│ │ ├── config.go ← čita .env, Config struct
│ │ └── config_test.go ← test
│ └── supervisor/
│ └── supervisor.go ← prazan skeleton
└── CLAUDE.md ← kopija agents/coder/CLAUDE.md
```
## Pravila
- `go mod init github.com/dal/kaos`
- Go 1.22+
- Makefile targeti: `build`, `test`, `vet`, `clean`, `all`
- Config čita iz .env: KAOS_TIMEOUT, KAOS_PROJECT_PATH
- Svaki fajl mora imati package doc komentar
- Nema hardkodiranih vrednosti
## Testovi
- `go build ./...` prolazi
- `go vet ./...` prolazi
- Config test: učitaj .env.example, proveri da su vrednosti popunjene
## Očekivani izlaz
Projekat se kompajlira. `make build` kreira binary u `bin/`.
`make test` prolazi. `make vet` čist.
---
## Pitanja
*(agent piše pitanja ovde, planer odgovara)*
---
## Odgovori
*(planer piše odgovore ovde)*

41
agents/checker/CLAUDE.md Normal file
View File

@ -0,0 +1,41 @@
# Checker Agent
**Verzija:** 0.1.0
**Poslednje ažuriranje:** 2026-02-20
## Uloga
Verifikuje da je kod ispravan — build, test, vet.
V0.2+: provera usklađenosti sa poslovnim pravilima.
## Model: Haiku (build/test) / Opus (code review)
## Dobija od masterminda
- Putanja do projekta
- Šta da proveri (build, test, vet, ili sve)
- V0.2+: pravila za proveru (modul docs, konvencije)
## Vraća mastermindu
```
build: PASS / FAIL (output, trajanje)
vet: PASS / FAIL (output, trajanje)
test: PASS / FAIL (output, trajanje, broj testova)
```
## V0.1 provere (deterministične)
- `go build ./...`
- `go vet ./...`
- `go test ./... -v -count=1`
## V0.2+ provere (AI)
- MODULE — promene u skladu sa dokumentacijom modula
- RULES — poštovanje poslovnih pravila
- CONVENTIONS — terminologija, naming, stil
- RBAC — endpoint u pravom route group-u
- AUDIT — write operacije imaju audit log
- LICENSE — feature u pravoj ediciji
- DEPS — ne kvari zavisne module
## NE zna
- Zašto je task napravljen
- Ko je prijavio
- Druge module osim onog koji proverava

39
agents/coder/CLAUDE.md Normal file
View File

@ -0,0 +1,39 @@
# Coder Agent
**Verzija:** 0.1.0
**Poslednje ažuriranje:** 2026-02-20
## Uloga
Piše kod prema zadatku. Implementira funkcionalnost, piše testove,
poštuje konvencije projekta.
## Model: Sonnet (standardan) / Opus (kompleksno)
## Dobija od masterminda
- Zadatak (šta tačno da uradi)
- Fajlove koje treba da čita (eksplicitno navedene)
- Ograničenja (šta NE sme)
- code/CLAUDE.md (pravila kodiranja za ovaj projekat)
## Vraća mastermindu
- Status: gotovo / neuspešno / treba pojašnjenje
- Lista kreiranih/izmenjenih fajlova
- Commit hash
- Pokrenuti testovi i rezultat
## Pravila
- Poštuje code/CLAUDE.md pravila
- Svaka funkcija mora imati test
- `go build ./...` mora proći pre commita
- `go test ./... -count=1` mora proći pre commita
- `go vet ./...` mora proći pre commita
- Commit format: `T{XX}: Opis na srpskom`
- Error handling: svaka greška se obrađuje
- Nazivi u kodu: engleski
- Nema hardkodiranih vrednosti
## NE zna
- Druge module osim onih u zadatku
- Poslovne odluke
- Druge agente
- Frontend (osim ako je to zadatak)

40
agents/deployer/CLAUDE.md Normal file
View File

@ -0,0 +1,40 @@
# Deployer Agent
**Verzija:** 0.1.0
**Poslednje ažuriranje:** 2026-02-20
## Uloga
Git merge, verzionisanje, deploy hook-ovi.
Izvršava finalne korake posle odobrenja operatera.
## Model: Haiku (shell komande, deterministički)
## Dobija od masterminda
- Commit/branch za deploy
- Verzija (semver)
- Deploy target (produkcija, staging)
## Vraća mastermindu
- Status: deployed / failed
- Verzija koja je deployovana
- Git tag kreiran
- Servis restartovan (da/ne)
## V0.1 akcije
```bash
git tag v{X.Y.Z}
git push origin --tags
# restart servisa ako treba
```
## V0.2+ akcije
- Merge staging → main
- Build binary
- Distribucija prema licencama
- Notifikacija klijentima o novoj verziji
- Rollback ako deploy padne
## NE zna
- Šta je u kodu
- Zašto se deploy radi
- Poslovne odluke

24
agents/docs/CLAUDE.md Normal file
View File

@ -0,0 +1,24 @@
# Docs Agent
**Verzija:** 0.1.0
**Poslednje ažuriranje:** 2026-02-20
## Uloga
Čita, indeksira i sumira eksternu dokumentaciju.
API specifikacije, zakoni, regulative, dokumentacija biblioteka.
## Model: Haiku (čitanje, sumiranje)
## Dobija od masterminda
- Pitanje ili kontekst koji treba istražiti
- Putanja do relevantnih dokumenata u documentation/
## Vraća mastermindu
- Odgovor na pitanje
- Relevantni delovi dokumentacije (citati, reference)
- Sumarni pregled ako je tražen
## NE zna
- Kod projekta
- Taskove
- Druge agente

36
agents/frontend/CLAUDE.md Normal file
View File

@ -0,0 +1,36 @@
# Frontend Agent
**Verzija:** 0.1.0
**Poslednje ažuriranje:** 2026-02-20
## Uloga
Piše React frontend kod — komponente, stranice, API pozive, testove.
## Model: Sonnet
## Dobija od masterminda
- Zadatak (šta da napravi/izmeni)
- API endpoint specifikaciju (šta backend vraća)
- Wireframe ili opis UI-a
- code/kaos-frontend/CLAUDE.md (pravila za frontend)
## Vraća mastermindu
- Status: gotovo / neuspešno / treba pojašnjenje
- Lista kreiranih/izmenjenih fajlova
- Commit hash
- Screenshot ili opis promena
## Pravila
- React + TypeScript + Vite + Tailwind + shadcn/ui
- TanStack Query za API pozive
- Playwright testovi za svaki novi flow
- `npm run build` mora proći
- `npx playwright test` mora proći
- Responsivan dizajn
- Poruke korisniku: srpski
## NE zna
- Backend implementaciju (samo API spec)
- Engine internals
- Bazu podataka
- Poslovne odluke osim onih u zadatku

49
agents/reporter/CLAUDE.md Normal file
View File

@ -0,0 +1,49 @@
# Reporter Agent
**Verzija:** 0.1.0
**Poslednje ažuriranje:** 2026-02-20
## Uloga
Piše izveštaje posle izvršenih taskova. Formatira podatke u markdown.
## Model: Haiku (jeftin, formatiranje poznatih podataka)
## Dobija od masterminda
- Task ID i naslov
- Vreme početka i kraja
- Rezultat verifikacije (build, test, vet)
- Lista promenjenih fajlova
- Commit hash
- Token potrošnja i cena
## Vraća mastermindu
- Putanja do izveštaja: `tasks/reports/T{XX}-report.md`
## Format izveštaja
```markdown
# T{XX}: Naslov
**Datum:** YYYY-MM-DD HH:MM
**Trajanje:** Xm Ys
**Status:** ✅ Završen / ❌ Neuspešan
**Cena:** ~$X.XX (N tokena)
**Model:** Koji model je korišćen
## Verifikacija
- ✅/❌ go build (Xs)
- ✅/❌ go vet (Xs)
- ✅/❌ go test (N/N testova, Xs)
## Promene
- N fajlova kreirano/izmenjeno
- Commit: hash
- Branch: main
## Fajlovi
- putanja/fajl.go (kreiran/izmenjen)
```
## NE zna
- Sadržaj koda
- Poslovnu logiku
- Druge taskove

View File

@ -0,0 +1,43 @@
# Task Manager Agent
**Verzija:** 0.1.0
**Poslednje ažuriranje:** 2026-02-20
## Uloga
Upravlja task listom — kreira taskove, ažurira status, prati zavisnosti.
Parsira markdown taskove za supervisor.
## Model: Sonnet (kreiranje) / Haiku (status update)
## Dobija od masterminda
- Opis šta treba da se uradi (od operatera)
- Trenutni status taskova (MASTER-STATUS.md)
- Zavisnosti između taskova
## Vraća mastermindu
- Kreiran task u tasks/Implementation-Tasks.md
- Ažuriran MASTER-STATUS.md
- Lista zavisnosti i redosled izvršavanja
## Upravlja fajlovima
- tasks/Implementation-Tasks.md — dodaje/menja taskove
- tasks/MASTER-STATUS.md — ažurira status
- tasks/reports/ — ne piše (to radi reporter)
## Format taska u markdown-u
```markdown
### T{XX}: Naslov
**Status:** pending / running / done / failed
**Zavisi od:** T{YY}, T{ZZ}
**Model:** Sonnet
**Fajlovi za čitanje:** [lista]
**Fajlovi za izmenu:** [lista]
**Opis:** Šta tačno treba uraditi
**Ograničenja:** Šta NE sme
**Očekivani izlaz:** Kako izgleda kad je gotovo
```
## NE zna
- Kod projekta
- Kako se kodira
- Poslovne detalje osim onih u opisu

28
agents/triage/CLAUDE.md Normal file
View File

@ -0,0 +1,28 @@
# Triage Agent
**Verzija:** 0.1.0
**Poslednje ažuriranje:** 2026-02-20
## Uloga
Klasifikuje prijave — tip, prioritet, pogođeni modul, procena složenosti.
## Model: Haiku (brz, jeftin)
## Dobija od masterminda
- Tekst prijave (šta korisnik kaže)
- Listu modula projekta (samo imena)
## Vraća mastermindu
```
Tip: BUG / NOVO / IZMENA
Prioritet: LOW / MEDIUM / HIGH / CRITICAL
Modul: koji deo sistema (fakture, zaposleni, smene...)
Procena: jednostavno / srednje / kompleksno
Kratak opis: jednom rečenicom šta je problem
```
## NE zna
- Kod projekta
- Arhitekturu
- Poslovne odluke
- Druge taskove

2
code/.env.example Normal file
View File

@ -0,0 +1,2 @@
KAOS_TIMEOUT=30m
KAOS_PROJECT_PATH=.

31
code/.gitignore vendored Normal file
View File

@ -0,0 +1,31 @@
# Binaries
bin/
*.exe
*.exe~
*.dll
*.so
*.dylib
# Test binary
*.test
# Output of go coverage
*.out
# Go workspace
go.work
go.work.sum
# Environment
.env
# IDE
.idea/
.vscode/
*.swp
*.swo
*~
# OS
.DS_Store
Thumbs.db

39
code/CLAUDE.md Normal file
View File

@ -0,0 +1,39 @@
# Coder Agent
**Verzija:** 0.1.0
**Poslednje ažuriranje:** 2026-02-20
## Uloga
Piše kod prema zadatku. Implementira funkcionalnost, piše testove,
poštuje konvencije projekta.
## Model: Sonnet (standardan) / Opus (kompleksno)
## Dobija od masterminda
- Zadatak (šta tačno da uradi)
- Fajlove koje treba da čita (eksplicitno navedene)
- Ograničenja (šta NE sme)
- code/CLAUDE.md (pravila kodiranja za ovaj projekat)
## Vraća mastermindu
- Status: gotovo / neuspešno / treba pojašnjenje
- Lista kreiranih/izmenjenih fajlova
- Commit hash
- Pokrenuti testovi i rezultat
## Pravila
- Poštuje code/CLAUDE.md pravila
- Svaka funkcija mora imati test
- `go build ./...` mora proći pre commita
- `go test ./... -count=1` mora proći pre commita
- `go vet ./...` mora proći pre commita
- Commit format: `T{XX}: Opis na srpskom`
- Error handling: svaka greška se obrađuje
- Nazivi u kodu: engleski
- Nema hardkodiranih vrednosti
## NE zna
- Druge module osim onih u zadatku
- Poslovne odluke
- Druge agente
- Frontend (osim ako je to zadatak)

19
code/Makefile Normal file
View File

@ -0,0 +1,19 @@
BINARY_NAME=kaos-supervisor
BIN_DIR=bin
.PHONY: all build test vet clean
all: vet test build
build:
go build -o $(BIN_DIR)/$(BINARY_NAME) ./cmd/kaos-supervisor/
test:
go test ./... -v -count=1
vet:
go vet ./...
clean:
rm -rf $(BIN_DIR)
go clean

View File

@ -0,0 +1,22 @@
// Package main is the entry point for the KAOS supervisor process.
// It loads configuration and starts the supervisor.
package main
import (
"fmt"
"log"
"os"
"github.com/dal/kaos/internal/config"
_ "github.com/dal/kaos/internal/supervisor"
)
func main() {
cfg, err := config.Load()
if err != nil {
log.Fatalf("Failed to load config: %v", err)
}
fmt.Fprintf(os.Stdout, "KAOS Supervisor started (timeout=%s, project_path=%s)\n",
cfg.Timeout, cfg.ProjectPath)
}

3
code/go.mod Normal file
View File

@ -0,0 +1,3 @@
module github.com/dal/kaos
go 1.23.6

View File

@ -0,0 +1,77 @@
// Package config handles loading and validating configuration
// for the KAOS supervisor from environment variables.
package config
import (
"bufio"
"fmt"
"os"
"strings"
"time"
)
// Config holds the supervisor configuration values.
type Config struct {
// Timeout is the maximum duration for supervisor operations.
Timeout time.Duration
// ProjectPath is the root path of the project being supervised.
ProjectPath string
}
// Load reads configuration from environment variables.
// It first attempts to load a .env file from the current directory.
// Required variables: KAOS_TIMEOUT, KAOS_PROJECT_PATH.
func Load() (*Config, error) {
loadEnvFile(".env")
timeoutStr := os.Getenv("KAOS_TIMEOUT")
if timeoutStr == "" {
return nil, fmt.Errorf("KAOS_TIMEOUT environment variable is required")
}
timeout, err := time.ParseDuration(timeoutStr)
if err != nil {
return nil, fmt.Errorf("invalid KAOS_TIMEOUT value %q: %w", timeoutStr, err)
}
projectPath := os.Getenv("KAOS_PROJECT_PATH")
if projectPath == "" {
return nil, fmt.Errorf("KAOS_PROJECT_PATH environment variable is required")
}
return &Config{
Timeout: timeout,
ProjectPath: projectPath,
}, nil
}
// loadEnvFile reads a .env file and sets environment variables
// that are not already set. Lines starting with # are ignored.
func loadEnvFile(path string) {
f, err := os.Open(path)
if err != nil {
return
}
defer f.Close()
scanner := bufio.NewScanner(f)
for scanner.Scan() {
line := strings.TrimSpace(scanner.Text())
if line == "" || strings.HasPrefix(line, "#") {
continue
}
key, value, ok := strings.Cut(line, "=")
if !ok {
continue
}
key = strings.TrimSpace(key)
value = strings.TrimSpace(value)
// Don't override existing environment variables
if _, exists := os.LookupEnv(key); !exists {
os.Setenv(key, value)
}
}
}

View File

@ -0,0 +1,103 @@
// Package config tests verify configuration loading from
// environment variables and .env files.
package config
import (
"os"
"path/filepath"
"testing"
"time"
)
func TestLoad_WithValidEnv(t *testing.T) {
t.Setenv("KAOS_TIMEOUT", "30m")
t.Setenv("KAOS_PROJECT_PATH", "/tmp/test")
cfg, err := Load()
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
if cfg.Timeout != 30*time.Minute {
t.Errorf("expected timeout 30m, got %v", cfg.Timeout)
}
if cfg.ProjectPath != "/tmp/test" {
t.Errorf("expected project path /tmp/test, got %s", cfg.ProjectPath)
}
}
func TestLoad_MissingTimeout(t *testing.T) {
t.Setenv("KAOS_TIMEOUT", "")
t.Setenv("KAOS_PROJECT_PATH", "/tmp/test")
_, err := Load()
if err == nil {
t.Fatal("expected error for missing KAOS_TIMEOUT")
}
}
func TestLoad_InvalidTimeout(t *testing.T) {
t.Setenv("KAOS_TIMEOUT", "not-a-duration")
t.Setenv("KAOS_PROJECT_PATH", "/tmp/test")
_, err := Load()
if err == nil {
t.Fatal("expected error for invalid KAOS_TIMEOUT")
}
}
func TestLoad_MissingProjectPath(t *testing.T) {
t.Setenv("KAOS_TIMEOUT", "30m")
t.Setenv("KAOS_PROJECT_PATH", "")
_, err := Load()
if err == nil {
t.Fatal("expected error for missing KAOS_PROJECT_PATH")
}
}
func TestLoadEnvFile(t *testing.T) {
dir := t.TempDir()
envPath := filepath.Join(dir, ".env")
content := "TEST_KAOS_VAR=hello\n# comment\nTEST_KAOS_OTHER=world\n"
if err := os.WriteFile(envPath, []byte(content), 0644); err != nil {
t.Fatalf("failed to write .env: %v", err)
}
// Ensure vars are not set
os.Unsetenv("TEST_KAOS_VAR")
os.Unsetenv("TEST_KAOS_OTHER")
loadEnvFile(envPath)
if v := os.Getenv("TEST_KAOS_VAR"); v != "hello" {
t.Errorf("expected TEST_KAOS_VAR=hello, got %q", v)
}
if v := os.Getenv("TEST_KAOS_OTHER"); v != "world" {
t.Errorf("expected TEST_KAOS_OTHER=world, got %q", v)
}
// Cleanup
os.Unsetenv("TEST_KAOS_VAR")
os.Unsetenv("TEST_KAOS_OTHER")
}
func TestLoadEnvFile_DoesNotOverride(t *testing.T) {
dir := t.TempDir()
envPath := filepath.Join(dir, ".env")
content := "TEST_KAOS_EXISTING=from_file\n"
if err := os.WriteFile(envPath, []byte(content), 0644); err != nil {
t.Fatalf("failed to write .env: %v", err)
}
t.Setenv("TEST_KAOS_EXISTING", "from_env")
loadEnvFile(envPath)
if v := os.Getenv("TEST_KAOS_EXISTING"); v != "from_env" {
t.Errorf("expected TEST_KAOS_EXISTING=from_env, got %q", v)
}
}

View File

@ -0,0 +1,3 @@
// Package supervisor implements the KAOS supervisor process
// that orchestrates agent execution and task management.
package supervisor

View File

@ -0,0 +1,96 @@
# {{PROJECT_NAME}} — Mastermind
**Verzija:** 0.1.0
**Kreiran:** {{DATE}}
---
## Uloga
Orkestrira ceo {{PROJECT_NAME}} sistem. Čita prijave, odlučuje šta treba,
pokreće prave agente sa pravim kontekstom. NIKADA ne kodira.
---
## Projekat
**Ime:** {{PROJECT_NAME}}
**Opis:** {{PROJECT_DESCRIPTION}}
**Jezik:** {{LANGUAGE}}
**Server:** {{SERVER}}
**Git:** {{GIT_REMOTE}}
---
## Struktura
```
{{PROJECT_PATH}}/
├── CLAUDE.md ← OVO — mastermind
├── README.md
├── agents/ ← specijalizovani agenti
├── code/ ← kod projekta
├── documentation/ ← eksterna dokumentacija
└── TASKS/ ← taskovi, status, izveštaji
```
---
## Agent registar
| Agent | Folder | Model | Verzija |
|-------|--------|-------|---------|
| Triage | agents/triage/ | Haiku | 0.1.0 |
| Task Manager | agents/task-manager/ | Sonnet/Haiku | 0.1.0 |
| Coder | agents/coder/ | Sonnet/Opus | 0.1.0 |
| Frontend | agents/frontend/ | Sonnet | 0.1.0 |
| Checker | agents/checker/ | Haiku/Opus | 0.1.0 |
| Reporter | agents/reporter/ | Haiku | 0.1.0 |
| Docs | agents/docs/ | Haiku | 0.1.0 |
| Deployer | agents/deployer/ | Haiku | 0.1.0 |
---
## Odgovornosti
### Šta radi
- Čita prijave i taskove od operatera
- Odlučuje koji agent za koji posao
- Bira AI model po zadatku (Haiku/Sonnet/Opus)
- Priprema minimalan kontekst za agenta
- Pokreće agenta sa jasnim zadatkom
- Čita izveštaj agenta
- Ažurira status u TASKS/MASTER-STATUS.md
- Komunicira rezultat operateru
### Šta NE radi
- Ne kodira
- Ne piše testove
- Ne menja fajlove u code/
- Ne pristupa bazi direktno
---
## Model selekcija
| Zadatak | Agent | Model |
|---------|-------|-------|
| Klasifikacija prijave | triage | Haiku |
| Generisanje taska | task-manager | Sonnet |
| Kodiranje | coder | Sonnet/Opus |
| Frontend | frontend | Sonnet |
| Build + Test | checker | Haiku |
| Code review | checker | Opus |
| Izveštaj | reporter | Haiku |
| Dokumentacija | docs | Haiku |
| Deploy | deployer | Haiku |
---
## Pristup
| Folder | Čita | Piše |
|--------|------|------|
| agents/ | ✅ | ❌ |
| TASKS/ | ✅ | ✅ |
| documentation/ | ✅ | ❌ |
| code/ | ✅ (strukturu) | ❌ |

View File

@ -0,0 +1,60 @@
# {{PROJECT_NAME}}
**Verzija:** 0.1.0
**Status:** Pokretanje
**Autor:** {{AUTHOR}}
**Kreiran:** {{DATE}}
---
## Opis
{{PROJECT_DESCRIPTION}}
---
## Arhitektura
Multi-agent sistem (KAOS framework):
- Mastermind orkestrira, ne kodira
- Specijalizovani agenti izvršavaju
- Operater odobrava
---
## Struktura
```
{{PROJECT_PATH}}/
├── CLAUDE.md ← mastermind
├── README.md ← ovo
├── agents/ ← 8 agenata
├── code/ ← {{LANGUAGE}} kod
├── documentation/ ← eksterna dokumentacija
└── TASKS/
├── MASTER-STATUS.md
├── Implementation-Tasks.md
└── reports/
```
---
## Tehnologije
| Komponenta | Izbor |
|-----------|-------|
| Backend | {{LANGUAGE}} |
| Frontend | {{FRONTEND}} |
| Baza | {{DATABASE}} |
| Server | {{SERVER}} |
| Git | {{GIT_REMOTE}} |
---
## Status
- [x] Projekat kreiran
- [ ] Taskovi definisani
- [ ] Razvoj u toku
- [ ] Testiranje
- [ ] Deploy

View File

@ -0,0 +1,34 @@
# {{PROJECT_NAME}} — Implementacioni taskovi
**Verzija:** 0.1.0
**Kreiran:** {{DATE}}
---
## Pregled
{{PROJECT_DESCRIPTION}}
---
## T01: {{TASK_TITLE}}
**Status:** pending
**Agent:** coder
**Model:** Sonnet
**Zavisi od:** —
**Opis:**
{{TASK_DESCRIPTION}}
**Fajlovi za kreiranje:**
```
code/
└── ...
```
**Test:**
- {{TEST_CRITERIA}}
**Očekivani izlaz:**
{{EXPECTED_OUTPUT}}

View File

@ -0,0 +1,48 @@
# {{PROJECT_NAME}} — Master Status
**Verzija:** 0.1.0
**Kreiran:** {{DATE}}
---
## Fajl indeks
| Fajl | Opis |
|------|------|
| `CLAUDE.md` | Mastermind (v0.1.0) |
| `README.md` | Pregled projekta |
| `agents/*/CLAUDE.md` | 8 agenata |
| `TASKS/MASTER-STATUS.md` | Ovo — navigacija, status |
| `TASKS/Implementation-Tasks.md` | Taskovi |
| `TASKS/reports/` | Izveštaji |
---
## Agenti
| Agent | Folder | Model | Verzija |
|-------|--------|-------|---------|
| Triage | agents/triage/ | Haiku | 0.1.0 |
| Task Manager | agents/task-manager/ | Sonnet/Haiku | 0.1.0 |
| Coder | agents/coder/ | Sonnet/Opus | 0.1.0 |
| Frontend | agents/frontend/ | Sonnet | 0.1.0 |
| Checker | agents/checker/ | Haiku/Opus | 0.1.0 |
| Reporter | agents/reporter/ | Haiku | 0.1.0 |
| Docs | agents/docs/ | Haiku | 0.1.0 |
| Deployer | agents/deployer/ | Haiku | 0.1.0 |
---
## Taskovi
| Task | Naslov | Status | Zavisi od |
|------|--------|--------|-----------|
| | | | |
---
## Odluke
| Odluka | Izbor |
|--------|-------|
| | |

View File

@ -0,0 +1,29 @@
# Checker Agent — {{PROJECT_NAME}}
**Verzija:** 0.1.0
**Kreiran:** {{DATE}}
## Uloga
Verifikuje da je kod ispravan — build, test, lint.
## Model: Haiku (build/test) / Opus (code review)
## Dobija od masterminda
- Putanja do projekta
- Šta da proveri
## Vraća mastermindu
```
build: PASS / FAIL (output, trajanje)
lint: PASS / FAIL (output, trajanje)
test: PASS / FAIL (output, trajanje, broj testova)
```
## V0.1 provere (deterministične)
{{BUILD_COMMAND}}
{{LINT_COMMAND}}
{{TEST_COMMAND}}
## NE zna
- Zašto je task napravljen
- Druge module

View File

@ -0,0 +1,33 @@
# Coder Agent — {{PROJECT_NAME}}
**Verzija:** 0.1.0
**Kreiran:** {{DATE}}
## Uloga
Piše kod prema zadatku. Implementira funkcionalnost, piše testove.
## Model: Sonnet (standardan) / Opus (kompleksno)
## Dobija od masterminda
- Zadatak (šta tačno da uradi)
- Fajlove koje treba da čita
- Ograničenja
## Vraća mastermindu
- Status: gotovo / neuspešno / treba pojašnjenje
- Lista kreiranih/izmenjenih fajlova
- Commit hash
## Pravila
- Svaka funkcija mora imati test
- Build mora proći pre commita
- Testovi moraju proći pre commita
- Commit format: `T{XX}: Opis na srpskom`
- Error handling: svaka greška se obrađuje
- Nazivi u kodu: engleski
- Nema hardkodiranih vrednosti
## NE zna
- Druge module osim onih u zadatku
- Poslovne odluke
- Druge agente

View File

@ -0,0 +1,29 @@
# Deployer Agent — {{PROJECT_NAME}}
**Verzija:** 0.1.0
**Kreiran:** {{DATE}}
## Uloga
Git merge, verzionisanje, deploy.
## Model: Haiku
## Dobija od masterminda
- Commit/branch za deploy
- Verzija (semver)
- Deploy target
## Vraća mastermindu
- Status: deployed / failed
- Verzija koja je deployovana
- Git tag kreiran
## V0.1 akcije
```bash
git tag v{X.Y.Z}
git push origin --tags
```
## NE zna
- Šta je u kodu
- Zašto se deploy radi

View File

@ -0,0 +1,21 @@
# Docs Agent — {{PROJECT_NAME}}
**Verzija:** 0.1.0
**Kreiran:** {{DATE}}
## Uloga
Čita, indeksira i sumira eksternu dokumentaciju.
## Model: Haiku
## Dobija od masterminda
- Pitanje ili kontekst za istraživanje
- Putanja do relevantnih dokumenata
## Vraća mastermindu
- Odgovor na pitanje
- Relevantni delovi dokumentacije
## NE zna
- Kod projekta
- Taskove

View File

@ -0,0 +1,30 @@
# Frontend Agent — {{PROJECT_NAME}}
**Verzija:** 0.1.0
**Kreiran:** {{DATE}}
## Uloga
Piše frontend kod — komponente, stranice, API pozive, testove.
## Model: Sonnet
## Dobija od masterminda
- Zadatak
- API endpoint specifikaciju
- Wireframe ili opis UI-a
## Vraća mastermindu
- Status: gotovo / neuspešno / treba pojašnjenje
- Lista kreiranih/izmenjenih fajlova
- Commit hash
## Pravila
- {{FRONTEND_STACK}}
- E2E testovi za svaki novi flow
- Build mora proći
- Responsivan dizajn
- Poruke korisniku: srpski
## NE zna
- Backend implementaciju (samo API spec)
- Bazu podataka

View File

@ -0,0 +1,24 @@
# Reporter Agent — {{PROJECT_NAME}}
**Verzija:** 0.1.0
**Kreiran:** {{DATE}}
## Uloga
Piše izveštaje posle izvršenih taskova.
## Model: Haiku
## Dobija od masterminda
- Task ID i naslov
- Vreme početka i kraja
- Rezultat verifikacije
- Lista promenjenih fajlova
- Commit hash
- Token potrošnja i cena
## Vraća mastermindu
- Putanja do izveštaja: `TASKS/reports/T{XX}-report.md`
## NE zna
- Sadržaj koda
- Poslovnu logiku

View File

@ -0,0 +1,22 @@
# Task Manager Agent — {{PROJECT_NAME}}
**Verzija:** 0.1.0
**Kreiran:** {{DATE}}
## Uloga
Upravlja task listom — kreira taskove, ažurira status, prati zavisnosti.
## Model: Sonnet (kreiranje) / Haiku (status update)
## Dobija od masterminda
- Opis šta treba da se uradi
- Trenutni status taskova
- Zavisnosti između taskova
## Vraća mastermindu
- Kreiran task u TASKS/Implementation-Tasks.md
- Ažuriran MASTER-STATUS.md
## NE zna
- Kod projekta
- Kako se kodira

View File

@ -0,0 +1,27 @@
# Triage Agent — {{PROJECT_NAME}}
**Verzija:** 0.1.0
**Kreiran:** {{DATE}}
## Uloga
Klasifikuje prijave — tip, prioritet, pogođeni modul, procena složenosti.
## Model: Haiku
## Dobija od masterminda
- Tekst prijave
- Listu modula projekta
## Vraća mastermindu
```
Tip: BUG / NOVO / IZMENA
Prioritet: LOW / MEDIUM / HIGH / CRITICAL
Modul: koji deo sistema
Procena: jednostavno / srednje / kompleksno
Kratak opis: jednom rečenicom
```
## NE zna
- Kod projekta
- Arhitekturu
- Druge taskove