Vai al contenuto

Skills

declare-when-a-setting-takes-effect

Un controllo che salva con successo e non cambia nulla fino al riavvio è peggio di uno che fallisce. Di' quando si applica, e ricavalo da dove viene letto.

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

  • aggiungo una schermata di impostazioni
  • la config è in cache
  • perché la mia modifica non ha effetto
  • riavvio necessario

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

Stai esponendo un'impostazione in un'interfaccia utente, e il codice che la consuma legge il valore in un momento diverso da ogni utilizzo: all'avvio del processo, quando si costruisce una sessione, oppure dentro un oggetto in cache.

Non si applica a un'impostazione letta a ogni utilizzo. Quelle si applicano immediatamente e non dovrebbero dire nulla — una nota su un ritardo che non esiste insegna la stessa sfiducia di una nota mancante.

Fai

  1. Per ogni impostazione, trova la riga che la legge. Quando si applica è una proprietà di quella riga, non del controllo dell'interfaccia.
  2. Preferisci renderla a lettura live. Una proprietà che si risolve all'accesso di solito non costa nulla e rimuove il problema invece di limitarsi a descriverlo.
  3. Dove davvero non è possibile — qualcosa viene avviato al boot — etichettala, e genera l'etichetta dal server o dallo stesso modulo che conosce il punto di lettura, così l'etichetta non può andare fuori sincrono.
  4. Raggruppa le etichette in classi significative: si applica ora, si applica alla tua prossima conversazione, si applica dopo un riavvio.

Evita

Una schermata di impostazioni che conferma il salvataggio e silenziosamente non fa nulla. È peggio di un errore: un errore spinge l'utente a cercarne la causa, mentre un successo lo spinge a dare la colpa alla funzionalità, al modello o a se stesso.

Evita di codificare in modo statico nell'interfaccia la lista dei "richiede un riavvio". Quella lista è una copia di una conoscenza che vive altrove, e diventa obsoleta la prima volta che il punto di lettura si sposta — silenziosamente, esattamente come è nato il problema originale.

Evita una nota generica del tipo "alcune impostazioni richiedono un riavvio". È vera, inutile, e copre anche quelle che non lo richiedono.

Verifica

Cambia l'impostazione, usa la funzionalità, e osserva il comportamento — non la schermata. Rileggi un valore dal sistema in esecuzione, non dal modulo che hai appena inviato.

La versione meccanica: verifica che nessuna impostazione sia etichettata come immediata per errore, e che ogni impostazione esposta dall'interfaccia compaia nella classificazione pubblicata dal server.

Rischio

Le etichette aggiungono rumore a una schermata di impostazioni, e una schermata in cui ogni riga ha un badge è una schermata in cui i badge non significano nulla. Ne servono solo per quelle ritardate.

Il rischio più profondo è trattare l'etichetta come se fosse la soluzione. Dichiarare che un controllo resta inerte fino al riavvio è onesto; renderlo live è meglio, e l'etichetta non dovrebbe diventare un modo comodo per evitare il cambiamento più difficile.

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/declare-when-a-setting-takes-effect/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.

2f1c9fd86ac24a61af75b11945b5042d1a2b53ef081cd9a87c3031d5fa97fcf3

Leggi la scheda nel repository