Files
roafacturare/docs/handoff_skills_agenti.md
2026-09-16 12:20:02 +03:00

95 lines
5.9 KiB
Markdown

# Handoff: skill-uri de agent ROA + backstop de rutare
Data: 2026-09-16. Sesiune oprita la limita de context. Acesta e fisier de stare, nu documentatie.
## Ce s-a livrat (in COMUN, versionat git + SVN)
- 9 skill-uri, cate un `SKILL.md` per folder (`COMUN\skills\<nume>\`), frontmatter doar
`name`+`description`, corp auto-suficient (skill = proprietarul procedurii):
`roa-vfp-text-edit`, `roa-vfp-headless-test`, `roa-git-svn-commit`, `roa-oracle-migration`,
`roa-oracle-diagnostic`, `roa-oracle-production-access`, `roa-vfp-null-guards`,
`roa-vfp-go-recno`, `roa-oracle-sqlexec-no-data`.
- `COMUN\utile\leaga_skills.ps1` - creeaza symlink-uri in `%USERPROFILE%\.claude\skills\` catre
`COMUN\skills\<nume>` (fara copiere; citit de Claude Code SI de opencode). Idempotent, `-DryRun`.
- `COMUN\utile\backstop_skills.txt` (sursa canonica a rutarii) +
`COMUN\utile\scrie_backstop_skills.ps1` (`-Root`, `-Proiecte`, `-DryRun`; scrie `AGENTS.md` +
bloc marcat in `CLAUDE.md`; garda anti-duplicare: sare fisierele care contin deja `roa-` fara markers).
- `COMUN\docs\reguli_lucru.md` pct. 7 + `COMUN\docs\README.md` - ruteaza fiecare zona la skill-ul
care o detine (nu la doc).
- `COMUN\docs\cercetare\rec_skills.md` - decizia, inventarul, cum se adauga un skill nou.
- `AGENTS.md` (radoacina ROAFACTURARE, backstop pentru opencode) + `CLAUDE.md` (2 rute + ancora).
- Backstop aplicat pe 10 proiecte: ROAACNPRO, ROAAUTO, ROACONT, ROACONTRACTE, ROADEF,
ROAFACTURARE, ROAGEST, ROAIMOB, ROAPRETURI, ROAREGISTRATURA (verificat idempotent).
## Ce NU e terminat (de continuat)
1. **2 fisiere de onboarding modificate, NEcomise in SVN** (singura stare nefinalizata de cod):
- `COMUN\docs\onboarding\inrolare-calculator-nou.md` - secțiune noua "Pasul 8 - skill-uri de
agent ROA" (+22 linii; pastreaza diacriticele).
- `COMUN\docs\onboarding\inrolare-proiect-git-text.md` - secțiune noua "### 8. Skill-uri de
agent (backstop de rutare)" (+7 linii; ASCII).
- Ambele: LF, fara BOM. NU au fost testate mai departe (sunt doar text).
2. **8 proiecte au commit SVN dar mirror-ul git nu a rulat `roa_sync`** (ROAACNPRO, ROAAUTO,
ROACONT, ROACONTRACTE, ROADEF, ROAGEST, ROAIMOB, ROAPRETURI, ROAREGISTRATURA). Fisierele sunt
active pe disc; git-ul lor se aliniaza la urmatorul `roa_sync.bat` local.
3. **Optional nefacut**: skill `roa-onboarding` (Nivel D din plan). Nu s-a creat intentionat:
`vfp-ui-test` NU se creeaza (e acoperit de `roa-vfp-headless-test`).
## Stare depozite
- SVN: COMUN r18116; ROAFACTURARE r18118; proiecte r18114/18115/18117/18119/18120/18121/18122/
18123/18124.
- git: COMUN `4756dc0`, ROAFACTURARE `50274b8`, ambele `ahead=0` (push facut, `main`).
- `svn status COMUN` = 2 x M (cele doua onboarding-uri de mai sus).
- `svn status ROAFACTURARE` (in afara COMUN) = reziduri PRE-EXISTENTE, neale noastre:
`.claude` (?), `Clase\ofundal_facturare.vc2.pre_runda1.bak` (?),
`Utile\Teste\test_catalog_articole_s1.FXP` (?), `docs\diff_runda3_vanzare_ui.patch` (?).
- Branch `claude/skills-agenti`: sters in ambele repo-uri.
## Comenzi de rulare (exacte)
- Backstop, pe proiecte: `powershell -ExecutionPolicy Bypass -File D:\ROA\<PROJ>\COMUN\utile\scrie_backstop_skills.ps1 -Root D:\ROA -Proiecte ROAACNPRO,ROAAUTO,ROACONT,ROACONTRACTE,ROADEF,ROAFACTURARE,ROAGEST,ROAIMOB,ROAPRETURI,ROAREGISTRATURA`
(intai `-DryRun`). Fara `-Proiecte` = toate proiectele detectate (53 - NU rula asa fara acord).
- Legare pe masina: `powershell -ExecutionPolicy Bypass -File <PROJ>\COMUN\utile\leaga_skills.ps1 [-DryRun]`.
- Sync: `D:\ROA\ROAFACTURARE\roa_sync.bat` (svn update -> git_sync -> commit "sync SVN rN" ->
reconciliere; push DOAR daca tot ahead-ul e commit-uri de sync).
- Verificare ASCII: `([IO.File]::ReadAllBytes($p) | Where-Object {$_ -gt 127}).Count` -> 0.
## Decizii luate (nu re-investiga)
- Skill = proprietarul procedurii; docurile din `COMUN\docs` = referinta CONDITIONATA (cel mult 1
pointer per skill). Motiv: sa nu se incarce contextul de doua ori.
- Un singur loc de rutare per host: `AGENTS.md` (opencode) + `reguli_lucru.md` pct. 7 (Claude,
citit mereu) + ancora in `CLAUDE.md`.
- Skill-urile traiesc in `COMUN\skills`, expuse prin symlink in `~/.claude/skills` (fara copie).
opencode citeste nativ `.claude/skills` (confirmat in sursa: `SkillV2.load` -> `glob(...,{symlink:true})`).
- Sursa canonica a rutarii = `COMUN\utile\backstop_skills.txt` (regenerata in proiecte de script).
- NU se foloseste plugin marketplace: opencode nu citeste cache-ul de pluginuri.
- Declansare: automata din `description` in ambele host-uri; backstop-ul always-on prinde
cazurile in care descrierea nu se potriveste. `paths` NU se foloseste (doar restrange, nu forteaza).
## Interzis
- Nu copia manual fisiere de skill in `~/.claude/skills` (se pierde legatura cu sursa; doar `leaga_skills.ps1`).
- Nu `git commit`/`push`/`merge` pe `main` in COMUN in afara fluxului; commit-urile de lucru pe branch
`claude/<subiect>`, apoi `svn commit` + `roa_sync`.
- Nu rula `roa_sync` pe un branch cu fisiere noi inainte de `svn commit` (pe branch face
`checkout main` si scoate fisierele de pe disc).
- Nu rescrie `COMUN\docs\` din proprie initiativa (regula 11/12) - propune.
- Nu rula `scrie_backstop_skills.ps1` fara `-Proiecte` (atinge 53 de proiecte).
## Capcane platite
- PowerShell 5.1 `New-Item -ItemType SymbolicLink` cere privilegii; `mklink /D` merge cu Developer
Mode activ (scriptul are fallback).
- `COMUN\docs` sunt LF, nu CRLF; fisierele noi create (AGENTS.md, skill-uri) sunt CRLF.
- `reguli_lucru.md` si `CLAUDE.md` au em-dash (non-ASCII) PRE-EXISTENTE - nu se "repara" din oficiu.
- `inrolare-proiect-git-text.md` are 5 en-dash pre-existente (15 octeti non-ASCII); adaugarea
noastra e ASCII pur.
## Urmatorul pas recomandat
1. `svn commit` pentru cele doua onboarding-uri + `roa_sync.bat` + `push`.
2. `roa_sync.bat` in cele 8 proiecte ramase (apoi push, la alegere).
3. (Optional) skill `roa-onboarding`.