From 50c98bb951cdd123edcf0eefd8bd4cc973cfee71 Mon Sep 17 00:00:00 2001 From: Marius Mutu Date: Mon, 3 Aug 2026 02:13:05 +0300 Subject: [PATCH] CLAUDE.md: aliniere cu ROACONT/ROAGEST Adus din CLAUDE.md-urile celorlalte proiecte: branching git (main = doar sync SVN rN, claude/ pentru lucru), curatare orfani + limitele global-ignores, regula ca o modificare doar-text comisa in git se pierde fara write-back + svn commit, regula de continut a changelog-ului, formatul obligatoriu al raspunsului si skill routing. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01RYbiinqXxdEqXi53x4Ro7K --- CLAUDE.md | 79 +++++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 68 insertions(+), 11 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index fbd2cc2..6a5b6e0 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -35,14 +35,38 @@ powershell -ExecutionPolicy Bypass -File D:\ROA\UTIL\foxbin2prg\git_sync.ps1 -Pr Sau, mai simplu, `roa_sync.bat` din radacina proiectului: face svn update -> git_sync -> commit `sync SVN rN` pe `main` (proiect + COMUN) -> push. +`git_sync` converteste intr-un staging temp si copiaza inapoi doar textul (binarele din working +copy-ul SVN nu sunt atinse niciodata), continua peste esecurile per fisier si iese cu cod nenul +daca a esuat ceva: **nu comite cat timp `git_sync` raporteaza esecuri neexplicate.** + Then search the `.??2` files in-tree with Grep, citing `file:line`. Write-back text->binary via `txt2vcx.ps1` is supported **only for `.vc2`/`.sc2`**; `.frx/.mnx/.pjx/.dbf` are editable only in -the VFP IDE. See `D:\ROA\UTIL\foxbin2prg\CLAUDE.md` and `COMUN\docs\flux-editare-vfp-text.md`. +the VFP IDE. See `D:\ROA\UTIL\foxbin2prg\CLAUDE.md` si `COMUN\docs\flux-editare-vfp-text.md`. + +Curatare orfani: la fiecare rulare completa `git_sync` sterge textul `.??2` al carui binar a +disparut din SVN si raporteaza restul (ex. stub-uri de test doar-git, fara binar) fara sa le stearga. + +SVN ignora fisierele `.??2` prin `global-ignores` din configul local +(`%APPDATA%\Subversion\config`, `[miscellany]`), impreuna cu `*.dbf.cfg`. Limitare: global-ignores +acopera doar fisierele *neversionate* — daca un `.??2` ajunge `svn add`-ed, scoate-l cu +`svn rm --keep-local`. + +O modificare facuta doar in text si comisa in git, fara write-back in binar si fara `svn commit`, +se pierde la urmatorul `git_sync` (textul se regenereaza din binar). Ordinea corecta: +text -> `txt2vcx.ps1` -> `svn commit` -> sync git. `COMUN/` is excluded from this repo's git — shared by every ROA product and versioned by its **own git repo**, `gitea.romfast.ro:romfast/comun.git`. Run git commands for `COMUN/` from inside that directory, and treat any change there as cross-project (fara `push --force`). +### Branching (git) + +Doua benzi in oglinda git: **`main`** primeste DOAR commit-uri `sync SVN rN`, facute din stare +curata (imediat dupa `svn update`, inainte de lucru local); **Claude lucreaza pe branch** +`claude/` si comite doar acolo, ca `git diff main..claude/` sa arate exact si +numai munca lui. Branch-ul se inchide dupa ce modificarile intra in SVN (`svn commit` facut de +utilizator). Model complet: `COMUN\docs\fluxul_svn_git.md`. + ## Building / running No CLI build. Compiled from the VFP 9 IDE: open `roaContracte.pjx`, then Project > Build. @@ -99,9 +123,17 @@ ROACONTRACTE - X.Y.Z --> ``` -Tag-uri: `:nou:`, `:modificare:`, `:eroare:`, `:adaugare:`. Se bumpeaza `MAJOR.MINOR.PATCH` -(seria curenta `2.3.x`). Intrarile sunt scurte, orientate spre utilizator: o singura intrare -consolidata per livrare, fara pasi intermediari sau detalii interne. +Tag-uri: `:nou:` (functie noua), `:modificare:` (schimbare de comportament), `:eroare:` +(corectie), `:adaugare:`. Se bumpeaza `MAJOR.MINOR.PATCH` (seria curenta `2.3.x`). + +Regula de continut: changelog-ul e pentru utilizatori — se scrie **doar ce vede utilizatorul**, +scurt si compact. O singura intrare consolidata per livrare (versiunea o da Marius), fara pasi +intermediari, runde sau mecanisme interne; erorile introduse si reparate in aceeasi versiune +nelivrata **nu se trec** (clientul nu le-a vazut) — intrarea versiunii curente se rescrie, nu se +acumuleaza. + +Comentariile de modificare in cod urmeaza conventia `*!* DD.MM.YYYY` + autor + descriere scurta, +direct deasupra codului schimbat. ## Reguli de lucru si testare @@ -126,16 +158,41 @@ Foloseste **PowerShell**, nu Bash (bash.exe crapa pe aceste masini si lasa stack delega catre **subagenti Sonnet care lucreaza in background** (Agent tool cu `model: sonnet`), 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. + cod — Marius vrea intai sa **vada diff-ul**, ca fisier in `docs/`. Pentru binarele VFP + (`.vcx`/`.scx`) diff-ul lizibil se face pe forma text `.vc2`/`.sc2` regenerata cu + `git_sync.ps1`, inainte de write-back cu `txt2vcx.ps1`. - **Curatenie inainte de commit**: `powershell -File COMUN\utile\curatenie.ps1` (`-DryRun` doar - listeaza) sterge patch-urile de review, handoff-urile, backup-urile `*.pre_runda*.bak` si - artefactele de test. + listeaza) sterge patch-urile de review, handoff-urile/planurile de runda, backup-urile + `*.pre_runda*.bak` si artefactele de test. Faptul ca sunt in `.gitignore` nu le scuteste. -## Stil de raspuns +## Stil de raspuns: scurt si concret -Raspunsuri scurte si concrete: stare (facut / de decis / urmeaza), cu fisier si linie. Fara -naratiune de proces, fara reluari. Detaliile lungi (dovezi, iesiri de test) se scriu in fisier si -se trimite link-ul. +Marius vrea raspunsuri **clare, concise, fara vorbarie**. Regula, nu preferinta. + +- **Starea si ce urmeaza, nu povestea.** Ce e gata, ce e stricat, ce trebuie decis, ce urmeaza — + in liste scurte, cu fisier si linie. Fara reconstituirea drumului pana la rezultat. +- **Fara naratiune de proces**: ce a raportat fiecare agent, cine ce a corectat, cum au fost + coordonate benzile. Intra in `docs/`, nu in raspuns. +- **Fara laude si fara reluari.** Nu repeta ce s-a spus deja in conversatie. +- Detaliile tehnice lungi (dovezi, iesiri de test, metodologie) se scriu in fisier si se + **trimite la el**, nu se copiaza in raspuns. + +**Formatul obligatoriu al raspunsului**, in aceasta ordine, maxim cateva randuri fiecare: + +1. **Am facut:** ce e gata (fisier:linie). +2. **Urmeaza:** ce fac mai departe. +3. **De la tine:** intrebarea, clar si simpla, cu recomandarea mea. + +## Skill routing + +When the user's request matches an available skill, invoke it via the Skill tool. When in doubt, +invoke the skill. + +- Product ideas/brainstorming -> /office-hours · Strategy/scope -> /plan-ceo-review +- Architecture -> /plan-eng-review · Full review pipeline -> /autoplan +- Bugs/errors -> /investigate · Code review/diff check -> /review +- Ship/deploy/PR -> /ship or /land-and-deploy +- Save progress -> /context-save · Resume context -> /context-restore ## Project insights (docs/)