# Lessons Learned (System Rules)

# Lessons Learned — System Rules

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

This document captures critical lessons from system operations, mistakes, and their fixes. Every lesson represents a real failure and the systematic fix that followed.

---

## 2026-02-16: NIKAD build od self-generated spec-a bez CEO approval

**Problem:** John je na DROP projektu sam napravio UI/UX spec (competitor analysis, 3 dizajn opcije), pa odmah krenuo graditi full app — 97 fajlova, 24K LOC. Bez ijednog Alemovog odobrenja na spec. Rezultat: kod zaglavljen na wrong git branch, prazan `drop-app/` dir, wasted tokens, Alem ne zna šta je napravljeno.

**Root Cause:** Nedostajao approval gate između faze Research/Spec i faze Build. John je tretirao self-generated spec kao odobren spec.

**Pravilo (ZAKON):**
1. **Research** → OK, radi slobodno
2. **Spec/Proposal draft** → OK, radi slobodno
3. **BUILD** → STOP. Explicit CEO odobrenje na spec PRIJE prvog LOC.
4. Ako CEO nije pregledao spec, spec NE POSTOJI kao basis za build.
5. Self-generated spec ≠ Approved spec. NIKAD.

**Recovery:** `fontelepay/` auto-backup branch merged to master. Kod recovered.

**Fix nivo:** Rule (ovaj fajl) + HiveMind + MEMORY.md. Idealan fix bi bio hook koji blokira build bez approved spec — ali approval gate je human decision, teško za hook.

**Lekcija:** AI može napraviti spec, ali samo čovjek može ODOBRITI spec. Bez odobrenja, build je gubitak resursa.

---

## 2026-02-08: Next Steps MORAJU postati MC taskovi

**Problem:** Session log imao "Next Steps" ali nikad nisam kreirao MC taskove za njih. Rezultat: 2 akcije (Edita MC onboarding + Mini SSH update) izgubljene jer niko ne čita session log automatski.

**Root Cause:** Session-save workflow zapisuje next steps u markdown ali nema korak koji ih pretvara u MC taskove.

**Fix:** PRAVILO — prije kraja sesije, svaki "Next Step" iz session state-a MORA postati `mc.js add` task. Session state je za kontekst, MC je za akciju. Ako nije u MC-u, ne postoji.

**Lekcija:** Passive documentation (markdown) ≠ active tracking (MC). Ako nešto treba biti urađeno, mora biti task.

---

## 2026-02-04: Task Management + Problem Solving Enforcement

**Problem:** Skip-ovao sam task tracking i problem solving proces, delegirao agenta bez proper requirements gathering, agent riješio pogrešan problem.

**Root Cause Analysis:**
1. Nisam dodao task u tasks.db
2. Nisam pratio problem-solving.md proces (koraci 1-6)
3. Spawn-ovao agenta sa PRVIM rješenjem (email infrastructure umjesto client communication system)
4. Agent radio PLAN fazu solo - trebalo John + client
5. Nisam završio Next Steps iz SESSION-STATE

**Impact:** Alem dobio pogrešno rješenje, izgubljeno vrijeme, "veći problem" kreiran

**Solution Implemented:**
1. Kreiran ~/system/tools/start-task.sh - mandatory validation script
2. Update MEMORY.md sa CORE PROTOCOL sekcijom
3. Dokumentovano u lessons-learned.md
4. boot.sh reminder dodan

**Validation:**
- start-task.sh blokira izvršenje ako nisu zadovoljeni koraci 1-4
- Checklist forsira: task.db entry → problem solving (1-6) → company delegation check
- MEMORY.md učitava se na session start sa reminder-om

**Prevention:**
- NIKAD ne radim ništa bez `bash ~/system/tools/start-task.sh` prvo
- Script deterministic - ne mogu skip-ovati
- boot.sh prikazuje reminder na session start

**Key Mantras:**
- "Prvo rješenje" ≠ "Najbolje rješenje"
- Research PRIJE implementacije (WebSearch 2+ izvora)
- 2-3 opcije UVIJEK, ne samo jedna
- PLAN phase = John + client, ne agent solo

---

## More Lessons

For complete list of lessons learned, see ~/system/rules/lessons-learned.md in the system.