# Task Management Rules

> Last Verified: 2026-02-17 | Owner: John


---

## Task Execution Discipline (2026-02-10) — ENFORCER

### Pravilo: Svaka akcija prolazi kroz lifecycle

Kad radiš na bilo čemu (mail, deploy, fix, dokument), OBAVEZAN ciklus:

```
1. OPEN    → Nađi ili kreiraj task (task.sh)
2. START   → task.sh start <id> — sad si accountable
3. DO      → Odradi posao
4. CHECK   → Provjeri rezultat (mail poslan? file kreiran? API radi?)
5. TEST    → Testiraj ako je primjenjivo (smoke test, verify)
6. ASK     → Ako treba user interakcija — pitaj PRIJE zatvaranja
7. FIX     → Popravi ako nešto ne valja
8. TEST    → Ponovo testiraj nakon fix-a
9. CLOSE   → task.sh done <id> "Output: ..., Next: ..." — SAMO ako je OK
10. FOLLOW → Otvori follow-up taskove ako treba
```

### Automatski trigger:
- Poslao mail? → CHECK: da li je accepted, provjeri task, update/close
- Deploy? → TEST: curl endpoint, provjeri logs
- Kreirao fajl? → CHECK: da li postoji, sadržaj OK
- API call? → CHECK: response status, expected result

### Anti-pattern (ZABRANJENO):
- Uraditi posao i zaboraviti task update
- Zatvoriti task bez provjere rezultata
- Raditi bez otvorenog taska (nevidljiv rad)
- Zatvoriti task koji ima greške ili nedovršen posao

### Napomena:
Ovaj enforcer se primjenjuje na SVE akcije — ne samo development.
Mail, dokumenti, client communication, setup — SVE ima task lifecycle.

---

## Task System Integration (2026-02-04)

### Dva sistema, dvije svrhe:

**1. Claude TaskCreate/TaskUpdate (session-scoped)**
- Za aktivni rad UNUTAR sesije
- Nestaje kad sesija završi
- Koristi za: current work tracking, blocking dependencies
- Pokreće Claude system reminders (sad korisni!)

**2. task.sh (persistent, tasks.db)**
- Za cross-session tracking
- Ostaje nakon sesije
- Koristi za: backlog, Alem visibility, historical record
- Komande: task.sh list|add|start|done|block

### Workflow:

```
Početak rada na tasku:
1. task.sh start <id>           # Persistent tracking
2. TaskCreate + TaskUpdate      # Session tracking

Završetak:
1. TaskUpdate status=completed  # Session
2. task.sh done <id>            # Persistent
```

### Pravilo:
- Svaki AKTIVAN task ima entry u OBA sistema
- task.sh = source of truth za backlog
- TaskCreate = source of truth za current session

---

## WIP Limit (2026-02-09)

### Pravilo: Max 3 aktivna taska po agentu

**John:** max 3 in_progress taska (development fokus)
**Alem:** max 3 in_progress taska (personal/business tasks)

### Zašto:
- 32 otvorena taska = 0 fokusa. Analiza od 09.02 pokazala da se taskovi otvaraju brže nego zatvaraju.
- WIP limit forsira finish-before-start disciplinu.

### Kako:
1. Prije `task.sh start <id>` — provjeri koliko imaš aktivnih: `task.sh list | grep "in_progress" | grep "<owner>" | wc -l`
2. Ako >= 3 — PRVO završi ili pauziraj jedan
3. Ne otvaraj novi task dok ne zatvoriš stari

### Hijerarhija prioriteta:
1. **HIGH** taskovi UVIJEK prvi
2. **MEDIUM** samo ako nema HIGH
3. **LOW** samo ako nema ništa drugo

### Task Hygiene (sedmično):
- Pregled svih otvorenih taskova svake nedjelje
- Zombie taskovi (>7 dana bez pomaka) → zatvori ili re-prioritiziraj
- Taskovi bez vlasnika → dodijeli ili zatvori