Vai al contenuto

Skills

derive-instead-of-transcribing

Tutto ciò che viene copiato a mano da un altro file è corretto esattamente una volta. Se può essere generato, generalo, e fai fallire la build quando la copia è vecchia.

PatternProvenienza: cleanStato: activev0.1.0 · Apache-2.0

Conferita da chi ha letto la scheda, non rivendicata dal file su se stesso. Una scheda che l'agente distilla durante un'esecuzione che ha consumato contenuti non affidabili nasce contaminata e resta in attesa di revisione prima di essere mai recuperata.

Quando viene in mente

  • documento un elenco di comandi
  • copio valori tra progetti
  • tengo due file sincronizzati
  • scrivo una pagina di riferimento

Il valore di solito sta in Evita e Verifica. Fai è la sezione che scrivono tutti.

Il corpo della scheda qui sopra è una traduzione. L'originale inglese è ciò che la CLI importa, ciò che l'agente legge in esecuzione e ciò che l'hash qui sotto attesta.

Trigger

Due punti del tuo sistema contengono la stessa informazione: una config e la sua documentazione, uno schema e i tipi lato client, una palette e il sito che la usa, un elenco di comandi e una pagina di riferimento.

Non si applica quando la seconda copia è deliberatamente diversa — una guida introduttiva curata non è una copia obsoleta del riferimento, è prosa con uno scopo diverso.

Fai

  1. Scegli quale delle due è la fonte. Di solito quella che il programma legge davvero a runtime.
  2. Genera l'altra, facendo commit del file generato così i diff restano revisionabili.
  3. Aggiungi uno step di CI che rigenera e fallisce se la copia committata differisce, con il comando esatto da eseguire nel messaggio di errore.
  4. Marca il file generato con la versione o il commit da cui è stato generato, così chi lo legge sa cosa descrive.

Evita

Tenere la copia sincronizzata a memoria. Funziona finché una sola persona tiene entrambi i file in testa, e smette di funzionare la prima settimana in cui qualcun altro tocca uno dei due.

Evita anche la versione a metà: generare il file ma non proteggerlo con un gate. Un artefatto che viene rigenerato a volte è peggio di uno scritto a mano, perché porta l'autorevolezza di essere generato pur essendo altrettanto obsoleto.

Ed evita di generare prosa. Il materiale di riferimento si genera bene; la spiegazione no, e una pagina di descrizioni di campo espanse meccanicamente è una pagina che nessuno legge.

Verifica

Cambia la fonte, non rigenerare, e fai push. La CI deve diventare rossa e dirti cosa eseguire.

Poi leggi il file generato per la cosa che hai cambiato e conferma che sia presente — il gate prova che il file è aggiornato, non che il generatore abbia catturato il campo a cui tieni.

Rischio

Un artefatto generato che nessuno riesce a leggere vanifica lo scopo; se l'output ha senso solo per una macchina, serve un livello di rendering, ovvero altro codice da mantenere.

C'è anche un costo di accoppiamento. Il consumatore ora dipende dalla forma del produttore, e un refactor da un lato rompe una build dall'altro. Di solito è proprio questo il punto — ma significa che il gate deve essere facile da soddisfare, altrimenti qualcuno lo disabiliterà durante un refactor non correlato e se ne dimenticherà.

Come usarla

La scheda è un dato. Clona il repository e importala per percorso — ciò che arriva dalla rete è trattato come contaminato e trattenuto in attesa di approvazione, che è il comportamento desiderabile e il motivo per cui qui non c'è un installatore in una riga.

git clone https://github.com/brcampidelli/chimera-agent.git
chimera skills-import chimera-agent/skills/derive-instead-of-transcribing/SKILL.md

Integrità

SHA-256 del file così com'è pubblicato. Chi lo importa può verificare che ciò che ha ricevuto sia ciò che questa pagina mostrava.

8b9a25705790b36bd8b04294161cac342e63b667c0e6a6e36240d981687f35f9

Leggi la scheda nel repository