KAOS/TASKS/review/T02.md
djuka 79bcd52076 T02: Task loader — parsiranje markdown taskova
- Task struct sa svim poljima (ID, Title, Status, Agent, Model, DependsOn, Description)
- LoadTask, ScanTasks, FindTask, NextTask, MoveTask
- 17 testova — svi prolaze

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

2.5 KiB

T02: Task loader — parsiranje markdown taskova

Kreirao: planer Datum: 2026-02-20 Agent: coder Model: Sonnet Zavisi od: T01


Opis

Supervisor mora da čita taskove iz markdown fajlova u TASKS/ folderima. Parsira pojedinačne task fajlove, izvlači ID, status (folder), zavisnosti.

Fajlovi za kreiranje

code/internal/supervisor/
├── task.go          ← Task struct, LoadTask(), ScanTasks(), NextTask()
└── task_test.go     ← testovi sa primer markdown-om

Task struct

type Task struct {
    ID          string   // T01, T02...
    Title       string   // naslov iz # zaglavlja
    Status      string   // backlog, ready, active, review, done (iz foldera)
    Agent       string   // coder, checker, frontend...
    Model       string   // Haiku, Sonnet, Opus
    DependsOn   []string // lista task ID-eva
    Description string   // ceo opis
    FilePath    string   // putanja do fajla
}

Funkcije

  • LoadTask(filePath string) (Task, error) — parsira jedan task fajl
  • ScanTasks(tasksDir string) ([]Task, error) — skenira sve foldere (backlog/, ready/, active/, review/, done/), učita sve taskove, status iz imena foldera
  • FindTask(tasks []Task, id string) *Task — nađi po ID-u
  • NextTask(tasks []Task) *Task — prvi task u ready/ čije su zavisnosti u done/
  • MoveTask(tasksDir, taskID, fromFolder, toFolder string) error — premesti fajl između foldera

Parsiranje

Task fajl format (primer T01.md):

# T01: Naslov

**Agent:** coder
**Model:** Sonnet
**Zavisi od:** —

---

## Opis
Tekst opisa...

Parser izvlači:

  • ID i Title iz # T{XX}: Naslov
  • Agent iz **Agent:** vrednost
  • Model iz **Model:** vrednost
  • DependsOn iz **Zavisi od:** T01, T03 (ili za bez zavisnosti)
  • Description iz ## Opis sekcije
  • Status iz imena foldera u kojem se fajl nalazi

Testovi

  • LoadTask sa primer fajlom → parsira tačno sva polja
  • ScanTasks sa temp folderima → nalazi taskove u svim folderima
  • NextTask: task u ready/ sa zavisnostima u done/ → vraća ga
  • NextTask: task u ready/ sa zavisnošću u backlog/ → ne vraća
  • MoveTask: premesti fajl, proveri da je u novom folderu
  • Edge case: prazan folder, fajl bez zavisnosti, nepostojeći ID

Očekivani izlaz

go test ./internal/supervisor/ -v — svi testovi zeleni. go vet ./... čist. go build ./... prolazi.


Pitanja

(agent piše pitanja ovde, planer odgovara)


Odgovori

(planer piše odgovore ovde)