Skip to content
TCAFTask-Contract AI Development Framework
TCAF 0.3.3

Principi operativi

I principi che mantengono lo sviluppo assistito dall’AI sotto l’autorità del developer, delimitato, preservation-first e verificabile.

Contenuto: completeWorkflow: framework aligned

TCAF è costruito su principi operativi espliciti, non su una raccolta di prompt indipendenti. I principi definiscono come uno strumento AI dovrebbe comportarsi durante analisi del progetto, pianificazione, implementazione, verifica e riconciliazione.

Sono intenzionalmente più ampi di qualsiasi singolo adapter. Alcuni sono stati esercitati direttamente in scenari verificati; altri sono regole allineate al framework la cui copertura deve ancora essere estesa a ulteriori modelli, strumenti e condizioni di progetto.

Autorità del developer e autorialità diretta

Il developer o il team di sviluppo resta l’autorità tecnica e l’autore attivo del software. Può scrivere, modificare, eliminare, riorganizzare o sostituire codice direttamente ogni volta che il giudizio ingegneristico lo richiede.

L’AI non diventa proprietaria dell’implementazione lasciando al developer il solo compito di approvare o rifiutare il risultato generato. Riceve un incarico delimitato e assiste lo stesso processo ingegneristico già controllato dal team.

Le modifiche del developer costituiscono lo stato corrente autorevole. L’agente deve rileggerle, preservarle e integrarsi con esse, salvo una richiesta esplicita di ottenere un risultato differente.

Confini di autorizzazione espliciti

Ogni task sostanziale dovrebbe definire cosa l’AI è autorizzata a ispezionare, modificare e riportare. Il Task Contract identifica inoltre aree da preservare, criteri di accettazione, controlli e condizioni di arresto.

Il confine si applica all’AI, non al developer. Il developer può intervenire ovunque, cambiare approccio o ridefinire il task. L’AI non può interpretare questa libertà come autorizzazione ad ampliare autonomamente il proprio perimetro.

Ispezionare prima di agire

TCAF richiede all’agente di osservare il progetto reale invece di colmare i vuoti presumendo architettura, convenzioni, comandi o capacità.

In un progetto esistente significa ispezionare i file pertinenti, la documentazione disponibile, la struttura del progetto, i pattern di implementazione vicini, le modifiche correnti e le procedure di verifica disponibili prima di proporre o applicare una modifica.

L’ispezione resta pertinente: l’agente deve raccogliere il contesto necessario per eseguire il task in sicurezza senza trasformare ogni richiesta in un audit illimitato del repository.

Preservation-first e coerenza locale

Quando modifica un’area già implementata, l’agente si integra con il software funzionante invece di trattarlo come materiale da riscrivere. Funzioni, metodi, servizi, validazioni, guard, utility, gestione degli errori, pattern di stato, convenzioni di naming e struttura delle cartelle già presenti costituiscono il vocabolario di implementazione predefinito.

Un’astrazione teoricamente più pulita o una tecnica più moderna non rappresentano da sole un motivo sufficiente per sostituire il codice locale. Le nuove istruzioni vengono aggiunte dove il comportamento richiesto lo rende necessario; la logica funzionante non viene unificata, ottimizzata, generalizzata o ristrutturata opportunisticamente.

Preservation-first non vieta il refactoring. Richiede che il refactoring sia un obiettivo esplicito, motivato e autorizzato, non un effetto collaterale non richiesto.

Modifica minima necessaria

La superficie di implementazione dovrebbe restare piccola quanto il risultato richiesto consente. Questo riduce variazioni di comportamento involontarie, costo della review e incertezza sull’origine delle modifiche.

Minimo non significa superficialmente piccolo. Una modifica corretta può coinvolgere diversi file quando l’architettura del progetto lo richiede. La regola consiste nell’evitare interventi estranei e miglioramenti speculativi, non nel forzare ogni task in una singola riga.

Continuità dell’intero processo

TCAF collega analisi, comprensione architetturale, pianificazione, autorizzazione del task, implementazione, verifica, review e riconciliazione dello stato.

I documenti di progetto e i record dei task non sono contesto usa e getta per un prompt. Forniscono continuità tra sessioni, strumenti e collaboratori, evitando che un agente debba ricostruire il progetto affidandosi soltanto alla memoria della conversazione.

Passi piccoli e revisionabili

Gli obiettivi grandi dovrebbero essere scomposti in unità delimitate il cui intento e risultato siano comprensibili. Ogni unità produce un checkpoint nel quale il developer può revisionare, intervenire, modificare il contratto o scegliere un’azione successiva differente.

Questo rende l’avanzamento osservabile e impedisce che una lunga esecuzione autonoma nasconda numerose decisioni non revisionate.

Evidenze prima delle dichiarazioni

L’agente deve distinguere il risultato generato dal risultato verificato. I comandi realmente eseguiti, i controlli manuali richiesti al developer e le limitazioni irrisolte devono essere riportati separatamente.

Etichette come PASS, READY FOR CHECK, PARTIAL, BLOCKED e FAIL comunicano lo stato reale della verifica invece di premiare una risposta finale sicura ma non dimostrata.

Resilienza agli strumenti

Il modello operativo deve restare utile anche quando un adapter non può eseguire comandi, richiedere correttamente un’approvazione o accedere a un’interfaccia necessaria.

Il Task Contract può quindi indicare i comandi minimi pertinenti o le procedure manuali che il developer deve eseguire. L’impossibilità di automatizzare un controllo deve essere dichiarata come limitazione, non nascosta o trasformata in un PASS inventato.

Indipendenza da modello e strumento

TCAF definisce un contratto operativo e non dipende da uno specifico modello, IDE o prodotto agentico. Gli adapter trasportano gli stessi principi attraverso interfacce differenti e documentano dove cambiano le rispettive capacità.

L’indipendenza dal modello non implica comportamento identico. Ogni combinazione di adapter e modello richiede comunque validazione, e le capacità non supportate devono restare esplicitamente non supportate.

Classificazione esplicita delle modifiche durante il task

Non ogni nuova istruzione dovrebbe modificare silenziosamente un contratto attivo. TCAF distingue chiarimento, correzione di una non conformità, adattamento tecnico locale, amendment, task separato, blocker e problema collaterale.

Questo protegge flessibilità e tracciabilità: il developer può cambiare direzione in qualsiasi momento, mentre l’agente deve identificare come il cambiamento incide sul lavoro autorizzato.

Nessuna espansione implicita delle capacità

Un task non dovrebbe introdurre un nuovo framework di test, una dipendenza, un servizio, un meccanismo di deploy, un refactoring esteso o una convenzione di progetto soltanto perché l’agente li ritiene utili.

Le capacità esterne alla baseline esistente richiedono una decisione esplicita. In questo modo l’implementazione resta allineata al progetto reale invece che a un ambiente ideale immaginato.

Stato di maturità e validazione dichiarato con onestà

Il framework non dovrebbe mai presentare una procedura progettata come universalmente dimostrata. Le pagine della documentazione riportano stati separati per workflow e contenuto, permettendo di distinguere scenari verificati, limitazioni, procedure allineate al framework, capacità pianificate e operazioni non supportate.

Lo scopo non è ridimensionare il framework, ma rendere visibili le evidenze disponibili e il lavoro di validazione ancora necessario.