Operazioni Git e sicurezza
Mantieni ispezione, commit, push, tag, reset e pulizia sotto autorizzazione esplicita del developer.
TCAF può descrivere procedure Git sicure, ma non considera le operazioni che modificano il repository come conseguenze implicite di un task riuscito.
Ispezione in sola lettura
L’agente può usare comandi approvati non distruttivi per comprendere lo stato corrente, per esempio:
git status --short
git diff --check
git diff --stat
git diff -- <percorso>
git diff --cached --stat
git log --oneline -n 10
Git status e diff mostrano le modifiche correnti; non dimostrano chi le abbia prodotte. Non attribuire cambiamenti incerti al developer o all’agente senza evidenza.
Commit
Un commit richiede:
- implementazione accettata;
- autorizzazione esplicita;
- review dei percorsi inclusi;
- staging mirato;
- messaggio che descriva una sola modifica logica.
Non usare staging esteso quando possono esistere modifiche locali non pertinenti.
Push, tag e pull request
Sono operazioni remote separate. Prima di ciascuna verifica repository, branch, destinazione e perimetro esatto. Un commit locale non ne autorizza nessuna.
Operazioni distruttive
Non eseguire né raccomandare automaticamente comandi distruttivi su lavoro incerto, tra cui:
git reset --hard
git clean -fd
git checkout -- <percorso>
git restore <percorso>
Un ripristino distruttivo può essere appropriato soltanto quando il developer identifica esattamente il lavoro noto da scartare e autorizza esplicitamente l’azione.
Modifiche del developer e concorrenti
Il working tree corrente è autorevole. Prima di continuare dopo una pausa o una modifica manuale:
- ispeziona lo stato corrente;
- rileggi i file pertinenti;
- preserva il lavoro non correlato;
- distingui modifiche compatibili, sovrapposte e contraddittorie;
- chiedi quando la sovrapposizione non può essere interpretata in sicurezza.
Non usare reset, checkout o sostituzione dei file per tornare allo stato precedente dell’agente.
Automazione non supportata
Lo stato del workflow è not-supported perché TCAF non autorizza automaticamente commit, push, tag, eliminazione di branch, reset, clean o aggiornamenti remoti delle issue. Restano operazioni esplicite sotto controllo del developer anche quando l’adapter possiede tecnicamente i permessi necessari.