sync SVN r18160

This commit is contained in:
2026-09-17 16:56:47 +03:00
parent 221ae4711e
commit 496e15c0cf
4 changed files with 123 additions and 0 deletions

View File

@@ -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` |

View File

@@ -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.

View File

@@ -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.

76
utile/roa-sql.ps1 Normal file
View File

@@ -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/<parola>@ROA_ROMFAST" -Sql "select user from dual"
#
# Parametri:
# -Schema numele schemei; completeaza /<parola standard din fisierul de secrete>@<alias>
# -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
}