sync SVN r18004/r18007: #6 editare factura emisa - pagina de articole
ofacturare_editare.prg (nou): helpere comune - garda eFactura, cursoarele notei si ale rulajelor, randul de vanzare corespunzator notei si liniile de articole citite din view-ul VVANZARI_ARTICOLE. omodificari.vc2 (frm_modific2024): pagina noua de articole ale facturii, deocamdata doar afisare. Apare numai cand ofacturare_editare.prg e inregistrat si documentul are rand in VANZARI; in ROACONT si ROAGEST, unde fisierul nu e incarcat, pagina lipseste si registrul jurnal ramane neatins. Randul de vanzare al notei se cauta pe toate tripletele distincte (nract, serie_act, dataact) din nota, pentru ca primul rand poate fi o incasare. ofacturare_comun.vc2 (frm_facturi): do_editare_factura si butonul aferent, dupa modelul lui do_sterge, cu garzile de luna inchisa, luna curenta, document sters, referinte si eFactura. docs: comentariile se scriu strict necesar, si in cod si in scripturile de migrare - fara referinte la planuri, stories, decizii sau erori, istoricul doar in antetul fisierului. Plus regula zero (predarea contextului), capcanele de la testarea headless si completari pe fluxul text -> binar. utile/Teste: suita de regresie pentru editarea facturii si harness-ul watchdog (nu sunt in SVN, unde utile/Teste e ignorat). .gitignore ignora si capturile PNG si watchdog_out/, ramase din rulari. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SN8snvkk94KuhWwoXUUey3
This commit is contained in:
@@ -4,6 +4,45 @@ Regula (valabila in toate proiectele ROA/VFP): un singur subagent care duce o mi
|
||||
(iteratii de teste, investigatii, mai multe sarcini inlantuite) acumuleaza context urias —
|
||||
calitate degradata, cost mare. Nu se lucreaza asa.
|
||||
|
||||
## REGULA ZERO: predarea contextului e OBLIGATORIE, nu optionala
|
||||
|
||||
Se aplica **identic sesiunii principale si oricarui subagent**. Nu e o recomandare de eficienta,
|
||||
e o conditie de corectitudine: un context supraincarcat pierde tacut decizii deja luate si reia
|
||||
investigatii deja platite.
|
||||
|
||||
**Declansatoare — la oricare dintre ele, predarea porneste imediat:**
|
||||
|
||||
1. contextul propriu a trecut de **~50% din fereastra** (orchestrator) sau de **~200-250k tokens**
|
||||
(subagent);
|
||||
2. harness-ul anunta compactare automata (`PreCompact`) — **prea tarziu ca sa mai amani, dar nu
|
||||
prea tarziu ca sa scrii fisierul**; scrie handoff-ul inainte sa raspunzi orice altceva;
|
||||
3. utilizatorul semnaleaza ca s-a atins limita;
|
||||
4. s-a terminat un bloc de lucru — indiferent cat context a mai ramas.
|
||||
|
||||
**Procedura, in ordine, fara exceptii:**
|
||||
|
||||
1. **Opreste lucrul.** Nu incepe o sarcina noua, nu porni o rulare noua. Daca esti in mijlocul unei
|
||||
editari, du-o pana la o stare **consistenta pe disc** (text si binare sincronizate) si atat.
|
||||
2. **Scrie handoff-ul pe disc** (`docs\handoff_<subiect>.md`). Nu in mesaj, nu in raport — **pe
|
||||
disc**. Un mesaj catre orchestrator se pierde; fisierul nu.
|
||||
3. **Confirma in doua randuri** ce ai lasat in urma si daca ceva e intr-o stare periculoasa
|
||||
(fisier editat fara write-back, tranzactie deschisa, proces ramas viu, date de test consumate).
|
||||
4. **Opreste-te.** Blocul urmator il ia un agent proaspat. "Mai am putin" nu e motiv de amanare —
|
||||
exact acolo se pierd lucrurile.
|
||||
|
||||
**Obligatia e a fiecaruia, nu doar a orchestratorului.** Un subagent care simte ca se apropie de
|
||||
prag **anunta singur** si cere predarea; nu asteapta sa fie oprit. Un orchestrator care se apropie
|
||||
de prag isi scrie propriul handoff si preda orchestrarea unei sesiuni noi — regula nu are portita
|
||||
pentru "eu doar coordonez".
|
||||
|
||||
**Ce intra obligatoriu in handoff**: inventarul livrabilelor cu `fisier:linie`; ce e terminat si ce
|
||||
nu; **daca write-back-ul e facut** pentru fiecare fisier atins; comanda exacta de rulare a testelor
|
||||
si unde scriu logurile; ce s-a stabilit deja (ca sa nu se reia); ce e interzis; starea datelor de
|
||||
test consumate; capcanele de mediu platite. Fara analize noi — doar stare.
|
||||
|
||||
Doua lectii platite scump, amandoua din aceeasi cauza — un agent tinut peste prag (`s5-nivel2`
|
||||
533k, `s2d-modifica-gestiuni` 434k). Predarea e aproape gratuita: raportul e oricum deja scris.
|
||||
|
||||
## Cum se lucreaza
|
||||
|
||||
- Sesiunea principala (sau un agent primar) e ORCHESTRATOR: imparte planul pe sarcini
|
||||
@@ -58,7 +97,9 @@ diagnostic, fixuri aplicate direct in loc de delegate.
|
||||
care intoarce da/nu, nu continutul din care ai deduce singur.
|
||||
- **Nu aplica fixuri direct** decat sub ~5 linii si doar daca ai deja contextul in sesiune.
|
||||
- **Prag si pe orchestrator**: la ~50% din fereastra, scrie handoff-ul si reia orchestrarea
|
||||
dintr-o sesiune noua. Handoff-ul e deja pe disc - exact pentru asta exista.
|
||||
dintr-o sesiune noua. Handoff-ul e deja pe disc - exact pentru asta exista. Vezi **Regula zero**
|
||||
de la inceputul fisierului: obligatia e aceeasi ca pentru subagenti, fara portita pentru
|
||||
"eu doar coordonez".
|
||||
|
||||
## Model de lucru: backlog de story-uri mici, context mic per story
|
||||
|
||||
|
||||
Reference in New Issue
Block a user