# 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):

```json
"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).

## 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`:

```json
"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`.
