- 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>
2.5 KiB
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 fajlScanTasks(tasksDir string) ([]Task, error)— skenira sve foldere (backlog/, ready/, active/, review/, done/), učita sve taskove, status iz imena folderaFindTask(tasks []Task, id string) *Task— nađi po ID-uNextTask(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
## Opissekcije - 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)