Workflow PAUL
Plan → Apply → Unify Loop — disciplina care transforma haosul in livrare predictibila.
Ce este PAUL?
PAUL este acronimul pentru Plan-Apply-Unify Loop. Fiecare task non-trivial trece prin aceste trei faze obligatorii. Nu e optional — e o constrangere de workflow.
Intelege requirement-ul complet si creeaza un plan executabil.
- 1.Citeste codul existent si STATE.md
- 2.Creeaza plan cu max 2-3 task-uri
- 3.Fiecare task: fisiere | actiune | verificare | done
- 4.Scrie planul in .planning/phases/NNN/PLAN.md
Click pe fiecare faza pentru detalii. Loop-ul se repeta pentru fiecare task.
Faza 1: PLAN
Inainte de orice linie de cod, agentul trebuie sa:
- Inteleaga complet requirement-ul — citeste codul existent, verifica STATE.md, revizuieste testele
- Creeze un plan executabil unde fiecare task specifica 4 elemente:
⚠️ Regula de validare
Planurile au max 2-3 task-uri. De ce? Principiul GSD: un context window proaspat ar trebui sa consume ~50% pe executie, nu pe intelegerea planului.
Exemplu real — Phase 001
Uite cum arata un PLAN.md real din acest proiect:
# Phase 001 — PAUL Loop Demonstration
## Task 1: Scrie testul (TDD — red phase)
- Fisiere: tests/test_validate_structure.sh
- Actiune: Scrie test care ruleaza validate-structure.sh
- Verificare: Testul TREBUIE sa FAIL (scriptul nu exista)
- Done: Test exista, ruleaza, si esueaza cu eroare clara
## Task 2: Scrie codul minimal (TDD — green phase)
- Fisiere: validate-structure.sh
- Actiune: Script care verifica 33 componente v2.1
- Verificare: Ruleaza testul — trebuie sa treaca
- Done: Test trece, scriptul raporteaza corect
## Task 3: Atomic commit
- Fisiere: validate-structure.sh, tests/
- Actiune: git add + git commit conventional
- Verificare: git log arata commit-ul
- Done: Commit curat in istoricFaza 2: APPLY
Executia propriu-zisa, cu disciplina TDD:
- Executa task-urile secvential cu verificare dupa fiecare
- Pentru cod: scrie test failing → confirma fail → scrie cod minimal → confirma pass
- Daca un test trece la prima scriere, testul e probabil gresit — verifica ca prinde esecuri reale
- Dupa 3 incercari esuate de fix → stop → revizuire arhitecturala → reconsidera
- Fiecare task completat → atomic git commit
🚫 Regula celor 3 incercari
Faza 3: UNIFY
Cea mai importanta si cea mai des sarita faza. UNIFY este mandatory — nu sari niciodata aceasta faza.
- Reconciliaza — am atins ce era planificat?
- Actualizeaza STATE.md cu pozitia curenta
- Ruleaza full test suite — verifica zero regresii
- Daca ceva e incomplet → creeaza un PLAN nou pentru lucrarile ramase
- Actualizeaza ROADMAP.md cu progresul
- Ruleaza /obsidian:sync pentru a sincroniza sesiunea in vault
💡 De ce UNIFY e critic
Exemplu real — SUMMARY.md din Phase 001
## Ce s-a facut
1. PLAN: Creat plan executabil cu 3 task-uri
2. APPLY:
- TDD RED: Scris test care esueaza
- TDD GREEN: Scris validate-structure.sh (33 checks)
- Bug fix: ((PASS++)) returneaza exit 1 in bash
- Bug fix: set -e + command substitution
3. UNIFY: STATE.md actualizat, ROADMAP marcat, SUMMARY scris
## Lectii invatate
- ((var++)) in bash returneaza exit code 1 cand var=0
- TDD chiar prinde bug-uri: 2 bug-uri gasite prin testeLoop-ul complet vizual
PLAN → Scrie .planning/phases/NNN/PLAN.md
↓
APPLY → Executa task-uri cu TDD
Test FAIL → Cod minimal → Test PASS → Commit
↓
UNIFY → Scrie SUMMARY.md
Update STATE.md
Update ROADMAP.md
Full test suite
/obsidian:sync
↓
→ Repeat (urmatorul task sau urmatoarea faza)Exercitiu
Deschide .planning/phases/001/PLAN.md si SUMMARY.md. Compara planul cu rezultatul. Observa cum SUMMARY-ul documenta "lectii invatate" — informatii care nu erau in plan dar au aparut din executie.
Ce se intampla in faza UNIFY?