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.
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
- Per ogni impostazione, trova la riga che la legge. Quando si applica è una proprietà di quella riga, non del controllo dell'interfaccia.
- 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.
- 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.
- 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.gitchimera skills-import chimera-agent/skills/declare-when-a-setting-takes-effect/SKILL.mdIntegrità
SHA-256 del file così com'è pubblicato. Chi lo importa può verificare che ciò che ha ricevuto sia ciò che questa pagina mostrava.
2f1c9fd86ac24a61af75b11945b5042d1a2b53ef081cd9a87c3031d5fa97fcf3