Skip to content

Spec-First Change (întâi specificația, apoi codul)

Regula de aur GStack: specificația se schimbă înainte de cod, mereu. Codul reflectă spec-ul, nu invers. Reviewer respinge (CRITICAL) orice cod care divergă de spec/JDL/ADR.

Orice change request: cerință/câmp/regulă/endpoint nou sau modificat, integrare nouă, breaking change.

Secvența obligatorie (nu sări pași, nu reordona)

Section titled “Secvența obligatorie (nu sări pași, nu reordona)”
1. SPEC Actualizează caietul `Spec - <app>` (+ nota vault/): CE se schimbă și DE CE.
Marchează trasabilitatea la cerințe universale (CU-*) și criterii de acceptanță.
2. MODEL Dacă se schimbă datele/relațiile → editează 03-development/<app>/<app>.jdl.
JDL rămâne sursa de adevăr; codul se va REGENERA din el, nu invers.
3. ADR Dacă e decizie de arhitectură → ADR nou din vault/templates/adr.md.
Un ADR care schimbă o decizie veche o marchează pe aceea „Înlocuit".
ADR-ul trece prin reviewer + aprobare teamlead (gate) înainte de cod.
4. TEST Actualizează 03-development/<app>/test-scenarios.md ÎNAINTE de cod.
TDD: scrie/ajustează testul care PICĂ pe noul comportament.
5. TRACE Issue GitLab „CR: <titlu>" (labels: block:C, type:change-request, app:<app>).
Comite pașii 1-4 (spec + JDL + ADR + scenarii) — un commit dedicat de spec.
6. COD ABIA ACUM: regenerează JHipster (jhipster jdl) + implementează diferența prin
run-until-green (RED e deja scris la pasul 4). Docker-compose up→test→down.
7. LIVR. reviewer APPROVE → MR `Closes #issue` → wiki (<app>/Arhitectura, /Scenarii-de-test,
/Stare) → checkpoint.
  • Niciun commit de cod pentru un CR fără ca pașii 1-4 să fie deja comise (verifică git log).
  • Dacă apare o divergență între cod și spec în timpul implementării → oprește-te, întoarce-te la pasul 1 (actualizează spec-ul), nu „repara” tăcut în cod.
  • Change request pe model = editare JDL, apoi regenerare — niciodată editare manuală a codului generat.
  • Întrebările de clarificare pe CR → inbox batch (nu întrerupe la fiecare).
  • Proces complet: docs/DEV-PLAYBOOK.md §5. Model→cod: jhipster-app-loop. Bucla: run-until-green.
  • ADR: vault/templates/adr.md. GitLab: gitlab-issues. Reluare: checkpoint-and-resume.