From 496e15c0cf25e4884dbf8706c6ced1cbc637432a Mon Sep 17 00:00:00 2001 From: Marius Mutu Date: Thu, 17 Sep 2026 16:56:47 +0300 Subject: [PATCH] sync SVN r18160 --- docs/README.md | 1 + docs/reguli_lucru.md | 6 +++ docs/stil_interactiune_cautare.md | 40 ++++++++++++++++ utile/roa-sql.ps1 | 76 +++++++++++++++++++++++++++++++ 4 files changed, 123 insertions(+) create mode 100644 docs/stil_interactiune_cautare.md create mode 100644 utile/roa-sql.ps1 diff --git a/docs/README.md b/docs/README.md index aa220d7..f495fd9 100644 --- a/docs/README.md +++ b/docs/README.md @@ -12,6 +12,7 @@ atingi zona X, citeste fisierul Y"). Restul se deschid doar la declansator. | Fisier | Cand | |---|---| | `reguli_lucru.md` | intotdeauna, la inceput de sesiune | +| `stil_interactiune_cautare.md` | cum interactionezi cu utilizatorul si cum cauti/lucrezi (distilat din promptul Claude Code) | | `orchestrare-subagenti.md` | cand delegi, cand verifici ce intoarce un subagent, la predarea contextului | | `monitorizare-context.md` | instalarea hook-urilor de prag de context si de revizie a docs | | `fluxul_svn_git.md` | orice commit / `svn update` / `roa_sync` -> skill `roa-git-svn-commit` | diff --git a/docs/reguli_lucru.md b/docs/reguli_lucru.md index 14c430f..ee8390d 100644 --- a/docs/reguli_lucru.md +++ b/docs/reguli_lucru.md @@ -156,6 +156,12 @@ la incarcare. Propui rezultatul, nu rescrii din oficiu; nu pierzi nicio regula/capcana, doar cuvintele in plus. Fisierele de reguli/conventii se completeaza doar cu ce e super-util, simplu si concis. Cadenta o da hook-ul din `monitorizare-context.md` (marker la 30 de zile). +14. **Cand o decizie admite mai multe variante si incepi o investigatie ca sa alegi singur, + opreste-te si intreaba utilizatorul** (ask-user) cu variantele clare si o recomandare. Decizia + lui e mai rapida si mai corecta decat o investigatie lunga; o varianta gresita costa o runda, + o investigatie gresita costa o sesiune. Valabil si pentru subagenti: cand nu stii, intrebi, + nu ghici. Extinderea completa (interactiune + cautare, distilata din promptul Claude Code): + `stil_interactiune_cautare.md`. 13. Documente de propuneri/directie: unul singur, final, in `COMUN\docs\cercetare\rec_*.md`. Materialul de lucru (brief-uri, handoff-uri, variante intermediare, patch-uri) NU se pastreaza; dovezile masurate si scripturile raman in `docs\` al proiectului, iar documentul trimite la ele. diff --git a/docs/stil_interactiune_cautare.md b/docs/stil_interactiune_cautare.md new file mode 100644 index 0000000..82ff99a --- /dev/null +++ b/docs/stil_interactiune_cautare.md @@ -0,0 +1,40 @@ +# Stil de interactiune si cautare (distilat din promptul de sistem Claude Code) + +Surse: promptul de sistem Claude Code publicat (github.com/asgeirtj/system_prompts_leaks, +github.com/noelzappy/claude-code-system-prompts) si docurile Anthropic (Claude Code best practices). +Completeaza regula 14 din `reguli_lucru.md`. Se aplica sesiunii principale si subagentilor. + +## Interactiune cu utilizatorul + +1. Recomandare prima, nu recenzie. La o alegere cu mai multe variante, da O recomandare (marcata + prima) si explica simplu si clar trade-off-ul fiecaruia - nu o lista exhaustiva. +2. Intreaba doar cand decizia e cu adevarat a utilizatorului. Daca exista un default evident (din + cerere, din cod, din conventie), alege-l, mentioneaza-l in raspuns si continua - nu intreba. +3. Intreaba o singura data. Nu repeta o intrebare fara raspuns, nu intra in loop de decizie. +4. Separa "a raspunde" de "a executa". O intrebare sau o parere primeste un raspuns, nu o + implementare. Nu presupune intentia de actiune. +5. Concizie: raspuns implicit < 4 randuri (daca nu se cere detaliu); fara preambul, fara "urmeaza + sa fac...". Dupa ce editezi un fisier, opreste-te - nu explica ce ai facut. +6. Proactivitate = reversibilitate x raza de impact. Local si reversibil (editare fisiere, rulare + teste) -> liber. Greu de reversat / vizibil extern / distructiv (push, PR, stergeri, comenzi pe + productie) -> confirma inainte. O aprobare unica nu e autorizare generala. +7. Daca eziti intre doua variante rezonabile, alege una si mergi - poti corecta cursul. +8. Fara emoji decat la cerere explicita. + +## Cum cauti si lucrezi + +1. Tinta cunoscuta -> tool direct (read/grep pe path sau simbol exact). Cautare deschisa pe tot + codebase-ul -> subagent de explorare (protejezi contextul principal). Nu repeta singur cautarile + deja delegate. +2. Tool-uri independente -> in paralel (un mesaj, mai multe apeluri); dependente -> secvential. +3. Cauza inainte de fix. Fara fix fara cauza radacina. Citeste eroarea completa (stack, linii, + coduri) inainte sa ghicesti; daca nu se reproduce, aduni date, nu ghici. +4. Nu reciti fisiere mari ca sa diagnostichezi - deleaga cu "adu-mi dovada, nu fisierul": cauza, + linia, citatul minim. Verifici afirmatia, nu o redescoperi. +5. Verifica prin comanda care intoarce da/nu sau numar, nu prin citire. +6. Trust but verify: raportul unui subagent descrie ce a intentionat, nu ce a facut - verifica + schimbarile reale (diff, teste, loguri). +7. Nu presupune ca o biblioteca exista sau ca testele merg - verifica intai ca proiectul o + foloseste; ruleaza lint/typecheck/teste si arata iesirea (doar esecuri + total). +8. Inainte de orice comanda care poate arunca munca necomisa (checkout/reset/clean/rm), ruleaza + `git status`; stage doar ce trebuie. diff --git a/utile/roa-sql.ps1 b/utile/roa-sql.ps1 new file mode 100644 index 0000000..5bd53b8 --- /dev/null +++ b/utile/roa-sql.ps1 @@ -0,0 +1,76 @@ +# roa-sql.ps1 - ruleaza SQL prin sqlplus, determinist. +# Elimina refacerea manuala de fiecare data: scris fisier .sql ASCII + setat TNS_ADMIN/NLS_LANG +# + rulat sqlplus. Capcanele rezolvate: BOM-ul care sparge sqlplus (SP2-0734) si `termout off` +# care ascunde erorile (nu-l foloseste). +# +# Utilizare: +# powershell -File COMUN\utile\roa-sql.ps1 -Schema MARIUSM_AUTO -Sql "select user from dual" +# powershell -File COMUN\utile\roa-sql.ps1 -Schema MARIUSM_AUTO -Fisier "D:\cale\q.sql" +# powershell -File COMUN\utile\roa-sql.ps1 -Con "ROMFAST/@ROA_ROMFAST" -Sql "select user from dual" +# +# Parametri: +# -Schema numele schemei; completeaza /@ +# -Con sirul de conectare complet (schema/parola@alias) - foloseste-l pentru productie +# -Alias alias TNS cand folosesti -Schema (default ROA_CENTRAL) +# -Sql instructiune SQL directa -- SAU -- -Fisier fisier .sql existent +# +# Parola NU e hardcodata: -Schema o citeste din COMUN\docs\local\oracle.md (fisier de secrete, +# NEVERSIONAT in git). Pentru productie, da -Con cu parola din acelasi fisier. +# +# Atentie: interogarile pe productie se fac doar SELECT, cu `fetch first N rows only`. +param( + [string]$Schema, + [string]$Con, + [string]$Alias = 'ROA_CENTRAL', + [string]$Sql, + [string]$Fisier +) + +$ErrorActionPreference = 'Stop' +$sqlplus = 'D:\ROA\instantclient_19_18\sqlplus.exe' +$env:TNS_ADMIN = 'D:\ROA\instantclient_19_18' +$env:NLS_LANG = 'AMERICAN_AMERICA.AL32UTF8' + +function Ia-ParolaStandard { + $fisier = Join-Path $PSScriptRoot '..\docs\local\oracle.md' + if (-not (Test-Path -LiteralPath $fisier)) { return $null } + $text = [IO.File]::ReadAllText($fisier) + if ($text -match 'MARIUSM_AUTO/([A-Za-z0-9_]+)@ROA_CENTRAL') { + return $Matches[1] + } + return $null +} + +if ($Con) { + $conn = $Con +} elseif ($Schema) { + $parola = Ia-ParolaStandard + if (-not $parola) { + Write-Output 'roa-sql: nu gasesc parola standard in COMUN\docs\local\oracle.md - foloseste -Con.' + exit 1 + } + $conn = "$Schema/$parola@$Alias" +} else { + Write-Output 'roa-sql: da -Schema (dev) sau -Con (productie).' + exit 1 +} + +if ($Fisier) { + $sqlText = [IO.File]::ReadAllText((Resolve-Path $Fisier)) +} elseif ($Sql) { + $sqlText = $Sql +} else { + Write-Output 'roa-sql: da -Sql sau -Fisier.' + exit 1 +} + +$tmp = Join-Path $env:TEMP ('roa-sql-' + [guid]::NewGuid().ToString('N') + '.sql') +try { + $sqlText = $sqlText.Trim() + if (-not $sqlText.EndsWith(';')) { $sqlText += ';' } + $sqlText += "`r`nexit`r`n" + [IO.File]::WriteAllText($tmp, $sqlText, (New-Object System.Text.UTF8Encoding($false))) + & $sqlplus -S -L $conn ('@' + $tmp) +} finally { + Remove-Item -LiteralPath $tmp -Force -ErrorAction SilentlyContinue +}