T22: Zamena --dangerously-skip-permissions sa --permission-mode bypassPermissions
Stari flag ne radi kad je proces pokrenut kao root. Zamenjeno u console.go, submit.go i CLAUDE.md. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
695bd24d1d
commit
7efc92feac
229
CLAUDE.md
229
CLAUDE.md
@ -1,71 +1,81 @@
|
||||
# KAOS — Mastermind
|
||||
|
||||
**Verzija:** 0.3.0
|
||||
**Poslednje ažuriranje:** 2026-02-20
|
||||
**Verzija:** 0.6.0
|
||||
**Ažurirano:** 2026-02-20
|
||||
|
||||
---
|
||||
|
||||
## Učesnici
|
||||
|
||||
| Uloga | Ko | Šta radi |
|
||||
|-------|----|----------|
|
||||
| Klijent | Korisnik | Prijavi problem/zahtev kroz dashboard formu |
|
||||
| Planer | Claude u chatu | Piše taskove, odgovara na pitanja agenata |
|
||||
| Operater | Nenad | Odobrava, pregleda, kontroliše. Šef. |
|
||||
| Agent | Claude Code na serveru | Izvršava taskove (čist kontekst po tasku) |
|
||||
|
||||
Komunikacija: kroz fajlove u TASKS/ (sync Windows ↔ Server).
|
||||
Planer i Agent nikad direktno. → detalji: `TASKS/Workflow-Spec.md`
|
||||
|
||||
---
|
||||
|
||||
## Dashboard (http://10.0.0.1:8080)
|
||||
|
||||
| Tab | Funkcija |
|
||||
|-----|----------|
|
||||
| Kanban | Board sa kolonama, drag & drop, workflow dugmad |
|
||||
| Dokumenti | Pregled svih .md fajlova (goldmark renderovanje) |
|
||||
| Konzola | Terminal — 2 paralelne claude sesije |
|
||||
| Prijava | Klijent mod (forma) + Operater mod (chat sa claude CLI) |
|
||||
|
||||
### Workflow dugmad na karticama
|
||||
|
||||
| Stanje | Dugme |
|
||||
|--------|-------|
|
||||
| backlog, zavisnosti ❌ | 🔒 Blokiran |
|
||||
| backlog, zavisnosti ✅ | 👁 Pregledaj → ✅ Odobri |
|
||||
| ready | ▶ Pusti (pokreni agenta) |
|
||||
| active | ⚙️ Radi |
|
||||
| review, pitanje | 💬 Odgovori → ▶ Nastavi |
|
||||
| review, završen | 👁 Pregledaj → ✅ Odobri / ↩ Vrati |
|
||||
| done | 📊 Izveštaj |
|
||||
|
||||
### Pokretanje agenta
|
||||
|
||||
"Pusti ▶" pokrene NOV `claude` proces sa čistim kontekstom:
|
||||
```bash
|
||||
claude --permission-mode bypassPermissions -p "Pročitaj CLAUDE.md i radi task TASKS/ready/T{XX}.md"
|
||||
```
|
||||
Svaki task = zasebna sesija. Nema istorije iz prethodnih taskova.
|
||||
|
||||
---
|
||||
|
||||
## Kad te pokrenu
|
||||
|
||||
Ti razgovaraš sa operaterom. Operater je tvoj šef — on odlučuje šta se radi.
|
||||
1. Pogledaj `TASKS/ready/` i `TASKS/review/`
|
||||
2. Pokaži operateru šta ćeš da radiš — **čekaj odobrenje**
|
||||
3. Izvršavaj po pravilima agenta (`agents/*/CLAUDE.md`)
|
||||
|
||||
### Tok rada
|
||||
### Kad završiš task
|
||||
|
||||
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`
|
||||
- Push: `git push origin main`
|
||||
- Tag: `git tag v0.1.{PATCH}` (patch = redni broj završenog taska)
|
||||
- Push tag: `git push origin --tags`
|
||||
- Napiši izveštaj u `TASKS/reports/T{XX}-report.md`
|
||||
- Premesti task fajl iz `active/` u `review/`
|
||||
- Reci operateru "gotovo, čeka pregled"
|
||||
- Build/test/vet moraju proći
|
||||
- Commit: `T{XX}: Opis na srpskom`
|
||||
- Push + tag (semver) + push tags
|
||||
- Izveštaj u `TASKS/reports/T{XX}-report.md`
|
||||
- Premesti task u `review/`
|
||||
|
||||
### 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
|
||||
## Ko šta sme da premesti
|
||||
|
||||
```
|
||||
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 sme da premesti
|
||||
|
||||
| Iz → U | Operater (dashboard) | Agent (CLI) |
|
||||
|---------|---------------------|-------------|
|
||||
| Iz → U | Operater | Agent |
|
||||
|---------|----------|-------|
|
||||
| backlog → ready | ✅ | ❌ |
|
||||
| ready → backlog | ✅ | ❌ |
|
||||
| ready → active | ❌ | ✅ |
|
||||
@ -74,93 +84,68 @@ TASKS/
|
||||
| review → ready | ✅ | ❌ |
|
||||
| done → bilo gde | ❌ | ❌ |
|
||||
|
||||
Server validira. Nedozvoljen potez → 403.
|
||||
Deployer jedini KREIRA taskove u backlog/ (greške iz logova).
|
||||
|
||||
---
|
||||
|
||||
## Struktura projekta
|
||||
## Struktura
|
||||
|
||||
```
|
||||
/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
|
||||
/opt/kaos/
|
||||
├── CLAUDE.md ← OVO
|
||||
├── agents/*/CLAUDE.md ← pravila po agentu
|
||||
├── TASKS/ ← backlog/ready/active/review/done/reports/
|
||||
├── code/ ← Go + HTMX (jedan binary, nema npm)
|
||||
├── logs/ ← persistent logovi (planirano)
|
||||
├── documentation/ ← eksterna dokumentacija
|
||||
└── templates/new-project/ ← template za nove projekte
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Stack
|
||||
|
||||
Go 1.22+ · Gin · HTMX + Sortable.js (nema npm) · goldmark (markdown) · Gitea (localhost:3000) · Hetzner (10.0.0.1) · Claude Code CLI (Pro licenca)
|
||||
|
||||
Projekat: `/opt/kaos/` (vlasnik: kaos korisnik)
|
||||
Server radi kao root, agenti se pokreću kao `kaos` korisnik.
|
||||
Operater mod u Prijavi koristi `claude` CLI (Pro licenca), ne API.
|
||||
API ključ (ANTHROPIC_API_KEY) se čuva za budući direktni API mod.
|
||||
|
||||
---
|
||||
|
||||
## 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.2.0 |
|
||||
| Frontend | agents/frontend/ | Sonnet | 0.2.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 |
|
||||
| Agent | Model | Verzija | Detalji |
|
||||
|-------|-------|---------|---------|
|
||||
| Triage | Haiku | 0.1.0 | `agents/triage/CLAUDE.md` |
|
||||
| Task Manager | Sonnet/Haiku | 0.1.0 | `agents/task-manager/CLAUDE.md` |
|
||||
| Coder | Sonnet/Opus | 0.2.0 | `agents/coder/CLAUDE.md` |
|
||||
| Frontend | Sonnet | 0.2.0 | `agents/frontend/CLAUDE.md` |
|
||||
| Checker | Haiku/Opus | 0.1.0 | `agents/checker/CLAUDE.md` |
|
||||
| Reporter | Haiku | 0.1.0 | `agents/reporter/CLAUDE.md` |
|
||||
| Docs | Haiku | 0.1.0 | `agents/docs/CLAUDE.md` |
|
||||
| Deployer | Haiku/Sonnet | 0.2.0 | `agents/deployer/CLAUDE.md` |
|
||||
|
||||
Pravilo: najjeftiniji model koji može da uradi posao.
|
||||
|
||||
---
|
||||
|
||||
## Model selekcija
|
||||
## Verzionisanje
|
||||
|
||||
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 |
|
||||
Semver. Patch = task, Minor = milestone, Major = breaking change.
|
||||
Git: commit → push → tag → push tags. Format: `T{XX}: Opis`
|
||||
Timeout: 30 min default (KAOS_TIMEOUT u .env).
|
||||
|
||||
---
|
||||
|
||||
## Pristup
|
||||
## Reference
|
||||
|
||||
| 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.
|
||||
| Šta | Gde |
|
||||
|-----|-----|
|
||||
| Status svih taskova + bugovi | `TASKS/MASTER-STATUS.md` |
|
||||
| Kompletan workflow | `TASKS/Workflow-Spec.md` |
|
||||
| Multi-agent arhitektura | `TASKS/Multi-Agent-Spec.md` |
|
||||
| Format izveštaja | `TASKS/reports/T01-report.md` (primer) |
|
||||
| Template za novi projekat | `templates/new-project/` |
|
||||
|
||||
@ -157,7 +157,7 @@ func cleanEnv() []string {
|
||||
// runCommand executes a command and streams output to listeners.
|
||||
func (s *Server) runCommand(session *sessionState, command, execID string) {
|
||||
// Build the claude command
|
||||
cmd := exec.Command("claude", "--dangerously-skip-permissions", "-p", command)
|
||||
cmd := exec.Command("claude", "--permission-mode", "bypassPermissions", "-p", command)
|
||||
cmd.Dir = s.projectRoot()
|
||||
cmd.Env = cleanEnv()
|
||||
|
||||
|
||||
@ -156,7 +156,7 @@ func (s *Server) handleChatSubmit(c *gin.Context) {
|
||||
|
||||
// runChatCommand executes claude CLI and streams output to chat listeners.
|
||||
func (s *Server) runChatCommand(chat *chatState, prompt string) {
|
||||
cmd := exec.Command("claude", "--dangerously-skip-permissions", "-p", prompt)
|
||||
cmd := exec.Command("claude", "--permission-mode", "bypassPermissions", "-p", prompt)
|
||||
cmd.Dir = s.projectRoot()
|
||||
cmd.Env = cleanEnv()
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user