#13: formular de facturare unificat - etapa curenta

Squash al branch-ului de lucru plan13-s2.

Cod: clasa noua ofacturare_util (geometrie si utilitare de formular), inrolata in
roafacturare.prg; meniul "Facturare (nou)" plat, cu reparatia literalului peste
limita VFP de 255 de caractere care impiedica compilarea metodei.

Livrare: changelog 2.11.19, marcajul de versiune DB pentru scripturile finale din
SCRIPTURI_CLAR\2026\09, inventarul livrarii in docs/livrare_13.md si registrul de
erori deschise. Documentatia de lucru a etapei (cercetare, rapoarte, handoff-uri,
snapshot-uri de scripturi si backup-uri de rollback) a fost scoasa din arbore.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PkyjGyrV2S7932om4kfSiK
This commit is contained in:
2026-09-09 21:30:51 +03:00
parent 87063b06a8
commit 104c24ec20
80 changed files with 5585 additions and 27852 deletions

View File

@@ -119,6 +119,12 @@ Depanare detaliata: `COMUN\docs\depanare_testare_vfp.md`.
## Mod de lucru: delegare catre subagenti + review inainte de commit
> **REGULA OBLIGATORIE (ceruta explicit de Marius, 26.08.2026):** orice investigatie,
> modificare de cod, editare de fisiere, rulare de teste sau verificare se deleaga unui
> SUBAGENT (Task tool). Sesiunea principala DOAR orchestreaza si verifica rezultatele
> subagentilor; nu lucreaza direct pe fisiere, nu ruleaza suite, nu editeaza cod. Inca
> de la prima sarcina a unui bloc, nu dupa ce ai acumulat context.
- **Predarea contextului e OBLIGATORIE, si pentru sesiunea principala, si pentru subagenti.**
Nu e o optimizare, e o conditie de corectitudine. Declansatoare: **~50% din fereastra**
(sesiunea principala / orchestrator), **~200-250k tokens** (subagent), anuntul de compactare
@@ -140,3 +146,43 @@ Depanare detaliata: `COMUN\docs\depanare_testare_vfp.md`.
iar sesiunea principala doar orchestreaza si verifica rezultatele.
- **Fara commit fara review**: nu da commit (git sau svn) din proprie initiativa pe modificari de
cod — diff-ul se livreaza intai ca fisier in `docs/`, iar commit-ul vine dupa aprobare.
### Executie continua a unui plan (mandat permanent, Marius, 30.08.2026)
> „vreau sa continui toate stories, cu commit dupa fiecare, si handoff la limita de context”
Cand lucrezi la un plan cu mai multe stories, mandatul e valabil pana la revocare explicita:
1. **Toate stories**, in ordinea de dependente din fisierul de executie al planului — fara oprire
dupa fiecare ca sa intrebi „continuam?”.
2. **Commit dupa fiecare story**, pe branch-ul de lucru, in repo-ul potrivit (cod `COMUN` din
`COMUN\`, restul din radacina proiectului). Review inainte de commit, dar **fara a mai cere
aprobare** — aprobarea e data pentru intreg lantul. Fara push; SVN si merge-ul raman la Marius.
3. **Handoff la limita de context** — vezi Regula zero de mai sus. Fisierul de stare viu al
planului se actualizeaza dupa FIECARE story inchisa, nu la final.
Corolar cand Marius nu poate testa manual: pentru fiecare story al carui criteriu oficial de „gata”
e o proba manuala UI, se proiecteaza si o **proba automata de paritate** (headless sau prin
`vfp_ui_harness.ps1`), iar ce ramane obligatoriu manual se inregistreaza explicit ca **datorie
deschisa** — nu se declara „gata”.
## Ponytail (plugin la nivel de user)
Plugin-ul tert `ponytail` e activ implicit pe nivelul `full` la fiecare sesiune si reinjectat in
fiecare subagent — nu doar in sesiunea principala. Nu ruleaza retea si nu trimite telemetrie: scrie
doar un flag local (`~/.claude/.ponytail-active`) si citeste `~/.claude/settings.json`.
Se pastreaza scara YAGNI/reuse-first (nu scrii ce exista deja in `inventar-comun.md`,
`COMUN\programe`, `COMUN\clase`, sau ce face VFP/Oracle nativ) — se suprapune cu regula
proiectului de modificari minime, SCOPED.
Ce NU se aplica aici, cu regula proiectului care primeaza (detaliu complet:
`COMUN\docs\reguli_lucru.md`, punctul 3, „Scara ponytail”):
- comentarii `ponytail:` in cod -> interzise (regula 2); scurtatura si limita ei merg in
`docs\progres.md`, nu inline.
- proba „runnable test / assert self-check” -> script headless (regulile 4 si 8), nu `test_*.py`.
- „cod intai, maxim trei randuri” -> nu se aplica handoff-urilor, rapoartelor din `docs\` si
patch-urilor, care sunt output cerut explicit.
- `/ponytail-review` si `/ponytail-audit`: `delete:`/`yagni:` sunt ipoteze, nu constatari — in
`COMUN` cauti apelantii in tot `D:\ROA` inainte sa stergi; audit pe tot arborele nu se ruleaza aici.
- nivelul `ultra` nu se foloseste pe cod legacy partajat.