CLAUDE.md: aliniere cu ROACONT/ROAGEST
Adus din CLAUDE.md-urile celorlalte proiecte: branching git (main = doar sync SVN rN, claude/<subiect> 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 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RYbiinqXxdEqXi53x4Ro7K
This commit is contained in:
79
CLAUDE.md
79
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/<subiect>` si comite doar acolo, ca `git diff main..claude/<subiect>` 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/)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user