5.2 KiB
CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
What this is
ROAAUTO is a Visual FoxPro 9 desktop application (Romanian-language) for auto-service /
car-dealer operations: devize (quotes/estimates), comenzi (work orders), facturare (invoicing).
It is one member of the larger "ROA" suite and shares the COMUN\ framework with the other
ROA applications (ROAACNPRO, ROAGEST, etc.).
Build, run, version control
- Build/run requires the Visual FoxPro 9 IDE on Windows. There is no command-line build.
Open
roaauto.pjxin the VFP IDE and use Build > Build Executable to produceroaauto.exe. .prgfiles are source;.fxpare compiled,.bakare backups. Edit the.prg. The.scx/.sct(forms),.vcx/.vct(class libraries),.frx/.frt(reports), and.mnx/.mpr(menus) are VFP binary/generated artifacts — edit them in the VFP IDE, not by hand.- Version control: git runs in parallel with the legacy SVN. SVN (
.svn/) remains the "live" source of truth for this project and especially forCOMUN/, which stays a working copy synced manually to git — git does not replace it, just mirrors it for tooling (search, diffing, agent workflows). Don't runsvncommands from here unless explicitly asked;.gitignoresimply excludes.svn/.- Repo principal (rădăcina acestui folder):
git@gitea.romfast.ro:romfast/roaauto.git. COMUN/are propriul.git, separat de repo-ul principal (de aceeaCOMUN/e în.gitignore-ul de la rădăcină — nu e tracked de repo-ul principal). Origin-ul lui e același pentru toate aplicațiile ROA:git@gitea.romfast.ro:romfast/comun.git— repo partajat, populat inițial din ROAACNPRO. Nu face force-push peste el fără să verifici întâi diferențele față deorigin/main(ar afecta toate proiectele ROA care îl folosesc).
- Repo principal (rădăcina acestui folder):
config.fpwsets the runtime environment. Don't enable SAFETY — the code relies on silent overwrite (seeEXCLUSIVE=OFF/SAFETY=OFFconventions shared across ROA apps).- The compiler error log is
roaauto.ERR; the runtime log isLOG.txt.
Searching code inside .vcx/.scx (binary) libraries
Most class/form code lives inside binaries (.vcx+.vct, .scx+.sct, …), not in .prg,
so plain grep can't read it cleanly. Convert to TEXT form first and grep the text:
powershell -ExecutionPolicy Bypass -File D:\ROA\UTIL\foxbin2prg\vcx2txt.ps1 `
-Project D:\ROA\ROAAUTO\roaauto.pjx -ProjectRoot D:\ROA\ROAAUTO `
-CacheRoot D:\ROA\UTIL\foxbin2prg\_textcache_roaauto
This is project-driven (reads roaauto.pjx, converts only the .vcx/.scx the project
actually uses) and writes to a cache dedicated to this project
(D:\ROA\UTIL\foxbin2prg\_textcache_roaauto\) — don't mix it with other ROA projects' caches
(e.g. _textcache_roaacnpro). Then Grep in that cache. Full guide: docs/cautare_vcx_vct.md.
The COMUN shared framework
COMUN/ is shared, framework-level code used by every ROA app — not specific to ROAAUTO. Treat
it as a vendored library: prefer app-specific changes in this repo's top-level Programe/,
Clase/, Ferestre/, Rapoarte/, Meniuri/ directories, and only touch COMUN/ when the fix
genuinely belongs to the shared framework (and remember it's versioned separately, shared with
every other ROA app).
Mod de lucru: delegare către subagenți + review înainte de commit
Preferințele lui Marius pentru sesiunile pe acest proiect:
- Delegare: modificările de cod de volum/rutină (aplicarea unei propuneri din
docs/propuneri_*.md, editări pe cache-ul text + write-back, actualizări de documentație, rulări de teste) se deleagă către subagenți Sonnet care lucrează în background (team agents — Agent tool cumodel: sonnet, lane-uri paralele unde e posibil), iar sesiunea principală doar orchestrează și monitorizează: împarte planul pe lane-uri, transmite constatările între agenți, verifică rezultatele (diff, teste, fidelity) și intervine direct doar la deblocări (procese agățate), decizii și verificări. - Fără commit fără review: nu da commit din proprie inițiativă pe modificări de cod — Marius vrea întâi să vadă diff-ul. Pentru binarele VFP (
.vcx/.scx), diff-ul lizibil se face pe forma text: regenerează textul din binarul vechi (HEAD din git) cuvcx2txt.ps1 -Sourceși compară-l cu textul editat din cache (git diff --no-index). Commit doar după ce Marius confirmă pe diff. - Arată diff-ul complet după orice modificare: după ce agenții (proprii sau subagenți) termină o rundă de editări — inclusiv la asamblarea rezultatelor din lane-uri paralele — afișează-i lui Marius diff-ul complet (
git diff, nu doar rezumat/--stat) înainte de a continua la pasul următor sau de a cere aprobare, nu doar un sumar descriptiv al schimbărilor.
Project insights (docs/)
Vezi indexul din docs/README.md. Oferă-mi proactiv actualizarea docs/
ori de câte ori descoperi un insight nou și ne-evident despre acest proiect (flux ascuns,
capcană, convenție, procedură/pachet cheie, tabel relevant) — nu aștepta să fii întrebat.