sync SVN r18160
This commit is contained in:
@@ -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` |
|
||||
|
||||
@@ -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.
|
||||
|
||||
40
docs/stil_interactiune_cautare.md
Normal file
40
docs/stil_interactiune_cautare.md
Normal 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
76
utile/roa-sql.ps1
Normal 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
|
||||
}
|
||||
Reference in New Issue
Block a user