Ho smesso di usare prompt con Claude Fable 5 e l'ho assunto al suo posto

@gippp69
INGLESE2 giorni fa · 13 lug 2026
137K
116
3
30
150

TL;DR

Trasforma le tue interazioni con l'IA trattando Claude Fable 5 come un dipendente gestito. Questo framework utilizza turni multi-modello e controlli automatizzati per garantire un lavoro autonomo di alta qualità ed economicamente vantaggioso.

Non gestisci un dipendente scrivendogli comandi un messaggio alla volta. Gli dai un contratto, un periodo di prova e un modo per misurare se vale ancora lo stipendio. Fable 5 merita lo stesso trattamento.

Ecco il problema. Fable 5 può funzionare per ore senza di te, creare i propri sotto-agenti e finire una settimana di arretrato in una notte. Costa anche soldi veri per token, fa il lavoro in eccesso non appena lasci lo scopo aperto e difenderà una risposta sbagliata meglio di quanto la maggior parte degli umani difenda una risposta giusta.

Lasciato senza gestione, è un modo costoso per produrre sciocchezze sicure di sé. Messo sotto contratto, è la cosa più vicina a un'assunzione a tempo pieno che puoi far funzionare per pochi dollari al giorno.

Questo è quel contratto. Non la teoria. I file veri, nell'ordine in cui li scrivi, costruiti attorno a un'implementazione reale: i bot di monitoraggio che già eseguo su un VPS a Parigi tramite pm2. I flussi di autenticazione e le tabelle di fatturazione non sono il mio punto debole. Le chiavi RPC, gli indirizzi dei wallet e le transazioni live sulla blockchain lo sono. Il sistema qui sotto è costruito per quello, non per un repository SaaS generico.

Cinque sezioni. Ognuna produce un file. Tempo totale di configurazione: meno di due ore.

La Configurazione

bash
1claude CLI (Claude Code) con accesso a Fable 5 # crediti di utilizzo, con tetto massimo
2llm CLI + chiave OpenRouter # per i modelli economici
3jq, git, pm2, cron
4un VPS con i bot già in esecuzione

Cosa ottieni alla fine:

text
1agent-contract/
2 CONTRACT.md # Sezione 1: i termini di impiego
3 ops/
4 shift.sh # Sezione 3: il turno giornaliero
5 dispatcher.md # prompt di instradamento, solo Fable
6 intake.md # lettore economico, legge prima i log
7 worker.md # modello economico, scrive il codice
8 reviewer.md # Fable nuovo, controlla il lavoro
9 boundaries.md # Sezione 2: cosa può e non può toccare
10 guardrails/signoff.sh # Sezione 2: il sì/no deterministico
11 personnel/
12 trust.tsv # Sezione 4: chi si è guadagnato l'autonomia
13 standing-checks/ # Sezione 4: cose che devono rimanere vere
14 incidents/
15 log.tsv # Sezione 5: cosa si è rotto e quando
16 runbook.md # Sezione 5: cosa fare al riguardo
17 Makefile

Una regola da citare prima di iniziare, perché dà il tono a tutto ciò che segue:

Un agente che si valuta i compiti da solo è un agente che si dà un aumento.

Niente in questo sistema controlla il proprio lavoro. Nemmeno una volta.

Sezione 1: Il Contratto (CONTRACT.md)

Un contratto di lavoro non è un elenco di suggerimenti. Sono numeri, limiti rigidi e clausole che vengono fatte rispettare sia che il dipendente sia d'accordo o meno. Scrivi questo file allo stesso modo. Niente "per favore" o "cerca di." Un modello ottimizza attorno a un linguaggio morbido come un tirocinante ottimizza attorno a un manager che non controlla mai.

markdown
1# CONTRACT.md
2
3## LIMITI RIGIDI (nessuna eccezione, nessuna richiesta ripetuta)
4- Non toccare mai le chiavi del wallet, i file .env o le credenziali RPC senza approvazione.
5- Non inviare mai una modifica a un processo bot live (pm2 restart) senza un signoff superato.
6- Non superare mai 150 righe modificate in un singolo commit senza chiedere prima.
7- Non dichiarare mai un'attività completata basandoti sulla tua lettura dell'output.
8 Completato significa che lo script di signoff ha restituito 0. Nient'altro conta.
9- Non inventare mai un endpoint API, un indirizzo di contratto o un valore di configurazione.
10 Se non è nel repository, fermati e chiedi.
11- Non aggiungere mai una nuova dipendenza. Scrivila in ops/shift-log.md e fermati lì.
12- Non modificare o eliminare mai un test, una soglia di avviso o una condizione di monitoraggio per far
13 passare qualcosa. Questa non è una correzione. È una frode.
14- Non eseguire mai con uno sforzo superiore a "high" all'interno di un turno. "xhigh" è per revisioni
15 una tantum che attivi manualmente, mai per il ciclo automatico.
16- Non narrare o spiegare mai il tuo ragionamento interno in una risposta. Sembra
17 utile. Su Fable 5 può invece attivare un classificatore di rifiuto.
18
19## INSTARDAMENTO DEI COMPITI (chi fa cosa, vince l'assunzione più economica capace)
20| modello | costo per attività | ambizione | giudizio | gusto |
21|------------------|--------------------|-----------|----------|-------|
22| claude-fable-5 | alto | basso | 10 | 10 |
23| claude-opus-4-8 | medio | medio | 8 | 9 |
24| claude-sonnet-5 | basso | alto | 7 | 7 |
25| worker OSS economico | bassissimo | altissimo | 5 | 4 |
26
271. Decidere cosa fare dopo, rivedere un diff, risolvere un pareggio -> Fable 5,
28 sola lettura, sforzo alto.
292. Leggere log grezzi, dump o qualsiasi cosa oltre 50k token -> il worker economico.
30 Mai Fable. Sarebbe pagare la tariffa di un dirigente per leggere un foglio di calcolo.
313. Qualsiasi cosa con cui un utente o una catena interagisce direttamente -> necessita di un punteggio di gusto
32 di 8 o superiore prima di essere pubblicata.
334. Tutto il resto -> sonnet-5, sforzo medio, scala di un livello in caso di errore.
34
35## DEFINIZIONI
36- "giudizio" = può gestire la cosa più difficile sul tavolo senza supervisione
37- "fatto" = lo script di signoff è uscito con 0, punto e basta
38- "piccolo" = sotto le 50 righe modificate
39- "pulizia" = il comportamento è identico bit per bit, signoff verde prima e dopo
40
41## L'UNICA DEFINIZIONE DI FATTO CHE CONTA
42- Ogni attività ottiene un traguardo verificabile dalla macchina prima che inizi il lavoro.
43- Un revisore che non ha visto né il piano né la bozza lo controlla.
44- guardrails/signoff.sh ha il voto finale. Non il revisore. Lo script.
45- Se il worker e il revisore dissentono due volte di seguito, la questione va a un umano.
46 Nessuna terza opinione, nessun modello di spareggio.

Sostituisci con i tuoi numeri. Qualsiasi cosa lasceresti correre l'80% delle volte e chiameresti comunque "fatto" ha bisogno di un numero o di un "mai" associato, altrimenti tagliala.

Sezione 2: Limiti e il Sign-off

Un contratto di lavoro non significa nulla senza un controllo sui precedenti su cosa possono toccare e un manager che firmi prima che qualsiasi cosa venga pubblicata. Due file.

ops/boundaries.md:

markdown
1## lavora da solo
2bozze di correzioni su un ramo; aggiorna shift-log.md; riavvia un'istanza di test
3*non di produzione*; segnala feed di dati obsoleti
4
5## necessita della mia firma
6qualsiasi cosa sotto wallets/, .env*, config/rpc.json; qualsiasi diff oltre 300 righe;
7qualsiasi modifica a un processo pm2 live; qualsiasi cosa che invii una transazione
8
9## mi sveglia immediatamente
10il revisore fallisce la stessa correzione due volte; il router ha servito un modello
11diverso da quello richiesto; la spesa giornaliera ha superato il limite; un controllo
12permanente diventa rosso; qualsiasi cosa richiede una chiave privata

ops/guardrails/signoff.sh (modifica i comandi per adattarli ai tuoi bot):

bash
1#!/usr/bin/env bash
2set -e
3npm run typecheck --if-present
4npm test --if-present
5pm2 describe "$BOT_NAME" | grep -q "status.*online" || exit 1

Eseguilo una volta manualmente prima che qualsiasi altra cosa in questo sistema vada in produzione. Se non passa senza errori sulla tua configurazione attuale, quello è il vero primo compito. Tutto ciò che segue presuppone che questo script dica la verità.

Sezione 3: Il Turno

Ecco il calcolo che fa funzionare o meno questa cosa. Una sessione completa con Fable 5 che scrive il codice costa soldi veri, quattro cifre se lo lasci scrivere per ore. Fable 5 che prende le decisioni mentre un modello economico scrive il codice è un conto completamente diverso, circa il 15-20% dei token per il 100% delle decisioni critiche.

Quindi il turno ha quattro assunti, non uno:

  1. Un modello quasi gratuito legge i log notturni e l'output di pm2. Dice "tranquillo" o "azione necessaria." Tutto qui.
  2. Fable 5, sola lettura, decide l'unica cosa di maggior valore da fare e scrive un ordine di lavoro. Non tocca il codice.
  3. Un modello worker economico esegue l'ordine di lavoro su un ramo isolato.
  4. Un'istanza nuova di Fable 5, che vede solo le specifiche e il diff, vota promosso o bocciato.

Lo script deterministico nella Sezione 2 esprime il voto decisivo. Ogni volta.

Gipp 🦅 - inline image

ops/shift.sh:

bash
1#!/usr/bin/env bash
2set -euo pipefail
3cd "$(dirname "$0")"
4DAILY_BUDGET="${DAILY_BUDGET_USD:-5}"
5INTAKE_MODEL="${INTAKE_MODEL:-openrouter/deepseek/deepseek-v4-flash}"
6WORKER_MODEL="${WORKER_MODEL:-openrouter/moonshotai/kimi-k2.6}"
7
8# 1. INTAKE, pochi centesimi
9pm2 logs --lines 100 --nostream | llm -m "$INTAKE_MODEL" -s "$(cat intake.md)" \
10 >> shift-log.md
11grep -q "status: actionable" shift-log.md || { echo "turno tranquillo"; exit 0; }
12
13# 2. DISPACCIO, Fable, xhigh, sola lettura, decide e si ferma
14claude -p "$(cat dispatcher.md)
15LOG: $(cat shift-log.md)
16TRUST: $(cat personnel/trust.tsv)
17BOUNDARIES: $(cat boundaries.md)" \
18 --model claude-fable-5 --effort xhigh --allowedTools "Read" \
19 --output-format json > /tmp/order.json
20
21SERVED=$(jq -r '.modelUsage | keys[0] // "claude-fable-5"' /tmp/order.json)
22[[ "$SERVED" != *fable* ]] && { echo "reindirizzato, scarta questa esecuzione" >> shift-log.md; exit 2; }
23
24jq -r '.result' /tmp/order.json > work-order.json
25ACTION=$(jq -r .action work-order.json)
26[[ "$ACTION" == "stop" ]] && exit 0
27[[ "$ACTION" == "queue" ]] && { echo "in coda per firma" >> shift-log.md; exit 0; }
28
29# 3. ESECUZIONE, worker economico, ramo isolato
30BR="shift-$(date +%s)"
31git worktree add "../$BR" -b "$BR" >/dev/null
32( cd "../$BR" && llm -m "$WORKER_MODEL" -s "$(cat "$OLDPWD/worker.md")" \
33 "$(cat "$OLDPWD/work-order.json")" > shift-notes.md )
34
35# 4. REVISIONE, Fable nuovo, solo specifiche e diff, nient'altro
36VERDICT=$(claude -p "$(cat reviewer.md)
37SPEC: $(jq -r .spec work-order.json)
38DIFF: $(cd "../$BR" && git diff)" \
39 --model claude-fable-5 --effort high --allowedTools "" \
40 --output-format json | jq -r .result)
41
42# 5. L'UNICO VOTO CHE PUBBLICA QUALCOSA
43if [[ "$VERDICT" == PASS* ]] && ( cd "../$BR" && "$OLDPWD/guardrails/signoff.sh" ); then
44 echo "PASS, pubblicato o in coda in base al livello di fiducia" >> shift-log.md
45else
46 echo "FALLITO: $BR trattenuto per revisione" >> shift-log.md
47fi

Una decisione presa da Fable e una riga di codice scritta da Fable hanno due prezzi diversi. Paga quello più alto solo per la decisione.

Sezione 4: Il Fascicolo Personale

La fiducia non è un'impostazione a livello aziendale. Si guadagna per ogni compito, allo stesso modo in cui non daresti le chiavi di produzione a un nuovo assunto il primo giorno, per quanto bello fosse il suo portfolio.

personnel/trust.tsv tiene traccia di ogni lavoro ricorrente per nome: esecuzioni, superamenti, livello attuale.

  • sorveglianza: meno di 10 esecuzioni, o tasso di superamento inferiore al 90%. Solo bozze, nessuna eccezione.
  • prova: 10-19 esecuzioni con un tasso del 90%+. In coda per la tua firma, ogni volta.
  • autorizzato: 20+ esecuzioni con un tasso del 95%+. Viene pubblicato senza di te.
Gipp 🦅 - inline image

Un errore su un compito autorizzato non riceve un avvertimento. Torna direttamente in prova e stampa su stderr, che la tua cron ti invia via email. La retrocessione automatica è l'unico tipo che funziona davvero.

La seconda metà del fascicolo personale è personnel/standing-checks/. Ogni lavoro finito si diploma qui come un comando che deve continuare a restituire vero, per sempre, controllato una volta al giorno:

markdown
1# personnel/standing-checks/bankr-claim-monitor.md
2predicate: pm2 describe bankr-claim-monitor | grep -q "status.*online" && \
3 sqlite3 claims.db "select count(*) from claims where ts > strftime('%s','now','-1 day')" | grep -qv "^0$"
4last-verified: 2026-07-08
5on-violation: svegliami, non riavviare alla cieca automaticamente

Un compito che hai verificato una sola volta non è finito. È un'ipotesi con un timestamp sopra.

Esegui il controllo quotidianamente tramite cron. Un predicato fallito significa che qualcosa che prima era vero ha smesso di esserlo, silenziosamente, e nessuno se ne sarebbe accorto senza questo file.

Sezione 5: Il Rapporto sugli Incidenti

Questa è la sezione che i playbook originali saltano, ed è quella che conta davvero una volta che il sistema è live su un'infrastruttura che muove soldi veri. Ogni sistema agente prima o poi fa qualcosa che non volevi. La domanda è se lo scopri da un log pulito o da un wallet prosciugato.

ops/incidents/runbook.md:

markdown
1| segnale | significato | azione
2|----------------------------------|---------------------------------------|--------
3| exit 2 (reindirizzato) | un modello diverso ha servito la richiesta | butta via l'output, non costruirci mai sopra, riprova domani
4| stop_reason: refusal | classificatore di sicurezza ha rifiutato, HTTP 200 | non è un errore, controlla il log; se un compito rifiuta ripetutamente, probabilmente il compito sta toccando qualcosa che non dovrebbe
5| signoff fallisce due volte, stessa correzione | worker e revisore non riescono a convergere | portalo in revisione umana, non riprovare automaticamente una terza volta
6| controllo permanente diventa rosso | qualcosa di finito ha smesso di essere vero | controlla la data last-verified, fai un diff di ciò che è stato pubblicato da allora, non annullare automaticamente
7| spesa giornaliera supera il limite | budget superato | ferma il turno, leggi shift-log.md, trova quale fase è esplosa
8| un compito tocca wallets/.env/rpc | tentativo di violazione dei limiti | arresto immediato, questo non dovrebbe mai accadere se boundaries.md è rispettato, tratta ogni occorrenza come un bug nel sistema stesso

Registra ognuno di questi in incidents/log.tsv con un timestamp, che tu abbia agito o meno. L'obiettivo non è zero incidenti. È zero incidenti di cui vieni a sapere troppo tardi.

Una volta a settimana, esegui un passaggio di compostaggio: leggi il registro degli incidenti, le retrocessioni del file di fiducia e qualsiasi cosa sia rimasta in coda e non firmata per più di 3 giorni. Estrai al massimo tre proposte: un nuovo limite rigido per CONTRACT.md, una correzione a una descrizione del lavoro o un controllo permanente che ti mancava. Firma tutti e tre manualmente. Il sistema può proporre la propria prossima regola. Non ne scrive mai una di propria iniziativa.

Piano di Prova

Tre punti di controllo, non trenta giorni di babysitting:

Gipp 🦅 - inline image

Punto di controllo 1. Esegui il turno manualmente ogni giorno per una settimana. Leggi ogni riga. Diploma quando tre turni consecutivi instradano esattamente come avresti fatto tu.

Punto di controllo 2. La cron prende il turno. Rivedi la coda con un caffè invece di eseguirla tu stesso. Diploma quando due lavori ricorrenti superano le 20 esecuzioni registrate.

Punto di controllo 3. Il tuo lavoro con le migliori prestazioni viene pubblicato senza supervisione. Diploma quando funziona per un'intera settimana con zero interventi da parte tua.

Le Regole, Compresse

  • Un contratto è un numero o un mai. Qualsiasi cosa più morbida viene ottimizzata.
  • Il dispatcher decide. Il worker scrive. Nessuno dei due controlla il proprio lavoro.
  • Il giudizio di Fable vale il prezzo. La scrittura di Fable di solito no.
  • La fiducia è per lavoro, non a livello aziendale, e la retrocessione è automatica e rumorosa.
  • Un compito finito che non viene ricontrollato non è finito, è un'ipotesi con una data sopra.
  • I limiti vivono in un file che puoi leggere in dieci secondi, non nella tua memoria.
  • Il registro degli incidenti esiste così trovi i problemi da un rapporto, non da un saldo.
  • Non costruire mai sull'output di un modello che non hai richiesto.
  • Una volta a settimana, il sistema può proporre una nuova regola. Sei ancora tu a firmarla.

Il modello non è mai stato la parte difficile. Costruire qualcosa attorno ad esso che rimanga onesto quando nessuno guarda, questo è il vero lavoro. Ecco come appare per una flotta di bot invece che per un codebase.

Inizia con guardrails/signoff.sh. Esegui un turno manualmente. Scrivi un controllo permanente per l'ultimo bot che hai pubblicato. La prima volta che cattura qualcosa di cui eri sicuro andasse bene, tutto il resto smette di essere opzionale.

Segui @GipArcAI per altre analisi come questa, e trovami su X all'indirizzo https://x.com/gippp69.

Salva con un clic

Leggi in profondità gli articoli virali con l’AI di YouMind

Salva la fonte, fai domande mirate, riassumi l’argomentazione e trasforma un articolo virale in note riutilizzabili in un unico spazio di lavoro AI.

Scopri YouMind
Per i creator

Trasforma il tuo Markdown in un articolo 𝕏 pulito

Quando pubblichi i tuoi testi lunghi, formattare immagini, tabelle e blocchi di codice per 𝕏 è una seccatura. YouMind trasforma un'intera bozza Markdown in un articolo 𝕏 pulito e pronto da pubblicare.

Prova Markdown verso 𝕏

Altri pattern da decodificare

Articoli virali recenti

Esplora altri articoli virali