Files
comun/docs/monitorizare-context.md
Marius Mutu 87cc3a7976 docs: documenteaza VM 304 ca masina partajata dezvoltare/testare
Adauga masini-dezvoltare-testare.md (acces qm guest exec, ce ofera,
limitari reale, de verificat inainte de folosire) si extinde
monitorizare-context.md cu monitorizarea de context per subagent
prin SubagentStop (context_watch.ps1 -Subagent).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015ZwtBDjGbAWvy7TmcNVxDC
2026-09-17 22:26:50 +03:00

3.3 KiB

Hook-uri de disciplina (regulile 9 si 12)

Monitorizare context sesiune (regula 9)

Agentul nu-si vede singur consumul de context. COMUN\utile\context_watch.ps1 il citeste din transcriptul sesiunii (ultimul usage: input_tokens + cache_read + cache_creation) si avertizeaza peste prag: 250k = pregateste predarea, 275k = handoff acum.

Instalare, o data per calculator, in %USERPROFILE%\.claude\settings.json (nivel utilizator, prinde toate proiectele):

"hooks": {
  "UserPromptSubmit": [
    { "hooks": [ { "type": "command",
      "command": "powershell -NoProfile -ExecutionPolicy Bypass -File \"D:\\ROA\\ROAGEST\\COMUN\\utile\\context_watch.ps1\" -Stdout" } ] }
  ]
}
  • Ruleaza la fiecare mesaj al utilizatorului (~1s); sub prag nu scrie nimic.
  • -Stdout e obligatoriu pe UserPromptSubmit (mesajul intra in context, exit 0). Fara el scrie pe stderr si iese cu 2 - forma pentru PostToolUse.
  • Praguri configurabile: -Prag, -PragMax.
  • Verificare manuala: powershell -File ...\context_watch.ps1 -Prag 900000 -PragMax 950000 -Intotdeauna (afiseaza CONTEXT <n>k indiferent de prag).

Monitorizare context per subagent

Subagentii nu-si simt pragul de context (vezi memoria de sesiune "subagentii nu-si simt pragul de context"). Hook-ul SubagentStop primeste agent_transcript_path - transcriptul SEPARAT al subagentului care tocmai s-a oprit, distinct de transcriptul sesiunii principale - deci se poate masura contextul fiecarui subagent, nu doar al orchestratorului.

context_watch.ps1 -Subagent citeste acel transcript separat, cu praguri implicite mai joase (150k/200k, fata de 250k/275k la sesiunea principala, tocmai fiindca subagentii nu se opresc singuri la timp). Optiuni suplimentare:

  • -Json - ambaleaza mesajul in hookSpecificOutput/additionalContext, formatul cerut de SubagentStop.
  • -StareFile <cale> - scrie un antet datat, reinlocuit de fiecare rulare, pe primul rand al fisierului de progres al sarcinii.

Garda stop_hook_active e in script: a doua declansare a aceluiasi ciclu de stop tace (nu se reinjecteaza mesajul la infinit); plafonul documentat e 8 blocari consecutive inainte ca harness-ul sa renunte oricum.

Corectie: niciun hook nu primeste tokenii de-a gata calculati - nici hook-urile command, nici function hooks din SDK. Orice hook primeste doar transcript_path si trebuie sa-si citeasca singur usage din JSONL (cum face context_watch.ps1). Singurul canal cu procent gata calculat (context_window.used_percentage) e statusLine, care nu e hook si nu poate declansa actiuni.

Compactarea nu se poate declansa programatic dintr-un hook; singurul control indirect e coborarea pragului de auto-compactare cu variabila de mediu CLAUDE_AUTOCOMPACT_PCT_OVERRIDE.

Revizuire periodica a docs (regula 12)

COMUN\utile\docs_revizie_check.ps1 compara data din markerul COMUN\docs\.ultima_revizie cu ziua curenta si, peste 30 de zile, cere o runda de compactare. Se pune ca hook SessionStart, in acelasi settings.json, cu -Stdout:

"SessionStart": [
  { "hooks": [ { "type": "command",
    "command": "powershell -NoProfile -ExecutionPolicy Bypass -File \"D:\\ROA\\ROAGEST\\COMUN\\utile\\docs_revizie_check.ps1\" -Stdout" } ] }
]

Dupa o revizie aplicata: powershell -File ...\docs_revizie_check.ps1 -Marcheaza (rescrie markerul). Interval configurabil cu -Zile.